From nobody Sat Jun 13 07:33:07 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=citrix.com); dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=2; a=rsa-sha256; t=1781018163; cv=pass; d=zohomail.com; s=zohoarc; b=GCV2iU+iYHrqhrdWcvsVq2wJRJqDJhxG8aZlsg62nqv44r/gA8Fw6NstgIYFWgKuJSQr3gWnlMbJH0c6PuiHZbt6QPHLhlYLIgDjK6CbtL1X0M0wRzf+VxTykOMxOtVWqyDP+i5FtDzVLx9/bY2fZylA705JwBKbxeVjaKzjwA8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781018163; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=OCiYcjADFgsxAz71CoNGnpjlgnb+QtefvZ3g0STi4ko=; b=SlGa5s5VDh5XkkKaUk+1KQGal8NaHK6st2y731zhZr2mUMfxiDTynR63xfbrslpTooLzgd+74HIk8gZritDrbuxnz9I5JKOD8scohbLBGTiadH19akLXaR4rg9ZLGhMJ03ZJz9CgQJM5H4XXKjv95Jsd69LA5HZF9Ywl2Thls/c= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=citrix.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781018163593873.3322692409208; Tue, 9 Jun 2026 08:16:03 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1333492.1596514 (Exim 4.92) (envelope-from ) id 1wWyB3-0007Nz-OG; Tue, 09 Jun 2026 15:15:41 +0000 Received: by outflank-mailman (output) from mailman id 1333492.1596514; Tue, 09 Jun 2026 15: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 ) id 1wWyB3-0007NR-Ih; Tue, 09 Jun 2026 15:15:41 +0000 Received: by outflank-mailman (input) for mailman id 1333492; Tue, 09 Jun 2026 15:15:41 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wWyB2-0007Km-Rs for xen-devel@lists.xenproject.org; Tue, 09 Jun 2026 15:15:40 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wWyB2-00DzIb-8b for xen-devel@lists.xenproject.org; Tue, 09 Jun 2026 17:15:40 +0200 Received: from [10.42.69.6] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a282e19-2eae-0a2a0a5409dd-0a2a4506a610-16 for ; Tue, 09 Jun 2026 17:15:40 +0200 Received: from [52.101.201.26] (helo=PH7PR06CU001.outbound.protection.outlook.com) by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a282e19-7371-0a2a45060019-3465c91a129a-4 for ; Tue, 09 Jun 2026 17:15:39 +0200 Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5) by LV3PR03MB7523.namprd03.prod.outlook.com (2603:10b6:408:196::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Tue, 9 Jun 2026 15:15:37 +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.21.0092.011; Tue, 9 Jun 2026 15:15:37 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" 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=TVIPmI21Kgdk+ljPvBlSvT+0ax1gmDfqrQ5jA24cf5vZ7g9wkcK0ZA4hmkEsfcy/MMN8V1/mjiGitWS1HKWvfvrUikeeiC2+UNh943O+pMTe9ScFRWH7yUs9sphN0EFoWSz0nkLYFjNg2OrS8yqtiIQ1sBflTrDk2wUocqlBleQctvI1jYYRYbG4IVduBGLGmQ9TI+/rAM4UpntF1OsO0K5mIlU6ypLeqZ1ghnwOKWFTa3YDYDVk0dXotUXT20CD7WwECsPBEvCvnv/tSrmd8eDcH6C83A9Xy9GeOmATipd0YadPB3k4s/J7RQco0ofCJYF/MmMA0fy+RvtuU6uQfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=OCiYcjADFgsxAz71CoNGnpjlgnb+QtefvZ3g0STi4ko=; b=A7U6pjT4YvKJvMeMH/5Nyh8kQVEcZ7OpLlwX/xBIGTTRG3FfyiFPttl2qrx1Oos4DD2ZjE6ptppZi8FCas8CWuSg7GIxK21d4ExQMNQskzUcYT+plciSLi3F3WzmER7pMOMxLUtRKmk7e8coavJEzYyGXhQ8hDwbrMMPuHk7YmM5hOY6YPuG9Lp35NghjG380rwf3OlurvwuMgmVqnU9eDkydDym/lhKG66Wy49T3YEC4DjCsmhTEKITqLpYgRNLSQ1ogXdlDnipvhhFY6mPLxU4xBFLyS07epzEJeeaeAkNQOUQABKYrQcwPfn5LT3il5YZ6P/bxwXZ4aY18uLPAg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OCiYcjADFgsxAz71CoNGnpjlgnb+QtefvZ3g0STi4ko=; b=vV0OHvGOg7CbHqYBTnbcaYKJtkhe9A2p/6Bc9VibowbBIEyivI4sreI7OdF03CwLfwtbbjhNyF5W0O55mUQKw0rRwyzG1doiCuTF9MS7J7IDo94yRizrJxP7A5VKQFounaqpF0XuDuxHXdcKtm/l5BNdzHnmKsnFFiAgkGT9QeU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com; From: Ross Lagerwall To: xen-devel@lists.xenproject.org Cc: Ross Lagerwall , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Teddy Astie , Anthony PERARD , Michal Orzel , Julien Grall , Stefano Stabellini , "Daniel P. Smith" Subject: [PATCH v1 1/2] domctl: Handle XEN_DOMCTL_getpageframeinfo3 without the domctl lock Date: Tue, 9 Jun 2026 16:15:27 +0100 Message-ID: <20260609151528.2426788-2-ross.lagerwall@citrix.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260609151528.2426788-1-ross.lagerwall@citrix.com> References: <20260609151528.2426788-1-ross.lagerwall@citrix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P123CA0363.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:18e::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_|LV3PR03MB7523:EE_ X-MS-Office365-Filtering-Correlation-Id: 60a4eb8c-e0cd-40a7-3a10-08dec639f5f6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|22082099003|18002099003|11063799006|56012099006|3023799007; X-Microsoft-Antispam-Message-Info: o4/Cfk7w8PzUDPiroYZIqJMdZPomDNix0bHdNMSdHUQFjWC+mR2+4oKYZ5S/VC1zQSXuW18cB65Qvjc65zVOoggBNrowjU1JyXOzkcf0Hj2CeiKMd9BLXW3JWymzP3584aBWgMNTWU64tdBvU+ZVK51JMmvV+gYf4I27Rrl/kUvchO79Cuhpr0ttEFY5jYEk6GT/2aADRoPEUNwbuuA8Q3ZDWOF3fYoUcv5OxOwWDBVbYC55L70pt4xMwxQCj7k0cNeKo7lu2FLzABecNtDT8D5ApGPLgCTekZL8/UrTF5swwdbQIZrvb69Zy6ifO9Cos1NsVRoCwG4KHgoFKtntUWyvrDkxjkteqfME6jXiu0KN2XqxcrveqoHgvW1CIBKn5S3ssNgW3rGD74V1bnD/uZndcHxK/ppyUjoNEAbVJrbrHAaGVLIfxYjNgknJoLQMHK6XgYIyplhG9L9n6yVldZGQSInsIFZcvFuiULPRAzQb/CvE4Dj7yzTMooF8ypqKrqBEboFYGy85HbwIKdXl3mWtANYvGjvIM4s3fJTYDqcGeSQIKovy0uKI15vBx9+LG7hfAbiGfWtMBPoGloAwsGEZiEN/vSL2eKTtJ+kKA0MLGoiz4JDjmEuvJcedmLgAClZaSj8vguwGMRbDVj4bx2bwFVj590+2kFVRQhImznPs9KadZCjoLENr8GQsLehW X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(22082099003)(18002099003)(11063799006)(56012099006)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?APaIZmEvoTTJTZbNQv/czeNiz7H5nQFBjXuBBSBKgcmB16W0GK7whoYASU6R?= =?us-ascii?Q?mSWfpygBVNALJyud2Djlg6f3m0HiVGTieLgLdaY0nd2CztET4LY/KA3SveFi?= =?us-ascii?Q?7LUlPoLV1a1QP/WcH/NtrKfUASxAGj7F6e9tnq6vm6z2JR/Is+r8G2LRk1LH?= =?us-ascii?Q?Xrc78g0tW0rjsL3kv56EnDjRCA4Qfn3DKiNPzkXEXqnt0jtxXa+ukLxkXMKs?= =?us-ascii?Q?nbw0h8pMGeBSlAGm+Zd8ruTnS8SBqTYFpFyBgoKxQ9e4WnW1PZ5tNLL3Gl03?= =?us-ascii?Q?nG3bgRqmpt0xBpV5JMVbhnr6Jj2DMwLWRQ9/aQPUO7U3Y8+t7cf1Mr7zcqnx?= =?us-ascii?Q?DJUtCCIwH2be4H9V4OowSMc84/Gl6BEZE9bzAALEdAeU8lqDdioMcVFvW99Y?= =?us-ascii?Q?NS8UBwDGDMecm2ftRzdEec62aoVz1wZgDTc7Rb8iqFGYDEDWnUyBIMCVn4qN?= =?us-ascii?Q?9FNUOC3v+kDCnjY99ht3IjwyDlnGJ1o1q1eevj2GGZ74mBxSAnZP2bLGXO1F?= =?us-ascii?Q?5MX+pyZjhhcmsPIYJ8FWdqd2Y13Syde5Q5s9H8xIvC95GML8fm1OJTwVVc73?= =?us-ascii?Q?nxfMYPhSxJP2S9STSJkFFKgTLOAxwVrEAtQJYOIPJcDe1o3ZJ0O6U8aAFr2a?= =?us-ascii?Q?RFdBZCxcNWWaun6osoAiTIU8RoYvlJrVIGBQkCwjU0SVn7SzCuFqbzmgbEG/?= =?us-ascii?Q?+zhZEUiyJgb1Xo5PDA6vhJrhCwfoWpicTL8jC9C6Wh3mpxVYiuftk82bfKfD?= =?us-ascii?Q?RhPq8cJRkqeJLSDUwpe0OdCtL6PFjxWTJ8ZvQvp/Pw9VQzCe8qrriCnrigla?= =?us-ascii?Q?Hh2QFdGMbAx4ZhhJmsM6ZX2XPSEvzYAx4J8OZv027EWnq23tbyA9kQhcLKQE?= =?us-ascii?Q?cB1/Q5/IAq93wFtH1+28R4XBM4eejZXgfYQKMQG0mxBXcNsvX8T1KjYmpCSD?= =?us-ascii?Q?jIgqDeTJM5ZPjHVEs3Acs+FMEq0p7IrxjthjwBKbZNIvh00xtwCTV/p7Y3pN?= =?us-ascii?Q?RHI+Z6NhFdbfu3cIBkAP3BHuff9XBTFa4SNf2uW7fOhLiHgl+Y90gMKyjuxi?= =?us-ascii?Q?DiDHPU87F1eOIrHugW9NBWbloB9/mst9YTsyTTBMWiex7tVhAFNPOcrzSV99?= =?us-ascii?Q?Bu1l96WqABApR+5GtwhlgashTcwbvJmP1eiv3Vv0Spxqhds1JcFFKckKZx8d?= =?us-ascii?Q?RYtoPNsxxpDB1xj2vywf+kXDxOuDIrCde5ErSrRAshdV8RVRLssxX+Y5Zaqo?= =?us-ascii?Q?c9Bk7WBJJVLiqzTvAX4UGA3Cz1MfH7nQXI4mRerIZGfswgupiDsCc+8CHxDo?= =?us-ascii?Q?6hIVzTi64KSPJk+oWPiSJ1lNw1Cg698jcMsaIH8Ih0K1bBDhSi2WK6c/fnmC?= =?us-ascii?Q?6GrZDueRLvdwyoTctbEk8xY2N+kfgiIp/gwWfBfRH4a538h10O/FGkKrrH/v?= =?us-ascii?Q?alFhdXC3KeE9/Bo/A4rFAOjpVWOdpNU20AWEvf9szrt6zCIDwD9SApfDh+nI?= =?us-ascii?Q?OBUgkD6k0kEcnsjHS7ZG/yno4+3mfN4P5GxfcfJbQLXRePy6ZZhKq4uekNgi?= =?us-ascii?Q?wHeNu9iqyv3PvDPuEMkXIMYlhOxb3cKVs2o+Q5Y1ywkTPYOt3P8uxdhOMGQW?= =?us-ascii?Q?KhGZdv4qMhj2cmeYXxdoHz50Eacertk4KDJjlai/LdNmsin6uS/8oy+Baepe?= =?us-ascii?Q?LmjtIPeyCbq91XlZhV2w6IZyyvGmpsO5+BNrgwdWy1ZPlrc5Js9gV/VG1CCP?= =?us-ascii?Q?oNoZWvfa41fSwzYmXsU1iAIxDB6E2uw=3D?= X-OriginatorOrg: citrix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 60a4eb8c-e0cd-40a7-3a10-08dec639f5f6 X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2026 15:15:37.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: OsnLsqLI9L/SdLq5/ebs1Jna+DaB6yzfeVXVcFhAX5/bUvVGfXgQIVpQB+pP3e0aHoyd3iLrIVG+lpye3eRf4QcfUlnrXUgffE3bGJJ96OQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR03MB7523 X-purgate-ID: tlsNG-16d1c6/1781018140-8FD7AD75-06035F2D/0/0 X-purgate-type: clean X-purgate-size: 1358 X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1781018164127158500 Content-Type: text/plain; charset="utf-8" It does not have side effects and is protected from concurrent changes by the P2M read lock therefore skip taking the domctl lock. Signed-off-by: Ross Lagerwall Reviewed-by: Roger Pau Monn=C3=A9 --- xen/arch/x86/domctl.c | 4 ++++ xen/common/domctl.c | 1 + 2 files changed, 5 insertions(+) diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c index 83bf51e498df..0e9a2532887e 100644 --- a/xen/arch/x86/domctl.c +++ b/xen/arch/x86/domctl.c @@ -301,6 +301,10 @@ long arch_do_domctl( /* Games to allow this code block to handle a compat guest. */ void __user *guest_handle =3D domctl->u.getpageframeinfo3.array.p; =20 + ret =3D xsm_domctl(XSM_OTHER, d, domctl); + if ( ret ) + break; + if ( unlikely(num > 1024) || unlikely(num !=3D domctl->u.getpageframeinfo3.num) ) { diff --git a/xen/common/domctl.c b/xen/common/domctl.c index 3efa5b9d55b9..35144d95b808 100644 --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -555,6 +555,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_d= omctl) case XEN_DOMCTL_gsi_permission: case XEN_DOMCTL_bind_pt_irq: case XEN_DOMCTL_unbind_pt_irq: + case XEN_DOMCTL_getpageframeinfo3: ret =3D arch_do_domctl(op, d, u_domctl); goto domctl_out_unlock_domonly; =20 --=20 2.53.0 From nobody Sat Jun 13 07:33:07 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=citrix.com); dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=2; a=rsa-sha256; t=1781018160; cv=pass; d=zohomail.com; s=zohoarc; b=CBN321/YKvuyEoAPC9inQ4/JbSxk3ZOqd0V6s5cgQb2BlAsWkNPVV7x1X0NJGLIJngzUcUIuxz6yf7NuSGKYJbwe0vAxA41K+rXo6iZ/P28utYNqZ/J9Qug+lVjYUo9G5h0+tAPYHCBQQGscszUKee+a8i2wIzrLGoosLhyV2Mo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781018160; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=nJ+6LjObK/SJhMLiKkSaCczGj1dUVZKr7QNXr8dj8dU=; b=LCDBnKH1MiunHzKkhTRr0WyynXFSMI0PlKvetmN7Q6MbuDJTlk5IcsvrULRBmEBJWIRqJsBSKJYuc4IsXIA06Kad5mi0f5/R4TlEf1H7DBTQdtq/xILHKMufAcQJgktzJmyhgx16dQ43VsdkXdj/FuFWdTdZy0bf/tbt8Zb1i/M= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=citrix.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781018160937170.71707861339735; Tue, 9 Jun 2026 08:16:00 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1333495.1596527 (Exim 4.92) (envelope-from ) id 1wWyBB-0007qb-T8; Tue, 09 Jun 2026 15:15:49 +0000 Received: by outflank-mailman (output) from mailman id 1333495.1596527; Tue, 09 Jun 2026 15: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 ) id 1wWyBB-0007qR-Q2; Tue, 09 Jun 2026 15:15:49 +0000 Received: by outflank-mailman (input) for mailman id 1333495; Tue, 09 Jun 2026 15:15:49 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wWyBB-0007pg-1R for xen-devel@lists.xenproject.org; Tue, 09 Jun 2026 15:15:49 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wWyBA-008IjG-EG for xen-devel@lists.xenproject.org; Tue, 09 Jun 2026 17:15:48 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a282e17-e002-0a2a0a5209dd-0a2a450ba404-26 for ; Tue, 09 Jun 2026 17:15:48 +0200 Received: from [52.101.46.25] (helo=CO1PR03CU002.outbound.protection.outlook.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a282e21-212f-0a2a450b0019-34652e19d220-3 for ; Tue, 09 Jun 2026 17:15:47 +0200 Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5) by LV3PR03MB7523.namprd03.prod.outlook.com (2603:10b6:408:196::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Tue, 9 Jun 2026 15:15: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.21.0092.011; Tue, 9 Jun 2026 15:15:41 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" 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=AijrgETh7YXynvDy+vd+4/yH07MdrbKYNqGWLrgaI2u35j2MstYn+cbHXrDOBwgFGkgscbkedBDkDVGjNCsISVjcRUKq+SPzkARLRL4tenYLRPqMC6zbe2odHHbi8mKAk2YaNeB2BnOPkJ5ZPurwAkkr83nopobQjkquRCD8+lu0+L6PkGGcmhiNk52a6d9aVn5+MydgTwt/I/eZhYN5yZQTwhzAJmTRCeBoV4P+F1HmywQaFbuGTfRTrVrM5KAi+DznQUdXqtTdGXV58dtAfmXjzwbaNGUqlqGwwKjYueC+BuhzDlXx/xK5dd2qa3tUuvXj6FHyd9yLZM+ggaNtwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=nJ+6LjObK/SJhMLiKkSaCczGj1dUVZKr7QNXr8dj8dU=; b=lHcQTZRi4oL1Z+hQS6Y77fDOfZAaQWijG/SocescxpLWdKBqHT9Pq2meTjc0t2/6gLQze3tb4qFuGwlfKwNBpFmosA6tU5gsu3ziNGfR51M65YOKrf09z0aYnZ2fhvnNlTMEive2bt5TpieWGrC7WUmUSWqud0bW3GLLryNMdTPfVr+32haZ6s+exbt9AzU3KuCoSKrRrvBsxPuVcFPl0w0LYsK9VP3N1/h8whhWkYkIDunreSCwBFEeRn8OjL0rNSNFNY8a5JLONMkjrw1E2gJYKH9JWy1PpiiezQ9GkqEL9tVb4WT1BeLGlnH2TU3cnIDEQBwVUlUA7JTLgIKDlQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nJ+6LjObK/SJhMLiKkSaCczGj1dUVZKr7QNXr8dj8dU=; b=ULG/ImJpkyIaUWZFXXwxE/uuh5NjrconYoI1s7JC4lRMvzwyBeMhFFdxc1a1PyGPTJVAiJfYj8uBp2O92iEF7B0KUsvk+mwC76mqtI3lLpHuA0iTBSLUiu1ruFh8G7FRxbfQgM0ayHLpjzNC01W5CAtNiuz1MYycPvECbo1CjOI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com; From: Ross Lagerwall To: xen-devel@lists.xenproject.org Cc: Ross Lagerwall , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Teddy Astie , Anthony PERARD , Michal Orzel , Julien Grall , Stefano Stabellini , "Daniel P. Smith" Subject: [PATCH v1 2/2] domctl: Handle some of XEN_DOMCTL_shadow_op without the domctl lock Date: Tue, 9 Jun 2026 16:15:28 +0100 Message-ID: <20260609151528.2426788-3-ross.lagerwall@citrix.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260609151528.2426788-1-ross.lagerwall@citrix.com> References: <20260609151528.2426788-1-ross.lagerwall@citrix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P123CA0362.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:18e::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_|LV3PR03MB7523:EE_ X-MS-Office365-Filtering-Correlation-Id: 23c9fb07-4e90-4a7f-eeb7-08dec639f827 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|22082099003|18002099003|11063799006|6133799003|56012099006; X-Microsoft-Antispam-Message-Info: nHSdyoZt4jizpJcSyP77QZj6cKVpuYQFGvqg/LvzdJgVtsWJSl495/BfkNZAPYnVvD6qNnQfRWtvz52INjUftQWsRv2CLhWrdkreJyCJlOsMNxohtUihkCy8H5kqwsSyohbLfPbhg1gKxMgCfNRXLXC0w5uxp9OizkKyCexnGylBghaTNSjM4qoh8nNXYRkHNnLBCSUxj52c1/nwYnG/EuIUY8/IszH+TD2Ya67dvPuBecTDA4LpKRjKNP4fCvLRerdrjaVWmreBp8JHKMeIeUDAq8JGn+Pdo+z1XlOjvFSBNbETuEffPnUlylKXPeEMIUO6OYHcW4jty9Nj7gXbdbW0HJzMFqOWIMmWeODayvRPN8gTIA/14sC0AhFmQxKMJdpJbVjg5u55X3IwhdaJljImpK8KrxgbXXPpNbcrDqs74UaVr7lKBDO3tJN1KiwQu9CY+GbMOHhucKo6opYw0oI27ApySWbmlnmQ/PEtPy6A7GLbAFufMEZo1Z4+yDj7nWZ5MayqyGvVBpIuLretgg51OH8K+VMcatiC3VYdXm/bEQLbs5wJfNzfySd0udXc5D9jLsfVugCmkNx/07y8S91SyfzofbNFJak7OPSEpwsUK1ZpTql6f5JuATvn/sOq/46bvaJMylboWY381goeiTeiUtJDpyKV3tvwoxXO7EdSq6icqw/I7tKHPyUvySMk X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(22082099003)(18002099003)(11063799006)(6133799003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Ehxi5M7+DWa763er9mCoTlM1UH1wv3rhVOr5QCdTchl9Hko1R1Y/iqP+xLqU?= =?us-ascii?Q?C1haJIDaxzdf3kqQNy4S4Y+l6T3TA7yW2+zHCuOr+dyfdrBMdTsamB4/uWYK?= =?us-ascii?Q?A992bS1B3OfWayKT1s+RUYlpZRnGr7cvO1hy/dqwXa8eRqWhfcoG23T09D9i?= =?us-ascii?Q?HebXP0wlJz/czc9LvZXzcQN9Ez75Ipe8jCf+TBfg+tVKE9monYpEhDJkj7WF?= =?us-ascii?Q?xCXGcXI91yFxh5qW+Q1oAKNbDpdOu0+AxrK4l9mb/FjcWgmqzf0Fg1RSOuVS?= =?us-ascii?Q?zJkXV9jcK92shXZHCXa4wM/onV9u9X3W7y747M1wz4GMGbZnPAOaTF0vTLzN?= =?us-ascii?Q?eU/M6pSrXTTZ85whiiXC3uQnXRbvT2+K1qpOFJh2Rk3O3AHAHGizkAISs+TD?= =?us-ascii?Q?Vq4CQ/mVgTMA0q4kzmHH5jvcXTVQSzF1LY4RCjF5A3aSRY22d0gDXvSjA0go?= =?us-ascii?Q?8PBo1hfijnWvPduNEtS2mTrkZnFQ10+oc87C1/DRQB2X4B4iYT3mgo8S19Jx?= =?us-ascii?Q?2/5Zsq3x10H8fqxoeD+Fh93+dLl30bKAhy8Bt3dtqHjNqMwIaASFK8h6Na/q?= =?us-ascii?Q?loFFuL8DxSO1nhKddP7SSOPr3ShJ6pT5W4oyQRA3B575g+49aUPQ+qCJVFFM?= =?us-ascii?Q?M1qPMo4MyWoT+oDSzH6zbVqc/KkzD0Bu/SVPe824ED0L9vwImCaGs+gY8d7f?= =?us-ascii?Q?qnEYyTThDnlP5eot2nkIQyAT/sPL8u6kWoqJ5wR9bTY0wCyNGg5gcBvVJWci?= =?us-ascii?Q?n06kIek1hlfpx6RzcgQC519ziV5rRi03fiJ3zF3NjOiAcJjnPWCAghaNZYIF?= =?us-ascii?Q?VCXDxmxKxglWk6H9f6xJC9sICEYka9rzWn1edRDG+JO4S19+M0wr6Fp832kd?= =?us-ascii?Q?eEX+tEHG1BxehsfJ9l2mi0fTe41ZPz1cj8BGqcWi9U235Os6fmRCep5y5saP?= =?us-ascii?Q?5a1jWn8hJG0SiaQL2/qFyiCeJs0umwtb9aNiPVkvk7v3pPv7kR4mADOybCLP?= =?us-ascii?Q?1gRd09lsuF1LMullq7Xa+b+LvRIuNdoZTKDbRTX/2Uxs72pPiXvKarCYlIEQ?= =?us-ascii?Q?RSl4vjn/40x9ZGH5+8l9m3bhbBaiHietOdRWQwRuOVlL1FTnfvvWQGF2Uc3o?= =?us-ascii?Q?sKW4ZdkvkRzn8unr+oTGLPZkF6nCbKoKgRWjXwsP/xJw909z2MNRZvQls5gB?= =?us-ascii?Q?w2dSJI8pqi8/aD743AuVyokrGnhGTSoiy3/g1d7RvHEaJg9lDVSUJexaObsR?= =?us-ascii?Q?MDCO4xAu2zJXW5/vJBNnx/8eadLMfxI2dFbrP+bx6BoIoVUzonp64F9jbdPD?= =?us-ascii?Q?L5EpHJNY6LJ6wQ0OPtGjw2hMnkQ2baivxGcETMo27rntz57hv4A3fupFG6nQ?= =?us-ascii?Q?EZug6emWyqvuSiqiaf4l4/++jaetjiggfBcJQKw/SWZoU9btzoZ618QHfGum?= =?us-ascii?Q?sSMGQvaOw9CinRmk5HV3827BFmQnzGPLKtUYI223xj3Y4++vLm251BBWbXdz?= =?us-ascii?Q?SWRrCywCqEvvHsG5ga39RrawkxsaF0lYy+6jml1GAft9IneNUwEFzpoZ/+09?= =?us-ascii?Q?uVhyVlNOd6pjNV1/KcThtFqVmmyonN7pX8ZJQt6R8o/+/7onbErrmMgMkz13?= =?us-ascii?Q?E5/Y8PHbMJnql8soCFWnXRUVuEifNa9RqESr6POverg6PkFAUDv1HtFMOs4D?= =?us-ascii?Q?mQfsCrM99QbklMg29EdOs5T+HCWA1bRogMEG9un+umTo/Fmn8/qi8yLpMums?= =?us-ascii?Q?7HFXq6CJ8q1uc/SLiuoctBMUzmV4/8Y=3D?= X-OriginatorOrg: citrix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 23c9fb07-4e90-4a7f-eeb7-08dec639f827 X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2026 15:15:41.2721 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: DAHsoZ1cPROLVAtuiXf/kKTMWl2kalWIWYVj9oSdLy7EeYkRxIlG8IWNg0tqu0I0gOi/iGvfpByOtLShRHwPtLsHTsWWX1VcC88qm3corXA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR03MB7523 X-purgate-ID: tlsNG-42698a/1781018147-18B60F3B-565615C9/0/0 X-purgate-type: clean X-purgate-size: 3010 X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1781018163321154100 Content-Type: text/plain; charset="utf-8" Handle XEN_DOMCTL_SHADOW_OP_{CLEAN,PEEK} without taking the domctl lock. This is safe because for these subops, the paging lock is mostly held which prevents it from operating concurrently on the same domain. There are some parts that are called without the paging lock held: * hvm_mapped_guest_frames_mark_dirty() - The function itself takes a spinlock so is protected from concurrent calls. In any case, it will mark all the pages dirty as required. * domain_pause() - The toolstack cannot unpause the domain while in paging_log_dirty_op() because the toolstack's pause/unpause ops have a separate ref count. * p2m_flush_hardware_cached_dirty() - This is called elsewhere without the domctl lock held so holding it wouldn't achieve anything. It should be fine as long as it is called at least once. * log_dirty.ops->clean() - If the callback is hap_clean_dirty_bitmap(), then it will hold the p2m lock while modifying the table. If the callback is sh_clean_dirty_bitmap(), it will hold the paging lock while modifying the table. In both cases, this is OK. * domain_unpause() - Same as the earlier domain_pause(). Signed-off-by: Ross Lagerwall Acked-by: Daniel P. Smith Reviewed-by: Roger Pau Monn=C3=A9 --- xen/arch/x86/mm/paging.c | 8 ++++++-- xen/common/domctl.c | 12 ++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c index 1a5822808620..bfb5b423a0dd 100644 --- a/xen/arch/x86/mm/paging.c +++ b/xen/arch/x86/mm/paging.c @@ -746,11 +746,15 @@ long do_paging_domctl_cont( ret =3D xsm_domctl(XSM_OTHER, d, &op); if ( !ret ) { - if ( domctl_lock_acquire() ) + bool lock =3D !(op.u.shadow_op.op =3D=3D XEN_DOMCTL_SHADOW_OP_CLEA= N || + op.u.shadow_op.op =3D=3D XEN_DOMCTL_SHADOW_OP_PEEK); + + if ( !lock || domctl_lock_acquire() ) { ret =3D paging_domctl(d, &op.u.shadow_op, u_domctl, 1); =20 - domctl_lock_release(); + if ( lock ) + domctl_lock_release(); } else ret =3D -ERESTART; diff --git a/xen/common/domctl.c b/xen/common/domctl.c index 35144d95b808..a3888c4e87d4 100644 --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -559,6 +559,18 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_= domctl) ret =3D arch_do_domctl(op, d, u_domctl); goto domctl_out_unlock_domonly; =20 + case XEN_DOMCTL_shadow_op: + if ( op->u.shadow_op.op =3D=3D XEN_DOMCTL_SHADOW_OP_CLEAN || + op->u.shadow_op.op =3D=3D XEN_DOMCTL_SHADOW_OP_PEEK ) + { + ret =3D xsm_domctl(XSM_OTHER, d, op); + if ( ret ) + goto domctl_out_unlock_domonly; + + ret =3D arch_do_domctl(op, d, u_domctl); + goto domctl_out_unlock_domonly; + } + fallthrough; default: /* Everything else handled further down. */ break; --=20 2.53.0