From nobody Mon Mar 23 19:52:49 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=1773920492; cv=pass; d=zohomail.com; s=zohoarc; b=MVxS7Xo8irOvBUJrblOC881726U5lZdsNF9uxQWm2AjQXqipvznL0j5Mlo6ZaZtzMW0ShbX2swUitQdRWNRWCxjsK/Muhze5v7tTb1FBwcPc5m74ruE3zfGMcJxTTFmhSfyb+a50qAIP4anvolWO+kvl2T1QMetQ3xF3VMZAJYs= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773920492; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ad/E3aQRMTWonx4vddCbikVgvVJo0XPTtSd/NZmXUx8=; b=Gah9d1X/BuwFuPjG7Gs85q+rOHEzStsb4CIFSRqvvM5vla7EKuPIdVnRyXxskFF1skJvsWQHzKCa+NCM2UkI0mZdv7Sb5TMwCcPz47kCoqk2pSiLX2aqdWnNMJ/4BdSXdBD+J9ehCh3bKWaZwMj+HyPjKthTox9VPhmS+/eMWlw= 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 1773920492810167.39798095661433; Thu, 19 Mar 2026 04:41:32 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1256991.1551441 (Exim 4.92) (envelope-from ) id 1w3BkZ-0001LW-Ek; Thu, 19 Mar 2026 11:41:15 +0000 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 ) 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 ) 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-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" 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 To: xen-devel@lists.xenproject.org Cc: Ross Lagerwall , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= 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: quoted-printable 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 X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1773920494023154100 Content-Type: text/plain; charset="utf-8" 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 Signed-off-by: Ross Lagerwall Reviewed-by: Roger Pau Monn=C3=A9 --- 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 v= cpu *v) static void cf_check hap_write_p2m_entry_post(struct p2m_domain *p2m, unsigned int oflags) { - struct domain *d =3D p2m->domain; + if ( !(oflags & _PAGE_PRESENT) ) + return; + + if ( unlikely(!p2m->defer_flush) ) + { + struct domain *d =3D p2m->domain; =20 - if ( oflags & _PAGE_PRESENT ) + ASSERT_UNREACHABLE(); guest_flush_tlb_mask(d, d->dirty_cpumask); + return; + } + + p2m->need_flush =3D true; +} + +static void cf_check +hap_p2m_tlb_flush(struct p2m_domain *p2m) +{ + struct domain *d =3D p2m->domain; + + guest_flush_tlb_mask(d, d->dirty_cpumask); } =20 void hap_p2m_init(struct p2m_domain *p2m) { p2m->write_p2m_entry_post =3D hap_write_p2m_entry_post; + p2m->tlb_flush =3D hap_p2m_tlb_flush; } =20 static unsigned long cf_check hap_gva_to_gfn_real_mode( --=20 2.53.0