From nobody Tue Dec 16 21:11:18 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8C51526C391 for ; Thu, 10 Jul 2025 01:00:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109221; cv=fail; b=GpHtBs+YFINStrQpsxqSlFmm0oi8k6BrCuT+hbkXGELvddjTau4H1voDt4yGh6QzGl9EW5hCpTBsOXcawVpgS/aa6wBd8tFJXkd8Xu5WtyEha7t5riDdHfJnb/aFU5IEmN2glpe8hUPrQNZ8lHAyV5fxBJJ58Tno7xZxyy4lJ2U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109221; c=relaxed/simple; bh=/zNP3La+jFIuMboaBHHcg+gYtj//QGoDs8+rpKqTi7M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=hrDq7NrigC0Hs8kn9uzeiEJ4frZ/Bd2vQJq73HmVwFPBARqI786z+uWBirjHH2Hitwyw4tc1CwfDwjT5I8gyMrTtlDH67UTKs34dVhgK5N2LIxeZ16WNOzwILVM1jJufDmHpauccfPEJ5Du2/Z2CAfjQ/hNh2WDHmkRGGZA5Irc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=r5Bnrq/9; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=o4Mvqn5q; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="r5Bnrq/9"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="o4Mvqn5q" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56A0MuZo030250; Thu, 10 Jul 2025 00:59:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=w3bmaR7XSSWErZeDIOOKpVYEiN4NluZA1hZEpjjD9Jo=; b= r5Bnrq/97owtJjEg/dEPXMk/NV6GreHw6zgCHp3TCWzYWY1M4zrZpBTYtjf//uE8 5iM0ivfFvPpoUku78KPrPCteefPQHGHYI+Mf9wcFyK8ljLO2il3oMJgEdXEgL1eu t/Ff+U00eQxU3qTOJDS3DIdfo8tylTa2V6CYrWBuLR0YDlHTmqGPrmL/sAsMORr9 CE6Hi4J72kA7YLq3OUIJEuFDm67c/2nClOhaDurLL/JVTCZ0LHgkcZbFvIh0ZM2K SqI1+Qu7OPkgvdCB+/nKHLpYLuD6micc/2O01CjE+zta6Cq2nFDG11qZTFDH0PaZ v4LXYjc/GOobXtUcngu/7w== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47t2wn8182-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:33 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 569NuiI0014348; Thu, 10 Jul 2025 00:59:32 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10on2082.outbound.protection.outlook.com [40.107.94.82]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 47ptgcds62-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=e8tajd7c16gwoYR2gm/sac2Cp9u12/SS8+zFp8a8FAYV9x0hBmiMMcKZgJgCVW3uEMYvTiRpQ7xAYuGSdg2lKm3M8gXaI46kIakehrpvXvMLqIF6+9zYY/+NIR8/WImZiYovER3MDk0JkEnx0p6MUgJkVe/seNKxWVFIU1W/WRmba/Sod8U8o87+Eyw05T2ksz2dWnQTCca5EWYKwLNm0VSPrweFcR9Y08RismegvCmgqYTKt3ldyaUuKH9vbOUtez8Rl5vXq+I4jzlciGD/4UP9+V2rL8EjPK29LwWmMFMl+G4ud6s6pkv/LPfZBHqxURvgTyfRBMAnkykSTdNVJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=w3bmaR7XSSWErZeDIOOKpVYEiN4NluZA1hZEpjjD9Jo=; b=yPyRTgPTYCjEWqoVBZkMl4HSD8bhFlZSuJsznqAql8Q8rAVv9ha2+CNAHPWXIFoVvh2BW+VL0S4IRYQ699LZ1FoqQ/5oLpY7iwYOw6bTT9JbqIWp9YEDdx86O0vsiirCgM7w1zINCiK7TiktnWXL036Nax13SiiJiDiUqvmOZ2sAZLHOmNQOO/t4SbOgqv9RBa0ncrXCKQYKs4k0SiiWluZgthpCQCecQgb4F+NvFEr+xME7xjYAHja/g5C5t0I0DXXc3S6FebIXhKEcv3vIC3mdZ023Snu8uSxU7UuuQ/PaI4+sg+1MLdK1gz4DEsZzGP1RWIlW6609dLbvSDWA7Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=w3bmaR7XSSWErZeDIOOKpVYEiN4NluZA1hZEpjjD9Jo=; b=o4Mvqn5qZ20VA0sN8nnOqrUxsABkq95JZFw6cndgyff4sWsxo4vwxBwJDzPIJrGDhwdjDHX7xxcBke70VjXSMZmscNafaiMTmAVOwzsnmXmceutLBHdEV6ax4cOCNeisQgeYXGBP4rf3cdWrRZ0RP7CceeZH/BHtFZ+nR6m5Qho= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS7PR10MB4832.namprd10.prod.outlook.com (2603:10b6:5:3a6::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.28; Thu, 10 Jul 2025 00:59:28 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.8901.028; Thu, 10 Jul 2025 00:59:28 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v5 01/14] perf bench mem: Remove repetition around time measurement Date: Wed, 9 Jul 2025 17:59:13 -0700 Message-Id: <20250710005926.1159009-2-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250710005926.1159009-1-ankur.a.arora@oracle.com> References: <20250710005926.1159009-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW2PR16CA0044.namprd16.prod.outlook.com (2603:10b6:907:1::21) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|DS7PR10MB4832:EE_ X-MS-Office365-Filtering-Correlation-Id: a248ccac-ae24-40e3-f12e-08ddbf4d05b4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014|13003099007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?gJkqZjVUcl4sypgkGuoMisUOljOWG2XS8UyJhb3k8SclmUH3oKObtW14jXEU?= =?us-ascii?Q?b3zT3SlMU3ALWE1gD2A4L7WPUa1JaIV8EMgE2iK2ehpz2V3Gz382PEp/I+nb?= =?us-ascii?Q?QHblU2SyVSOaBZrQrZ9nrbMC139EMcWzBIaqKbmegQPtQ1FUMegQ1GdJKtA4?= =?us-ascii?Q?EnhqkdmyTrKakYCLe1CHTzXkxLgeg0ZZKphJtdR5U/PNlb4G8HE3MB+f3X4Z?= =?us-ascii?Q?g1GOOZJcTqyi/YSK/OuyBtieEQVgDaM9afsTmBBat2tFS5IL3wLZ73fED/ou?= =?us-ascii?Q?U0/LfAQ6DRWFCnYyuPTDpaPpIzqO69PWUegL53Ths4DqIQH9iAldvX87wF7q?= =?us-ascii?Q?eYU7FPKYeidCW00YfAAoaxPAOz3OkAMNkq4yKNQySGNMqzcvvwjgIOM8XG0j?= =?us-ascii?Q?cP8nP3QAZNjFSi5pN0DtLUto099765TpDDlWiroF4L63ofDa09xUlUMI/NWH?= =?us-ascii?Q?szU3m/kFgwrEP9YA6acrFcpWjXushSDkREbGReaQCpYb+Q3MN5rGJ/Uc1rFC?= =?us-ascii?Q?VnJLpSSsqhdNRP/g38FH4JsXpMPQuwmcuuIpdUnDxLTYt55pKzrfZ3iqlto4?= =?us-ascii?Q?fqx0sgc0FI07R6LcGi9SiO0kGiFg7yc2nVg6OZXcr001bx1mdTFs57WBVc5i?= =?us-ascii?Q?jFlhuH2ihdwQbYRO8THRfwBynq1xtBGImqa1pukl6GLl10S+tRELFrEdbb46?= =?us-ascii?Q?sKZY0JOKMVlYvqq26SNA0oTo9GXQcNZarPYcCDnMGyoTCjkhblTPuskE8JRL?= =?us-ascii?Q?yAfKur1zncUOzn/4pgAWMSZxkjHHRK3Jg/97PqM9BYEWSfql5CFtzKyG9tU5?= =?us-ascii?Q?5ZjiwdC5RuF2m0xBjaq3xilibkc8bKc0CENR/Re+VvqW1smeutErqMGmzuqN?= =?us-ascii?Q?4+05j9pO5TP1v7WjFnzyJHE8mu45rwH76us4TrRZHOPixiG/b8qaarlYWD73?= =?us-ascii?Q?wEgSZf9gHSUsYxxo7/pob9afep26qHTCNR07u625pchIaK7jWPahKl/w78Ua?= =?us-ascii?Q?KJjORjLGqIATeDcr52/5UYVj57Jbzk03picIhQQ+bcnLFBqZbAhdEJdld8TL?= =?us-ascii?Q?wQbB/5cX99il3U32P9E0gS5+wjlfiOdOZBxu4zIUSpCzgioUtkhUQByYAQ9s?= =?us-ascii?Q?lvXRHt7nxBN/TAqDxF3HYx+859F5GH8T0IBxRXfVlx4DSEA++n3iy+hOKZqB?= =?us-ascii?Q?Z0MfrfOUheKAnHRkRhp4cjkgLkDPuoZtE/Tunw0LeQlmBp/yJ+mqfdkQBo8O?= =?us-ascii?Q?Fv24ZGTIDun4ibKjRa5aFAC1/qqK/373iqXFsgU/hHOr8vub8yWoJEv7RXVx?= =?us-ascii?Q?eJbNe3khRgmmU04ERoKwHOcl+EzZP/OimvS9NjlkaPTrvz7pHGe9sXYj2C+q?= =?us-ascii?Q?FJA2YX8=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(13003099007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?l/b5MgLxcuLw3ckw2tNDrdnRJYPDj0+yy6cYMmxXTGyzpG+ZP5DNLd+ZQ+gA?= =?us-ascii?Q?p4q4nqMZdaRnFKDZw0QLI49K1cf2Vr1KrvZQlwFwMJhw0XEa3kGgbZy/IGRO?= =?us-ascii?Q?DXbvaQoukol1ZcG8XvKUNQpT2vc/3GMZDv4TiaDPD+0UDvA3md7Sz0WswFRT?= =?us-ascii?Q?DF8LD7BB7VaJRnmL1rCPMoLQ26lKfGK4BWoIvvdL4B/PS/cZn3iWB2gSlZQP?= =?us-ascii?Q?UzHZYSbVklcOLGKLvFiYPVxAj9EXda4oTeuzCt4/zKJmCZSrIxP3OmIzvcpF?= =?us-ascii?Q?NSoey0JHCNBGS+Cc1gwIAwUix2AfYf9EhRAgkkomqrCBK0y08LUVEq5ZBB8x?= =?us-ascii?Q?wRIlyN8/2rg4WGSdEKLGvfwMa+oS6ECq5ZoixLotGzWTsf7KF7r569uVE4ds?= =?us-ascii?Q?3hyaEW57VmRQqLJuC0+pFFkeNaGQCoJrSvRZ3gqEoINNpg9W4bmy+M1M/bN6?= =?us-ascii?Q?5eh8E4xAtCTkH/Aam4yY4+AA5Q35hDXjHPLmnJTIq8QTmtF/yLYmQry5Es3T?= =?us-ascii?Q?2CSn41DNq9x9MHRzGEMdamZbbpzVREGDVJ7v+7dLG5PtHvMCwsaXTEbD7Yfx?= =?us-ascii?Q?hAxoYwxEU0ZO0eVoivKYqK0CJ6aoBAH9ncnkE9s7+1I/yk0S3VnmJdHsETMF?= =?us-ascii?Q?0NvMOmo09KvZAon4/YcnkC6GyfhqzgxImzViyVk5Cr6CCFrIa6hfdKjFvb2o?= =?us-ascii?Q?JbgeKqlyi4VW0jhQ3lOgDemJOsFwdfKt5VbUo+RdQQBw4Aig6d6mlz2UlZe9?= =?us-ascii?Q?Ovl7KNY20VMAYMBXrf/cDVY9Vhh7jasLkPgkmy7pavyNt/ryjVEpHEbdLU6L?= =?us-ascii?Q?wg4Efnf1KtGBAqT2PhjuE7UtzfTobvvTEL+WXJJUIaOBPY4vUwWmzNHxdZTP?= =?us-ascii?Q?vIvOzTAJGNiOWTiPCXTpEUxoUT+aiHxOPmlMMOgS7F/fAWvJ/HzQQsJSp/Se?= =?us-ascii?Q?HFlOIujju3oL1Dyq7OuWFg05WzFmJ4qHcLEtU7B8SVUJEh9uj5pocR3GPaSQ?= =?us-ascii?Q?xnEWAf6Pt4oB+fVtXDpp5VVdMKl2Em8JAC+oGmt07idVgWaCRRL4hOIXfa9/?= =?us-ascii?Q?QVEQueyy93zviVnJuhahGtqNtUlQq7+k2T5GaayhgOCMXX5cq9ROpbiiw8OG?= =?us-ascii?Q?xkLYDgPsorKUxlFEfJSk4AS90UECqJ0mZtU34+5qSIuVESKXXaTGX2c6hxG3?= =?us-ascii?Q?qH3bkjSXvmAH/G4T6E9Bjt5dtMoIA6SpBRjJho3HV28cDZsJnYFDHtMEv2pQ?= =?us-ascii?Q?7yGN66BF0ypiaH72wqtoFQWMNgcoMe/fgn9VTwAcqMeS0Cdlvy8CFhf9CUKo?= =?us-ascii?Q?xiqaW/cZS0gDgR4HLoCto16IwO0IQySvGor/Dg0NVooGrwSPHMv14yK8meY2?= =?us-ascii?Q?J3BHJGaY3uGHG6tfS4+8WPWFlXZl+FF99Ttt694X6DxSrs/hkxLjyc/uSU4i?= =?us-ascii?Q?dgZK2bwUxTNKpnhXQoujCo1HQymRRO+ZvsdZrf0tw6tBvBHJUwQC/8FGWcdl?= =?us-ascii?Q?9BEWbaUTakXbUrtRwCSJPhvL+a0KlJAtBZ+mM1MjQ70Jn40XxJg+2EXMatsF?= =?us-ascii?Q?/gdbXd/Lo2+vGUcoZ+qmkVy0UsmmsBcNSDenW10IwctD+8fEDSJvdzYfALNe?= =?us-ascii?Q?Kw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 46JJMCTqe5Pn/nrDtiGJQ4/Q2tfvozo3n8zs8Zfg2zoj6PJyKmQEDt4xOFx4nmxwj6RwpXi+wtlkKH22/h6UiXP11bPaLDKplXpsuLzD9+QjCcAR+QXdlc0hCdGI12mlbHbRhkW1i8df1zqD4c7HQgBrl60kcK+L+x/Pgyek5O5/mYEFfHO+lS+Q26iHunJWGlgDFtoHgEp2cFktePTa+PWyV2Zz7Zyr0BYUJIC/b43wsa6X8Aju1SaECxnjFQRggAIHjXtam0f+UqIqh0T4L6peUsdFAD0E5DSwD3Fs6VlrGCXolvRDPUFL3AlgPTqFGZ442wHc7SAGEkxI2OvKv9dkHSMyO6LrCrgXxBRqtCjcOhHcnwdgI0NLNKuUn7GCbSVL35bQ5giQQeVGcO0VCeDLKZu8b55KtwMMhQEb4djs+YzdEC3QcDWqYnNj2KrN2Wi3Ztt0OYj8E5pboht7J6FqFnfdaVOU25XCusweCBXwmXyWKjPqm7om6osHxjcB99JbsV7XCoOq5B9L/mboOwvvBZGXZMPi/Ldbj2VbwLb0tn/ocqPd3C+O3YDtQJYHwJX9M1hxLypBt06YwEAGwEW/lVz3KY+7UoNM4ALElqg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a248ccac-ae24-40e3-f12e-08ddbf4d05b4 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2025 00:59:28.7128 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Mi8uKWKTqsPpkoKGmwFKr+DeZLg8wWx1R38h5B8Da5iXxK6yEKjl5U40WFzLgUNLvusmnhHGvBqhbbPT8VHiQ+UNSY3et4y/Htpavm/pijY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB4832 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-09_05,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 mlxscore=0 phishscore=0 bulkscore=0 mlxlogscore=999 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2507100006 X-Authority-Analysis: v=2.4 cv=WtMrMcfv c=1 sm=1 tr=0 ts=686f1075 b=1 cx=c_pps a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=Wb1JkmetP80A:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=QzB8L1Xlpqjwh72o9DYA:9 cc=ntf awl=host:13565 X-Proofpoint-GUID: yGYIKgFABlPIWtMCc9VB3NalWYyyNHeR X-Proofpoint-ORIG-GUID: yGYIKgFABlPIWtMCc9VB3NalWYyyNHeR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzEwMDAwNiBTYWx0ZWRfX1gkm1Ew+/fG5 PmIdpodBMZBwxUhbWeFKs0wYlKOZK6+9bZ4e5ACLcZZ1shDSQipNKcAqh9Bst+GZyulLCbFJj7o ud5O+80k+NdwPuHRtw8J+U3cyXrF7rwtBT5nMQcqJj+1g6zkrIUAN1De7swPNTgroA1VnkASCM9 hi8jZPHqcdllJ/IMPNcsB4faG2WWlcBFgPy3yjt/B5Yt41eWzls9UaD6TY2v3eGZfd5ICRLIvr3 tVCsnvKvUmPXAh82egZG8S+ffFmxDqhM9BxMlp28UtP6mO8UF/E3+GIA/Q+DgBgPGt+Mr8HQMVT SiK0SlJ6Sx/Io+Z9ZcPnbvAjICtsjUpbS7JoaHM4ItTn4ikiCrNyjpTOWIIrv05Czyg1e284NjW NQix0w0IiR4LOgQOIGAR4I44GEx1aJ+5xzYz7MYDhenqL3RQS5CKDFPdQZ17kyxRGFcV/ctm Content-Type: text/plain; charset="utf-8" We have two copies of each mem benchmark: one using cycles to measure time, the second for gettimeofday(). Unify. Signed-off-by: Ankur Arora Reviewed-by: Namhyung Kim --- tools/perf/bench/mem-functions.c | 110 +++++++++++++------------------ 1 file changed, 46 insertions(+), 64 deletions(-) diff --git a/tools/perf/bench/mem-functions.c b/tools/perf/bench/mem-functi= ons.c index 19d45c377ac1..8599ed96ee1f 100644 --- a/tools/perf/bench/mem-functions.c +++ b/tools/perf/bench/mem-functions.c @@ -51,6 +51,11 @@ static const struct option options[] =3D { OPT_END() }; =20 +union bench_clock { + u64 cycles; + struct timeval tv; +}; + typedef void *(*memcpy_t)(void *, const void *, size_t); typedef void *(*memset_t)(void *, int, size_t); =20 @@ -91,6 +96,26 @@ static u64 get_cycles(void) return clk; } =20 +static void clock_get(union bench_clock *t) +{ + if (use_cycles) + t->cycles =3D get_cycles(); + else + BUG_ON(gettimeofday(&t->tv, NULL)); +} + +static union bench_clock clock_diff(union bench_clock *s, union bench_cloc= k *e) +{ + union bench_clock t; + + if (use_cycles) + t.cycles =3D e->cycles - s->cycles; + else + timersub(&e->tv, &s->tv, &t.tv); + + return t; +} + static double timeval2double(struct timeval *ts) { return (double)ts->tv_sec + (double)ts->tv_usec / (double)USEC_PER_SEC; @@ -109,8 +134,7 @@ static double timeval2double(struct timeval *ts) =20 struct bench_mem_info { const struct function *functions; - u64 (*do_cycles)(const struct function *r, size_t size, void *src, void *= dst); - double (*do_gettimeofday)(const struct function *r, size_t size, void *sr= c, void *dst); + union bench_clock (*do_op)(const struct function *r, size_t size, void *s= rc, void *dst); const char *const *usage; bool alloc_src; }; @@ -119,7 +143,7 @@ static void __bench_mem_function(struct bench_mem_info = *info, int r_idx, size_t { const struct function *r =3D &info->functions[r_idx]; double result_bps =3D 0.0; - u64 result_cycles =3D 0; + union bench_clock rt =3D { 0 }; void *src =3D NULL, *dst =3D zalloc(size); =20 printf("# function '%s' (%s)\n", r->name, r->desc); @@ -136,25 +160,23 @@ static void __bench_mem_function(struct bench_mem_inf= o *info, int r_idx, size_t if (bench_format =3D=3D BENCH_FORMAT_DEFAULT) printf("# Copying %s bytes ...\n\n", size_str); =20 - if (use_cycles) { - result_cycles =3D info->do_cycles(r, size, src, dst); - } else { - result_bps =3D info->do_gettimeofday(r, size, src, dst); - } + rt =3D info->do_op(r, size, src, dst); =20 switch (bench_format) { case BENCH_FORMAT_DEFAULT: if (use_cycles) { - printf(" %14lf cycles/byte\n", (double)result_cycles/size_total); + printf(" %14lf cycles/byte\n", (double)rt.cycles/size_total); } else { + result_bps =3D size_total/timeval2double(&rt.tv); print_bps(result_bps); } break; =20 case BENCH_FORMAT_SIMPLE: if (use_cycles) { - printf("%lf\n", (double)result_cycles/size_total); + printf("%lf\n", (double)rt.cycles/size_total); } else { + result_bps =3D size_total/timeval2double(&rt.tv); printf("%lf\n", result_bps); } break; @@ -235,38 +257,21 @@ static void memcpy_prefault(memcpy_t fn, size_t size,= void *src, void *dst) fn(dst, src, size); } =20 -static u64 do_memcpy_cycles(const struct function *r, size_t size, void *s= rc, void *dst) +static union bench_clock do_memcpy(const struct function *r, size_t size, + void *src, void *dst) { - u64 cycle_start =3D 0ULL, cycle_end =3D 0ULL; + union bench_clock start, end; memcpy_t fn =3D r->fn.memcpy; int i; =20 memcpy_prefault(fn, size, src, dst); =20 - cycle_start =3D get_cycles(); + clock_get(&start); for (i =3D 0; i < nr_loops; ++i) fn(dst, src, size); - cycle_end =3D get_cycles(); + clock_get(&end); =20 - return cycle_end - cycle_start; -} - -static double do_memcpy_gettimeofday(const struct function *r, size_t size= , void *src, void *dst) -{ - struct timeval tv_start, tv_end, tv_diff; - memcpy_t fn =3D r->fn.memcpy; - int i; - - memcpy_prefault(fn, size, src, dst); - - BUG_ON(gettimeofday(&tv_start, NULL)); - for (i =3D 0; i < nr_loops; ++i) - fn(dst, src, size); - BUG_ON(gettimeofday(&tv_end, NULL)); - - timersub(&tv_end, &tv_start, &tv_diff); - - return (double)(((double)size * nr_loops) / timeval2double(&tv_diff)); + return clock_diff(&start, &end); } =20 struct function memcpy_functions[] =3D { @@ -292,8 +297,7 @@ int bench_mem_memcpy(int argc, const char **argv) { struct bench_mem_info info =3D { .functions =3D memcpy_functions, - .do_cycles =3D do_memcpy_cycles, - .do_gettimeofday =3D do_memcpy_gettimeofday, + .do_op =3D do_memcpy, .usage =3D bench_mem_memcpy_usage, .alloc_src =3D true, }; @@ -301,9 +305,10 @@ int bench_mem_memcpy(int argc, const char **argv) return bench_mem_common(argc, argv, &info); } =20 -static u64 do_memset_cycles(const struct function *r, size_t size, void *s= rc __maybe_unused, void *dst) +static union bench_clock do_memset(const struct function *r, size_t size, + void *src __maybe_unused, void *dst) { - u64 cycle_start =3D 0ULL, cycle_end =3D 0ULL; + union bench_clock start, end; memset_t fn =3D r->fn.memset; int i; =20 @@ -313,34 +318,12 @@ static u64 do_memset_cycles(const struct function *r,= size_t size, void *src __m */ fn(dst, -1, size); =20 - cycle_start =3D get_cycles(); + clock_get(&start); for (i =3D 0; i < nr_loops; ++i) fn(dst, i, size); - cycle_end =3D get_cycles(); + clock_get(&end); =20 - return cycle_end - cycle_start; -} - -static double do_memset_gettimeofday(const struct function *r, size_t size= , void *src __maybe_unused, void *dst) -{ - struct timeval tv_start, tv_end, tv_diff; - memset_t fn =3D r->fn.memset; - int i; - - /* - * We prefault the freshly allocated memory range here, - * to not measure page fault overhead: - */ - fn(dst, -1, size); - - BUG_ON(gettimeofday(&tv_start, NULL)); - for (i =3D 0; i < nr_loops; ++i) - fn(dst, i, size); - BUG_ON(gettimeofday(&tv_end, NULL)); - - timersub(&tv_end, &tv_start, &tv_diff); - - return (double)(((double)size * nr_loops) / timeval2double(&tv_diff)); + return clock_diff(&start, &end); } =20 static const char * const bench_mem_memset_usage[] =3D { @@ -366,8 +349,7 @@ int bench_mem_memset(int argc, const char **argv) { struct bench_mem_info info =3D { .functions =3D memset_functions, - .do_cycles =3D do_memset_cycles, - .do_gettimeofday =3D do_memset_gettimeofday, + .do_op =3D do_memset, .usage =3D bench_mem_memset_usage, }; =20 --=20 2.43.5 From nobody Tue Dec 16 21:11:18 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8376026E6EC for ; Thu, 10 Jul 2025 01:00:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109224; cv=fail; b=pYX98eW/5Ax4GCzI0zoaR9eke3VrXoR6UI7WWvscQfUipzpN7NdrOg+KUYg9KXwuEjdeJYRd6D5rnRkuGtTQz267jvwoa/AiaPQB+bVUZ4pXPs9dNIMnBAgtsvTbrhB3fg1S5tw/PVPxGDmXV6CiNEfYKk0nfTwXyWaQWCeu7zo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109224; c=relaxed/simple; bh=5nrfBIJfgxqP6l37g99TVCRMaU6LTpj+6UiGEvLXX5g=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=eIsEYOPvllA9fh9cAuIoGs24GNPSpHqkU8DDUxyAFQCR2iMLs6l5vuY/eZGDFp+bWs2lP7JV0FKyTTAMwD1bDXjzR2wE79puZYNcYLVCZZB0YJ7APa1uzXGdxa5kr6ebOtEs3F50vEtEIBXqKgTCahnIrUjBZeNoen+7HJKHQpE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=IphdlCWZ; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=gSoO0Lve; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="IphdlCWZ"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="gSoO0Lve" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56A0ODM0031877; Thu, 10 Jul 2025 00:59:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=qo43vqftUePyxrf9SqCufITrE1OEyy+j11QwKYC/NuQ=; b= IphdlCWZmRGAQcD3Un5ti1xKHVIDmHxLbm56Tg5ch9Srg12BVD1rIpJyWyz1omT/ kkwFcwCucjeXOwjlkfEykwPB8inlV2fhTwpGFY2e5htt+ThIsjlTLBrAxNn8Ocrx wCILV2cu6NO2J8i1ODNaL0IiQmJ6ht1u9MSDNN0MkBWoPwKW7/DWaC3TVY3I6Xc2 Nf0orfROIH1xmuBiON+TFXjSzdv0D++R+Wxvpjt72Gvl8ZRFDAz9vna4AcIBqz22 LBSHTW9i30SVJZbeHioEuyMdEygn7fxE905QqHxTQKyWF0++KjVz/jToO0h79No7 6LK+2FkvahGBTSGi+iOMdg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47t2wn8183-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:33 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 56A0AoXn013986; Thu, 10 Jul 2025 00:59:32 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11on2044.outbound.protection.outlook.com [40.107.220.44]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 47ptgbndh6-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bM6C2RgNhgB17RNNjeyzrQvbrpPv2nHEhUEPqa0Rn6ZqMNBIm2BDXAOh40rz/LRkZzLauX11qrMpfNDHPdhz9ZYnLAySoQVyn1SDgAdOajjqXyzo/2B0zgevSoBouFbn27t83y1M3rp3olb4eykXuKog12PEJ7++Sm/6UK50EgJx+G56QzjEGWKmQ2s2eTDscc+FIDfjHztThJU3el2KAIPc+JvHkC/dNKZv+hG0HB7fTEjG1tAPSHH0hwLPIcSKA5jtM2GZcqRZv7KkAgfLqiwMtrIoBmHMigp6bi1vUNT8tw/ALGrq1oBM2Br4TsJDvxxdL4CC7Z4iipn7mHJovw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qo43vqftUePyxrf9SqCufITrE1OEyy+j11QwKYC/NuQ=; b=dD6cMsfSRFbQvGZfh8RYbuhGM4GseRPclAiPg1ElpApCfa/TZsHN0pzey1ewELG3SdHC88Ifn45XdxcoPu70PW+V7O4lE93Lj9jQGTrhdZCQnhA8cojDY99hQgBhahNnKz6PU+km1Py4apfGKttoHC/0Yjy+6OpU5/dyBIX/eAkO+HVa3mkOyOui4HY+d5ByczGpo+F0ToFxSzXPSBoxbRmmWalwRr4Hdqm5h+ULA14jnvKSMSZ+htyQIECvhUwIYgxcnhfUy9BESTvHh2qEQbFj2AwY5uylMNEqFJ0871KsdqU3DosZcpkAgDfOF4uNlPmo2KL9F5r2VA2CtGvbkg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qo43vqftUePyxrf9SqCufITrE1OEyy+j11QwKYC/NuQ=; b=gSoO0LveNaOuGjaImpqr54hahMWSCpW4xYQCQ08EuSyBHi8i5bisHtY3NOaHQ9yK9yanfJNuuLchmy466Szj7fphpEg5cKXxCdIUuR1SDKIqov2t2igZTJGlwXp8SFz7OEphQzL1drYXg5OGuTfDrwtXkZbQ7MqFiZjAETSvfFw= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS0PR10MB8078.namprd10.prod.outlook.com (2603:10b6:8:1fd::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8880.21; Thu, 10 Jul 2025 00:59:30 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.8901.028; Thu, 10 Jul 2025 00:59:30 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v5 02/14] perf bench mem: Defer type munging of size to float Date: Wed, 9 Jul 2025 17:59:14 -0700 Message-Id: <20250710005926.1159009-3-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250710005926.1159009-1-ankur.a.arora@oracle.com> References: <20250710005926.1159009-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW2PR16CA0045.namprd16.prod.outlook.com (2603:10b6:907:1::22) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|DS0PR10MB8078:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ee17625-d4eb-4dfc-20e6-08ddbf4d0691 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|1800799024|376014|13003099007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?AuykVPjXmn1lOz6EzhjPwAS5YyWrr7XzmpeYjj9cNskD5Zm1e/j52Mc0nAkT?= =?us-ascii?Q?uf/eYmoMMT5U21ycRemf1/YoixK5iIRUTknETQur1TYbZdzx3us9N+9PtBer?= =?us-ascii?Q?6U5fjIqJ7g6fC/i4Klk6yfvi8IPvyZSxU2Eq1z91JCus4DBfURkWsQd1Iu++?= =?us-ascii?Q?tQ/tsl5GSQWnWpxkN7nwo12XtD6LnLyTgHZ3BPghTU1r2hm5FNHv1wSrx5VK?= =?us-ascii?Q?lcxpfY6qxlzRGQvDSqPLVYxlGIkvGKizmcIRaZxFJwXlYZyvuSXLjRPPiaT1?= =?us-ascii?Q?KrNJoqlafCUpezW+1aWQbUY1AC6dJPZJLPnl5KTlOK3gdVTmzVgK6CGfM2ml?= =?us-ascii?Q?AQWE2upImTouSXtH1y5FLbk8EkAgt044Kv1b30AEHTXladIji0+dCJ916zIy?= =?us-ascii?Q?A4bmVUHa0GM+UntnuPmZqbIxR5x7C6tCbzWx3tL5ldcKD4UldXNrqegz76AU?= =?us-ascii?Q?uI1I+YHi7f/2Lt2DnRdvdhD3c0nuN8jCCFIJ1TBzVxVSBLg2w7qHGOlyBezy?= =?us-ascii?Q?VvK8m2vwjpzpzzKaV84v1A6VsX+0R/n5Li2ci1VCwG9CGig5Ty18Z4W+geBw?= =?us-ascii?Q?C0MD14+fdtMA52AUoflkxu9os7QGldYMuTVvbIQD1vDqssv5SbymV6dU/+J/?= =?us-ascii?Q?oC533NZEprreCBL+preGCA7sW4WnsebDjtsv07jGc2Rg/he22UBLlJD/JTPw?= =?us-ascii?Q?Z98zqkPRh1SzhUejpzL5LXBYtPeDldpF651vtgtKXNZtQSRlBdDfTL5AGkLq?= =?us-ascii?Q?vY3mtkKRNEyqBGw+k+vz5kTgEk4DgGE679C1Nn6ES7/PrIG5IScnMpvbTs1G?= =?us-ascii?Q?TF54MLIpvnhFRjux6L+MZT8sCQY0V+ZKwPM3LN5bpRT7HNE52fSDVwW6doS7?= =?us-ascii?Q?qRkzjyHRDauGWjHlHgONIvjo6eLy8bMlunqwV5vLyIyfxohJkfkzz2Ny8kpy?= =?us-ascii?Q?9FQRmQLYkdCB8AQTb0g93p9lVMI17IAih7Pzn8tLGbBliGfsXSXTmsbZrg3F?= =?us-ascii?Q?0LgBQfFl7x1xa3+6l+sYPIDUtWBZDTxTsPIiD7i6TP0wcPfCxGVdpNhCvUO7?= =?us-ascii?Q?i94NDloVoFpuYCyrbZEZ+ubkX1zCRWwfWPvc4bX2U/4xcMjLLiu73PfOYYs+?= =?us-ascii?Q?+PEzVkANAsd6t6FFfDKZl4vDkMhMFYzkbrryVhk50RgVEB5ng+25MjMI1Ddb?= =?us-ascii?Q?BpybZk/GCvyXMzrf4H5R09nMa6DIRBO9ryiSXF7qywVBjOOgURATPdGUnzCR?= =?us-ascii?Q?weB58m1HFDxEXnBQ/vHE+KD4Hl8lZ5nZXAYTgC4arkqcg57KJHkOKl4uJu7C?= =?us-ascii?Q?ex/HrV471KHmdVpn7WMKqoi1tt1WF0++neriUg4NhVLnhzPUYClpHbPdExG0?= =?us-ascii?Q?6eyZJ60dwfjAP1BaIwVQpMKzxrYa?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(1800799024)(376014)(13003099007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Wfn2tycQu9+QVU9U1I3KVBgJFnKgIY9xMYh9KIjs0q/s5S2ACkI6YQgTl53t?= =?us-ascii?Q?AmsOcfZdMBwflAr59sXfPfAKH31Tq3PP5fDwg0V1OwsKuLRgeKcg972oiENt?= =?us-ascii?Q?fIAOFvjtIrDWRE6WD736YLqvODYTybmaHG64+bZReYLSKHX0yE+L2UXzfwL3?= =?us-ascii?Q?VL5oxQhXFF44yRoi11fFPXwsn1RcwPXQSEb6aHGuhmm+vxp82QOWg4nlBbLt?= =?us-ascii?Q?cQdyyk5dNRgz+0mKpFBl0T2xDPOp6O/ruEhZmpDGDW01UgN7OcHGyluI1CCU?= =?us-ascii?Q?DFGggfHdpLGigBk7U5pVCN8x2TbKW8+UVquLDAFF9Xgt5L71R4YloUCxyPOv?= =?us-ascii?Q?DXaz94yU/PBjfu7GII0oFAJFx1ZI/sWrv3cDhazzuMZ87VIpsFvw5SH6tMQl?= =?us-ascii?Q?0AsKbbH/VzvLU1jiYiANxOeWgyJbFi1uzTKFhtrTGiRgIMHRemOXneKJ+UAr?= =?us-ascii?Q?6ycQDUzRGeCzbCDMhuGhrJIV+syAS5YbDPD049rolFbNP4ORBbRNklrCG+Wj?= =?us-ascii?Q?L0bmdAx+QUuFWKOdooyESk55LQcm9JpJpn6n6KRV/x4kgKZsKygKPvlj1Udz?= =?us-ascii?Q?yE++OjMuTxuVjWaUOjAO+WUCdYpDY/GAnjGkGPVyaBZ1IUcA7qBB/nYwy1xt?= =?us-ascii?Q?BY2OT8+jMaEe2FWz8rcCRKBCa/UCeOAYiVtn3Io7zIl4o3LPRMESI9H+mcpL?= =?us-ascii?Q?G894jUCj+DN1YNGCEbBfS+p3rR9PEbmMSEFo26U5K3g9wPc1mEDG4DKQN2js?= =?us-ascii?Q?67y+NMv/dEfnFjXQz8yGv9NU5FJaMXUODRnOr9vyHsdccboE3X8z/MJd3ZRG?= =?us-ascii?Q?6pzXB3e2Ebkf0Qec3ruFFlrrHyfUqMHIQbmV1SEkeRbcylh+ihoKF6jYGa+I?= =?us-ascii?Q?AMX7qRhk1pJtIVvBd6TxJLp0Cqo5ou+mQzWTBhnWbzKvWdzLuoYqnZHIXN93?= =?us-ascii?Q?oN1HkIpBUiXsivXOWsvq8jiMyC7UR7dyaA5mvgq8a7vvNgBP+z9VaaB69MOx?= =?us-ascii?Q?+3cp88F/eulCXDVOpEgLYUiB4m+rBhozMvy8NH2P6syvCLVVz7QK1rZzDdpw?= =?us-ascii?Q?rOXe+S59vuq6+Fa+H6Betkc+rTKuJybZsjzZfglIPiewphHlXUP1I4gx3FOd?= =?us-ascii?Q?VoqlB+z562Rkj9/x6Za+Aug9CDxvQdDyeC/LwIhlMKv0AYMOAHOcpPq5S+ye?= =?us-ascii?Q?qP1N6ODX1Tp+aURNpFDly/fZ8kV755JG5VcfBmOPQlYRnMcnK3vYRfnHmiWc?= =?us-ascii?Q?xKTZHrB7it/HGW4PUO+M25ZiihfGfz/Jd5gQhtNV70I0m6EPSBtTI0ocbKl4?= =?us-ascii?Q?ezkkAoI/NnF7SlNyXJhomNnrvDWc7dJLQSKGTHnwm1JV0Ce6luoK1xGDVe5O?= =?us-ascii?Q?y4LKyXZvPxDzPpOGi86rV4CxfVuOwh/W6HYqLQpt92uGS0eaJ7lfqPwP7p4W?= =?us-ascii?Q?Pg+EuzovnszD9aIVxM3MnbMSozIVqgiVV/umdIlqnrsMZe7l/we76iXac2ct?= =?us-ascii?Q?z4LdBcgBDMnWdzvEIfwDS6PWJlspNThB8liZzmq6inT5ucUlBHDG0zTxbAUU?= =?us-ascii?Q?xg7bT6Yybn7hAFka30m0VmR6uIH5/RquoPcqB5GRZnMJf0u2ChuBRN0h2aUA?= =?us-ascii?Q?eg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: bPuUF3W5tRt2xAq/lVFWudLd4VOLwC2c+DKIKVq7zVtaRz0KgwCNRxE32y23ySLaC/lqIQBF8Xypxn2JauLeJJBPZgePeWxyMh1dtdw5VmX5cgYdKNCdLl/tsQbEunNbe2XRKaarv4lpETR9GLCMbPcRalGQIVRoD67rcYdF2BxKfJPQ/kF8fOltS4OeuW0hOFH4ORasHE6SvkidjTvxA+4fUk5/WBL5qe338neJFJm1QizQpXViBDTZLx3Cs2TsZvPPoXqMHzn0PZskTI/BilH+AIgq0dUFjdsc8tPtp5/s654B6Zz4qsabqVaKxl0yfLUSWotxZDb3JHJN5SVNJL8kwch28A06UFxW/84HIr4JsIsDHACIBVTHqV5AId/yiSu7sxs1y/sSwi9OPTnNnYw9Vnmw4aI90EK9pBWc+Dzm1t53A1/e1MhHq8whjB5dbFRSW8EFvbyqH45xQPwT8V/i2RHHnhOmmjFKUX2O9e996QCtq2YMZendu8UnO+6plE7C0kI4EUrhGit3YlDiAQ6BUr5fzy2kY3wLt5Hgkop8lwV/9NNntFlqV5erMbOz9LFAq5odYY7UgOeSUrSpLD3nsHxGj8job3hJSXp7fvk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3ee17625-d4eb-4dfc-20e6-08ddbf4d0691 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2025 00:59:30.0897 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: DaYYocKlT2b71eTskYBpDj4l3AhxS3e6HLg+qhYNaRdA4LdJBg9o+w59Ouql6bLLrUGf+W4/4son6aX4PuU4oRmpsP7jXacEbJw7KIQj/tg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB8078 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-09_05,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 adultscore=0 suspectscore=0 malwarescore=0 bulkscore=0 mlxlogscore=999 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2507100006 X-Authority-Analysis: v=2.4 cv=WtMrMcfv c=1 sm=1 tr=0 ts=686f1076 b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=Wb1JkmetP80A:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=X4Au_8HLBps5sezr5J8A:9 cc=ntf awl=host:12058 X-Proofpoint-GUID: 360PNtXG-1GiRyNNTwBrHfZGRqhIb2mc X-Proofpoint-ORIG-GUID: 360PNtXG-1GiRyNNTwBrHfZGRqhIb2mc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzEwMDAwNiBTYWx0ZWRfXzlNkjzSsCTzk RTtKyRXdlPsF9kLuyINsQNyprlykpLtBldITW6EmT4drqOi89VaiXs1CyNs9FyFbRKZNNpdkxJe W3JdY/6Qrg0ekaXDQUtX7JdVMrFFMMwNtPQm2UlPiyf0H17kNSJUL45V2D/y/EU34+x7ESPXAen nmUdouWkyHMxTpe59r67uWtGuhYEYi0pi75BqxiZ1Ck55gL5cjFVbTlfQDiWI+l4S1becH23/AF kTFTiTyKpBT5dB3vIxyI+qrfZnDUORNbqd8fyN6gdRhuA38+l7cTSYvRUzc17hntBt28KxiVWMV dkGEpQjvB0yCU4AA7yz5JaxnDnMsME95wUdN7cKU31Z6YdOGbcK2dHbiupGhg0Dmd6zT/JhMNy5 +O3hIVjxo8v0dRbio5e3x+eaM6cqXPzXzGYUs4SOFpZ+h5rsXprxcX9079XLGQiAxedIIk2w Content-Type: text/plain; charset="utf-8" Do type conversion to double at the point of use. Signed-off-by: Ankur Arora Reviewed-by: Namhyung Kim --- tools/perf/bench/mem-functions.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/perf/bench/mem-functions.c b/tools/perf/bench/mem-functi= ons.c index 8599ed96ee1f..b8f020379197 100644 --- a/tools/perf/bench/mem-functions.c +++ b/tools/perf/bench/mem-functions.c @@ -139,7 +139,7 @@ struct bench_mem_info { bool alloc_src; }; =20 -static void __bench_mem_function(struct bench_mem_info *info, int r_idx, s= ize_t size, double size_total) +static void __bench_mem_function(struct bench_mem_info *info, int r_idx, s= ize_t size, size_t size_total) { const struct function *r =3D &info->functions[r_idx]; double result_bps =3D 0.0; @@ -165,18 +165,18 @@ static void __bench_mem_function(struct bench_mem_inf= o *info, int r_idx, size_t switch (bench_format) { case BENCH_FORMAT_DEFAULT: if (use_cycles) { - printf(" %14lf cycles/byte\n", (double)rt.cycles/size_total); + printf(" %14lf cycles/byte\n", (double)rt.cycles/(double)size_total); } else { - result_bps =3D size_total/timeval2double(&rt.tv); + result_bps =3D (double)size_total/timeval2double(&rt.tv); print_bps(result_bps); } break; =20 case BENCH_FORMAT_SIMPLE: if (use_cycles) { - printf("%lf\n", (double)rt.cycles/size_total); + printf("%lf\n", (double)rt.cycles/(double)size_total); } else { - result_bps =3D size_total/timeval2double(&rt.tv); + result_bps =3D (double)size_total/timeval2double(&rt.tv); printf("%lf\n", result_bps); } break; @@ -199,7 +199,7 @@ static int bench_mem_common(int argc, const char **argv= , struct bench_mem_info * { int i; size_t size; - double size_total; + size_t size_total; =20 argc =3D parse_options(argc, argv, options, info->usage, 0); =20 @@ -212,7 +212,7 @@ static int bench_mem_common(int argc, const char **argv= , struct bench_mem_info * } =20 size =3D (size_t)perf_atoll((char *)size_str); - size_total =3D (double)size * nr_loops; + size_total =3D (size_t)size * nr_loops; =20 if ((s64)size <=3D 0) { fprintf(stderr, "Invalid size:%s\n", size_str); --=20 2.43.5 From nobody Tue Dec 16 21:11:18 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA78E26E17D for ; Thu, 10 Jul 2025 01:00:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109224; cv=fail; b=tLJ63gpDF4CreU7yPhQPjbZ7PacD+VICDK/ikCWw96c4kuMOP8foEoLGORjVbHan6nPUROej1b6LaqIQegEgAC5S0r92ikCCsNyDc6LsRf0iy5aP8iE77ZBN5oZO07JfCS4QXDxBgyJ5gEb+mOC7brJKa27Gpy7VcXOUTSQ8KSA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109224; c=relaxed/simple; bh=e0zWQtXD9qDjJdqm0w4gvN9HYdMGJHwakkcsf1PWRBA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=JCfsjT8xHE3b+DaD5s2UoUbz6pOuoxIXRM0UuuTLkl6iaFsPj+Q0FGagVtsuGU8GdX3/byJpmUKlVCKsUrriVHps2kZZc+VMzZ3/NmUwViyO9h+wVC3sNiFN2djePe7vF4/ryPCjLQKg2dSyXMEytQFz1z6nSOV7qmjN7AzGoiQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=rAxX2KU2; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Wzk+Y7tE; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="rAxX2KU2"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Wzk+Y7tE" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56A0ODM3031877; Thu, 10 Jul 2025 00:59:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=yHZ7F0owhId1Nj0V3t/dLJRFmpIt8oVtlFY5VptQEkA=; b= rAxX2KU2FfJdShPDppYsE2UWR9oVC2qDJVoEWDmT0cXjC1ZzV8KZQ7jds/kBPCu4 5ICYW+VyCGXt55tLiuZ0XtwHGHHbuRx/edOEuSEhWSNJ84ELVgVeT4+M3x4V2tJ6 BUZqMpR1UYuUkjzrHuTfgMrdr88tW4irElx0ONGqufH+EU4rQOooEw1fSkOYl9a5 dBPnHwwdyIkQD6Cwnbt3T7tjXoT1aV6+CQ0XQmAH1kpIpjb6pF8xglO7L7ZEqhVa CE2FO3tzdrAyxDD7u+jKCdd7/1itFOWo35O9yqh8VZVQV/4bTATwRczR6U5IHyB0 YwzHTNmizWA2yyr2FIsGCQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47t2wn818r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:37 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 569N8lDU024219; Thu, 10 Jul 2025 00:59:36 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11on2064.outbound.protection.outlook.com [40.107.220.64]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 47ptgbvxab-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=biquizSaULDY+IgWw34ek55nYaVnMG/bB3LFfqc83zxi02JSA5y9jQyBTBgJNp4JtNEigGuwccDvoCVKA16MqEjn3H264Tc/nt8JZihKzZhGrsEFMkyLj4fYO24XMgz9T7UOW19A6dEEVrJq5hqTNz4AtnXUvjPT8sSTAt9on77+/uYnaLIAgNy6l4JIq9gbp+UOfUwvIs8pew9G4zVnMxC4oj8qp/W1rgpYHpJxJhXn4gcku6+JmOQtmHm82zEOviXN+ZZv7igNDyp959ECTcXsZpNbXLg59kNozmBcg1BbtOBswLQCG6y/dxa8IHpUJ4jqNgSLBLK/aYu0F6reZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=yHZ7F0owhId1Nj0V3t/dLJRFmpIt8oVtlFY5VptQEkA=; b=ONyaKL28vTxT4IhBpDZTnSCJN+TQlqnGXiy8larQKK3hVdefzPrWpQ3pld5y4dOahpkOxIT/0jTDXVxmfuDMSpZZmUpoiuc09vtykoMPx/kptANdJw6B5jFZktsAxuN3xZufKH+bNAlZs95rADyb4MVMvuF1e/GF61dyhBonCDp+oC1IsgxI7Ihenz3grkHWYf7YCE+NbEJyel76NF98p/XRLc5+DzMrBqNErtoI0WniOprREWz41mTjV+I1Pr1irZsjgSfyRKPATXaXmqosl/F91fj/+GB/MHGiyY04ZNFCVlA33yB/o5HZ+yWciwijrdYGjai/bDnlL+oYgkrLxg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yHZ7F0owhId1Nj0V3t/dLJRFmpIt8oVtlFY5VptQEkA=; b=Wzk+Y7tEO3bfnMwj6GMMsIuo28MyRfMtKvXvtNATDSASBc9lJxvJgeyiqr7WnRctvdG+w5MekVMA1MDz+EdEI/cffSl8iZC8Du0lsGtSyPQDu4uqAzvwkqH9V+Ovrlc5iWgP4bo0R24iJR6o29kqOf/9RfLGNCb74erR44SGnH0= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS0PR10MB8078.namprd10.prod.outlook.com (2603:10b6:8:1fd::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8880.21; Thu, 10 Jul 2025 00:59:34 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.8901.028; Thu, 10 Jul 2025 00:59:34 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v5 03/14] perf bench mem: Move mem op parameters into a structure Date: Wed, 9 Jul 2025 17:59:15 -0700 Message-Id: <20250710005926.1159009-4-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250710005926.1159009-1-ankur.a.arora@oracle.com> References: <20250710005926.1159009-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0003.namprd03.prod.outlook.com (2603:10b6:303:8f::8) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|DS0PR10MB8078:EE_ X-MS-Office365-Filtering-Correlation-Id: b08cdd5f-31d6-4d53-a672-08ddbf4d0913 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?QSw9myhhM6KG3OS20Otx0qikFTlNoe2BJUYdMb08L8MmQWjb5fUSPPeIRvlw?= =?us-ascii?Q?zx5z+wJRPYYybpJNgwdl+GA+XZ//Pp7b2itJiUsF3EACvtCFLooxcmPjSSQ9?= =?us-ascii?Q?AzVXmOZM8W1vYfSF6i1g5WJWXQI+M1KcIkRwrC7r7rViAwhHAEiSgVg6re+X?= =?us-ascii?Q?jMfT1DBSTTIlorrham1ocy7nIC4FWWEfYWKPagWdm2crNL5LcW0r8GOn8vw8?= =?us-ascii?Q?zL+rpQgRIQyszwTvzZTGxY6t/ShhD83aecOPiq6cdVUn46KkyW6obWvaLYHJ?= =?us-ascii?Q?6klz52rInk1idkK94PX3iQQkKnajBzpV3lL0qNan/8qzSRq7RE0Uc8oPyRlX?= =?us-ascii?Q?AJ2wufPqgt0mpHprMOK91wtqAygLbPmbTL/E/DXw2TLiowM3yVmv2Em8xfic?= =?us-ascii?Q?zs2ic4sESoZjDyCEo0MHBQVY7Ea0xeebjJpYAXSG8FCBL29DE90NJGoB/z4a?= =?us-ascii?Q?DkjZH+8lXvgqWnjJNgHL7Ke1gqXaPJMUtge6NqVflBO4Ihg1Qx4oUJJfJPgh?= =?us-ascii?Q?ubWiTtLdX50Q8X+ZESyXMJQkQOCszbr92z/wIVZahqc9wPlrUQf/FmQjAhf+?= =?us-ascii?Q?ctgb/03kWbly7En/cDGxwjZxCOCqXwbFugthi5rbz+2mdC3Wy/+V39Yb7boC?= =?us-ascii?Q?q2WMvsN0AhxBi+6ro7SABDks81LTvx22EIPY5jKSFhCKDofL32ElrD7vDwG7?= =?us-ascii?Q?jfqOBcBx0GpOkGPHZwyCtclIHoiQITZFup18ri342w51Osz6ZDu4AIxkd7jW?= =?us-ascii?Q?cRBCuGbXowfLV0v4TKZTx5Rcc4rm6lWw2JEwa/+CQ/mLgRFtC8liyNs043Rn?= =?us-ascii?Q?Du9aHPYlWgG0fuZw58889k29YO53RZqRBuQGijPGXuJV//A7OyFEM3kmyTli?= =?us-ascii?Q?2TjM5LhdA/ipcfdWhnCXwZki6RaPPMHNWlPcogaIQWJtmbpMvvbRFd2fenUw?= =?us-ascii?Q?HMah1BqYER61wU6uzXCDnY0k5v4Ro5+M95KxF0hYao4znrPj4offRLZj6Y7Z?= =?us-ascii?Q?2xRUyAb+5NE6RrLYyeST2ERpOB/gWnCzgPkW616d4kPLhlGyr9H7Oyw1rH+b?= =?us-ascii?Q?bjVX8EwAM0+MgogUq+uoCm2FUZYFdrBHgjw83eQ8H/slH+q5fM9KP9zHXM7w?= =?us-ascii?Q?9KFxJ9KUg2epFUCRTSa+D4r4fZXlIq1Ms1l9dRDkUpcZ4a1t3PMYN2k4mMFX?= =?us-ascii?Q?gvjKO2J6aeuOOYWhowuKKi3FK23soa+IG8+u7nsLDqB/31XCrEcffomvh/1a?= =?us-ascii?Q?W7J6jUaxOi88Xvc6QaD43iVDzQ7g/O5dmm46NaxXw+z9PPG22R/scmMQM4Xh?= =?us-ascii?Q?ScquSBZ2rL5YzjGnk///gmnwZVs78tIUZ2gAm66TbDFcR2JA1WWojz+dUEi8?= =?us-ascii?Q?rWmjxXv7vP1yYudMGN0a04FGMp1/gnm57AyN3CHES9F/tIo3iCRn9vOp+bsx?= =?us-ascii?Q?jbm2uz03LHo=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(1800799024)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?udNW0FeeJrHJa+Ecl+1DKsle0HDPeBo+raCkf1y8shYVIO6UBPEHO6DmQVJy?= =?us-ascii?Q?5PDaUltL2bd6iRjKcniRUHJtWlSSNko1nLTl7tuLwrIcUnySaOA3vdQPg/jf?= =?us-ascii?Q?uOiANz1Xw7hh8zQHtqyVa5XXi+eClboJfAsfOv/v1eS2ipf92H3YzP0ADB92?= =?us-ascii?Q?+LzwMZqUmVRoodMy3Vjcx+Jh8CZArLID1TvIvpVSDWGQkfQinPMqUEdD2Mv5?= =?us-ascii?Q?CmPJ2sF6MbBMK+j4pW+dELofpAgdF8JojtDROn6vyTlzju2kgyb/wgLxmtZj?= =?us-ascii?Q?VXPDwoBhVUJQ9FpW4yABMdhjAu7lvoPWDULIEAX/5/N4cataM++DHl7ZUA+q?= =?us-ascii?Q?w+V2xO+zTKjQH/UPMk45NwMrZxhS1HIIoS3Pk42Bh/4q3gVqP1V66czLCwgD?= =?us-ascii?Q?fBEphL92ZCz2R4IIil060efsjL6u4YcYDuycmhovGMC47+uNeZtJjshYP3NE?= =?us-ascii?Q?ic0q9efHXnw8ii6+2W+yvC9Np0vsvt1g41FDgO0g7xYf6MG0DqlYXJlge//s?= =?us-ascii?Q?RUY6oraL6ldZY5Btckx4C5G6D4dG2sq8cAu48TO99qgFSZvISmvad9Ko1jwk?= =?us-ascii?Q?ED8orqJssTzqSiBzu/ezNY+zPY3xZRK91LrrK+95dgnGFWdl7ow14oTGWwKN?= =?us-ascii?Q?LmoTSCJHCrchVXxpi1U0uug5r5rO27VILoI5EvdLWrpvFAMSdLQsDOivadp1?= =?us-ascii?Q?RFTIM9R3uQVpRlZLgUOKkoVRP8/9K4Ivsvv90hDGdL2XAfTNqE7DS0LISqiv?= =?us-ascii?Q?HAfyuPm4VxU6Gu3qlg7ebsG4krQZ5pF5nOqk3MoiqsIDOmZ9qnlKsfbpYj4k?= =?us-ascii?Q?JOfOgsNiZ8W3tQs8NiMWcYdeSz07WmpXbHhdoBWSssO/GTAFdfZz2hbOw/8i?= =?us-ascii?Q?XvQsMpjs3JpYXpu53pWnSYiNFowsrH3GLnbh2NzfIR/QAwqU9UAeIeJkZoLp?= =?us-ascii?Q?u/sp/O7fL6FLF0LwKAaRvK+h53kyUELVIHAm2dfBfjrK+bRu2U01GxWl2jWr?= =?us-ascii?Q?Q/ckSdwik+tnpso+EVmWwbVOjGqWPDD4Uc/isXQ877NwH7noDWvtGocSGHi3?= =?us-ascii?Q?YVY8LrXZIuy7J5OGCkb/r/Zh90OVXr1z47Hkjn9rxb4SoZ9UQsotX5IYxFK1?= =?us-ascii?Q?WXqLfeMAtTQEJv+jMh8xXoZWcd+ZXNvX9QjzLHWbsUM7Bq1HHFJQsCqarwbr?= =?us-ascii?Q?c7AdmDbN4iuVahW4fMq6xvY0Q/KltivwWPOudCo4v4viZ0nSvw86/dS9A9kY?= =?us-ascii?Q?rPZ/zPdfJyvUN9OyPPa1aXuiMyb/L2t1bEzY99xYGfAxgsPvGNqVbD3Be6oE?= =?us-ascii?Q?kVjIO7niqkn4PwXO6HfLBjCvxgr6o3WBtRwmm6VoPP3oIxn+rr+kSQNIrEDI?= =?us-ascii?Q?9h6H+9hhYZcHZX+1/xlQ4AY+muBavruXgh4m3NrT0ZRuTBn7s241WGGL9tLE?= =?us-ascii?Q?Yb3dqLI2LThJ3yCQRY3IQU36c+z9/k1RS7GbunXgUkLeWiovNqM8O54mTwcW?= =?us-ascii?Q?UGE6q3BLTCjLGZeQF93Ueu+ag7tGWitRWfeWU4j0Ff+Xgzj06VVhS0Z8xq0g?= =?us-ascii?Q?f/0ivp22WugXXzvVHU3aD3HU2aJ17Ju4vnlFGIlCnQrkmlTNEjyWEqtc78oT?= =?us-ascii?Q?QA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: mjGZGFRvKXa1Xexf8R0tqyzwaDyrtp26Agfbn5L4hMTAYeXfdqq51TZbrfEm+tRK0NkklgugTAHhtgMJD1BTU4SXtEmAicnTuOM+z0oXzFsfBw+Sp8Pc9+CWcMHNi/ADqAGILwVp0BSjOBFkAvDV8ukiKZEV1Uao6utJRysCGc3AogIF5vsq7DW/NkymX48wSeXoxt/KSEXG5HI8oZvfdfmV/VdUKDPEXGHrrEqNAqwj9nAOfqK7n87dfiPiPY98eFlcudCoe+ppkk/DOjFwF7D5Hm98LdrOT72lUCVPwsqErWviJeF94aq2ytTtwsQVCRk4fAeukdeN5PPQ0bYylG6Kh68ab3RElwb2rlv+ihj9H+yW5Rcm9LkOI86hGMSagg/r1L49yw/UFkHAeGgwbqYLxvXMCqs0DgBkBz09kSqoOEYgeGtkUx26TtRB+6DLAyH3RAoE9+Cg/D5vkC4mxj7lB5HleRpPqGJeiKB8JE3q2/rFkNaL9dyoX4H2ncvlXtU5DOJHpcYBdQbLLpBHK5LcpCJmjprhxw20oY2UdmWHoEH1K4acd5jAoe5OT01Kvku/SpJ3rpY6vV6RR2zWgVzi2cMs64pZpcasskp0AKM= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b08cdd5f-31d6-4d53-a672-08ddbf4d0913 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2025 00:59:34.3521 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9dEe/h78VEYITtGfyyp3XHQWSit0dLJm4vpD9bQDY28TYDNhNmljhwWj9tFOPK3gWVbNZQQ0j7HQkQZqXlPLep9tx2jMCBs/B2ck8z2WjiE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB8078 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-09_05,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2507100006 X-Authority-Analysis: v=2.4 cv=WtMrMcfv c=1 sm=1 tr=0 ts=686f1079 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=Wb1JkmetP80A:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=_WLpKjk4XQ775Vi3V00A:9 X-Proofpoint-GUID: n2qMZb4VmFbzllVeyZHb8PK_4F4UXbfC X-Proofpoint-ORIG-GUID: n2qMZb4VmFbzllVeyZHb8PK_4F4UXbfC X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzEwMDAwNiBTYWx0ZWRfX+0XskUCmEaj7 366eJuYXaePlaIyoee+UeT4erTBVF8VB45VimopNAdRuEmzKlz5lMdIVqv0lX/jBSCYUiQhyNU6 xjDqEEyl4B7ON1nOUJYNYjIkD+X7yXV3h1d5izqAyJeYbfxD7JrAnh3QkmdC2FLBuXxOK6F/wUl zZrEtY+EjMdS9hhXhSI8wdM0qfRzsmSVPZR5vXFmtxBp+Xxw/OGQEec+7g34c1NjXj+HkDmUT+3 0q8Qo7vBGzCYsIeq+JIDBofrgZtHArI3VjD4kxs4fqv6oMAvSdBNsetGhT61I56V/Cm+mqxshOP XTJfv3PgEqqZOl1oVEvHz4ZhflnyDfmf6riw5nX8NjPAhozvlye68Ga9w5XwCBe1v8L3Izppkvy aIc/QYzMWKnEaLCRX4ySqsK2an/gzKVDHtzxNSYpgoooR+mg5YSZAJ5y/KvFg/I34K1ISoZ5 Content-Type: text/plain; charset="utf-8" Move benchmark function parameters in struct bench_params. Signed-off-by: Ankur Arora Reviewed-by: Namhyung Kim --- tools/perf/bench/mem-functions.c | 63 +++++++++++++++++--------------- 1 file changed, 34 insertions(+), 29 deletions(-) diff --git a/tools/perf/bench/mem-functions.c b/tools/perf/bench/mem-functi= ons.c index b8f020379197..fb17d36a6f6c 100644 --- a/tools/perf/bench/mem-functions.c +++ b/tools/perf/bench/mem-functions.c @@ -30,7 +30,7 @@ =20 static const char *size_str =3D "1MB"; static const char *function_str =3D "all"; -static int nr_loops =3D 1; +static unsigned int nr_loops =3D 1; static bool use_cycles; static int cycles_fd; =20 @@ -42,7 +42,7 @@ static const struct option options[] =3D { OPT_STRING('f', "function", &function_str, "all", "Specify the function to run, \"all\" runs all available functions, = \"help\" lists them"), =20 - OPT_INTEGER('l', "nr_loops", &nr_loops, + OPT_UINTEGER('l', "nr_loops", &nr_loops, "Specify the number of loops to run. (default: 1)"), =20 OPT_BOOLEAN('c', "cycles", &use_cycles, @@ -56,6 +56,12 @@ union bench_clock { struct timeval tv; }; =20 +struct bench_params { + size_t size; + size_t size_total; + unsigned int nr_loops; +}; + typedef void *(*memcpy_t)(void *, const void *, size_t); typedef void *(*memset_t)(void *, int, size_t); =20 @@ -134,17 +140,19 @@ static double timeval2double(struct timeval *ts) =20 struct bench_mem_info { const struct function *functions; - union bench_clock (*do_op)(const struct function *r, size_t size, void *s= rc, void *dst); + union bench_clock (*do_op)(const struct function *r, struct bench_params = *p, + void *src, void *dst); const char *const *usage; bool alloc_src; }; =20 -static void __bench_mem_function(struct bench_mem_info *info, int r_idx, s= ize_t size, size_t size_total) +static void __bench_mem_function(struct bench_mem_info *info, struct bench= _params *p, + int r_idx) { const struct function *r =3D &info->functions[r_idx]; double result_bps =3D 0.0; union bench_clock rt =3D { 0 }; - void *src =3D NULL, *dst =3D zalloc(size); + void *src =3D NULL, *dst =3D zalloc(p->size); =20 printf("# function '%s' (%s)\n", r->name, r->desc); =20 @@ -152,7 +160,7 @@ static void __bench_mem_function(struct bench_mem_info = *info, int r_idx, size_t goto out_alloc_failed; =20 if (info->alloc_src) { - src =3D zalloc(size); + src =3D zalloc(p->size); if (src =3D=3D NULL) goto out_alloc_failed; } @@ -160,23 +168,23 @@ static void __bench_mem_function(struct bench_mem_inf= o *info, int r_idx, size_t if (bench_format =3D=3D BENCH_FORMAT_DEFAULT) printf("# Copying %s bytes ...\n\n", size_str); =20 - rt =3D info->do_op(r, size, src, dst); + rt =3D info->do_op(r, p, src, dst); =20 switch (bench_format) { case BENCH_FORMAT_DEFAULT: if (use_cycles) { - printf(" %14lf cycles/byte\n", (double)rt.cycles/(double)size_total); + printf(" %14lf cycles/byte\n", (double)rt.cycles/(double)p->size_total); } else { - result_bps =3D (double)size_total/timeval2double(&rt.tv); + result_bps =3D (double)p->size_total/timeval2double(&rt.tv); print_bps(result_bps); } break; =20 case BENCH_FORMAT_SIMPLE: if (use_cycles) { - printf("%lf\n", (double)rt.cycles/(double)size_total); + printf("%lf\n", (double)rt.cycles/(double)p->size_total); } else { - result_bps =3D (double)size_total/timeval2double(&rt.tv); + result_bps =3D (double)p->size_total/timeval2double(&rt.tv); printf("%lf\n", result_bps); } break; @@ -198,8 +206,7 @@ static void __bench_mem_function(struct bench_mem_info = *info, int r_idx, size_t static int bench_mem_common(int argc, const char **argv, struct bench_mem_= info *info) { int i; - size_t size; - size_t size_total; + struct bench_params p =3D { 0 }; =20 argc =3D parse_options(argc, argv, options, info->usage, 0); =20 @@ -211,17 +218,17 @@ static int bench_mem_common(int argc, const char **ar= gv, struct bench_mem_info * } } =20 - size =3D (size_t)perf_atoll((char *)size_str); - size_total =3D (size_t)size * nr_loops; - - if ((s64)size <=3D 0) { + p.nr_loops =3D nr_loops; + p.size =3D (size_t)perf_atoll((char *)size_str); + if ((s64)p.size <=3D 0) { fprintf(stderr, "Invalid size:%s\n", size_str); return 1; } + p.size_total =3D (size_t)p.size * p.nr_loops; =20 if (!strncmp(function_str, "all", 3)) { for (i =3D 0; info->functions[i].name; i++) - __bench_mem_function(info, i, size, size_total); + __bench_mem_function(info, &p, i); return 0; } =20 @@ -240,7 +247,7 @@ static int bench_mem_common(int argc, const char **argv= , struct bench_mem_info * return 1; } =20 - __bench_mem_function(info, i, size, size_total); + __bench_mem_function(info, &p, i); =20 return 0; } @@ -257,18 +264,17 @@ static void memcpy_prefault(memcpy_t fn, size_t size,= void *src, void *dst) fn(dst, src, size); } =20 -static union bench_clock do_memcpy(const struct function *r, size_t size, +static union bench_clock do_memcpy(const struct function *r, struct bench_= params *p, void *src, void *dst) { union bench_clock start, end; memcpy_t fn =3D r->fn.memcpy; - int i; =20 - memcpy_prefault(fn, size, src, dst); + memcpy_prefault(fn, p->size, src, dst); =20 clock_get(&start); - for (i =3D 0; i < nr_loops; ++i) - fn(dst, src, size); + for (unsigned int i =3D 0; i < p->nr_loops; ++i) + fn(dst, src, p->size); clock_get(&end); =20 return clock_diff(&start, &end); @@ -305,22 +311,21 @@ int bench_mem_memcpy(int argc, const char **argv) return bench_mem_common(argc, argv, &info); } =20 -static union bench_clock do_memset(const struct function *r, size_t size, +static union bench_clock do_memset(const struct function *r, struct bench_= params *p, void *src __maybe_unused, void *dst) { union bench_clock start, end; memset_t fn =3D r->fn.memset; - int i; =20 /* * We prefault the freshly allocated memory range here, * to not measure page fault overhead: */ - fn(dst, -1, size); + fn(dst, -1, p->size); =20 clock_get(&start); - for (i =3D 0; i < nr_loops; ++i) - fn(dst, i, size); + for (unsigned int i =3D 0; i < p->nr_loops; ++i) + fn(dst, i, p->size); clock_get(&end); =20 return clock_diff(&start, &end); --=20 2.43.5 From nobody Tue Dec 16 21:11:18 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0D49E20B1F4 for ; Thu, 10 Jul 2025 01:00:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109208; cv=fail; b=V1bAK7Wc5c+jKzY3CMF7WdEbdaywR7ilT45aUx8FWQIQl47xv/E+tSyQ5jP9Hbjh0YXE+l2pp4OeioOdD/AkroNCHuamAb7WK/FkAPkpBLUWf0sqkvaInmDdmefh7PzErj8+t4ei9tCRiMbfkzChO4AQ/3drCvz8q/UcrDeBeFI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109208; c=relaxed/simple; bh=M3MPKbv69iLTbxKVdzCN0iDfrm8nbaOCyH8ZJa091fM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=n7MoA7o6hvzBcydFV4gY7++9/JXAD/dEagQqP3QOj6LlCr8IdncYADOZM5Cxl7SQCHHsYHO9Lv8v5+JQDFORgAXnUtohSpi9bGIgDHfpddwvUDuGGXYo+zcsoh9+OGR6E3Srs0A6rBpsR7/e/h+K78Z631l25yQx2MIg7hKsCm4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=OS1gY2/a; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=wtqrbm3g; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="OS1gY2/a"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="wtqrbm3g" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 569NIEqI013087; Thu, 10 Jul 2025 00:59:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=vytiry0GUKOqcF2jTm99b5DHZkzau4R7q0b0ggyHbPc=; b= OS1gY2/atRZg4uE9mw1U+qQuWhdIhhB89APYkzuP69v7I6d42zY4qNBtbdMU6xtW ENld0SS2OBg9FWvYNYRzlCAbyFso6NxLbQfXJO2jJE4KULg686t6+tleWPsXJVDs ldKO1XsiYXkqed5/VWtqFTWbcPR4KoS3iVdJMJ8L82mu8NUuvgh5fZtGB1MVIP99 nFHgiuV1neFHNU9MrZYveX6RQ88wICz4WvhDXKvIPRqe5UNanJz7JOWDM5+gxaBK AefgPh1DoBfnEh2GFQWc8Qph16/Nv/Mfv5flEe7lO9Sh5nOkUSg2ujsmdslJLH4r OlSlaLE/HZrxjFh7xGKZOw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47t1y103ce-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:40 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 56A0TKuS014057; Thu, 10 Jul 2025 00:59:39 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11on2040.outbound.protection.outlook.com [40.107.220.40]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 47ptgbndn1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OVgI1uNYzdklkeC3KdvMBAFJyXT/pFrPcLh1obtf+pHWTOpO17BAqALlmDcUxK91RZmHZt48ahP4eoqfeJBBrxaEWuz1pT2KBAkFzj9ZcT4/pb0TaV+/5QWMkCnXRoeOtS0i1zdsj2eYDqY2lFXNQiMb6yYgQQPJ70cChlqq8tZz3tHpnOZj4AFT0wSwYPZ6+GD1Y4Fw0MJ20CqXr9W992n4f7hifo7NjjPR+ph0lAru7ooC5WXU3dKF2RHz1ILYb6gLmX0kRk74Y5Hb84dFhNYNLiJ+i3w8aEh7Kn/F/gi+VO1quf2j7WoU9WbRLpkR1K9VjmodmaPNLk9WrJmScQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=vytiry0GUKOqcF2jTm99b5DHZkzau4R7q0b0ggyHbPc=; b=jZWa/+7lXChlb8WhqWXELB999qgp1E/e6WtVFfjiwRuzeR5ky6ImzfebqBct60lcgNmXp2fV7W7kTUTazJKEVTAb9GQuHtQN8NAvckwM3J1Pvmyatyl+wjz/nDit7jyH4+CTqltMZrfbAmr5Kxx9HkQwaLsTcSbeNP6KEpBKHgFKsvsDZx0QWRVI4DxiqrNKKAjz+L8m6XsQs+g/sBancmcjB4cZ0iVqI5P+PeEHVAYfaYAViltcAYVSATBzfbK+R/x5dkLLThY3MlslOIqZ1fxlzz2hti9wNNVujFzRZderp4QdbQ9RBztGyhoHMEfmqdO0Ip4Scs5Er9kKdwuDnA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vytiry0GUKOqcF2jTm99b5DHZkzau4R7q0b0ggyHbPc=; b=wtqrbm3g82DVhjx+AglPu8e5Aoq/6wL9qSvu0ouYq0b1OMXeVLTF/V42sUpATOqcgKQ3nl6NoMTUkFNrXl3Xa4u0DuBjXZsy8ovyN/Ck3oEidz2eXKOoltI43OhuyJr+TzD5jBysuwLDANgGatlyROkV4KApl3qc2AZxcTncbc0= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS0PR10MB8078.namprd10.prod.outlook.com (2603:10b6:8:1fd::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8880.21; Thu, 10 Jul 2025 00:59:35 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.8901.028; Thu, 10 Jul 2025 00:59:35 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v5 04/14] perf bench mem: Pull out init/fini logic Date: Wed, 9 Jul 2025 17:59:16 -0700 Message-Id: <20250710005926.1159009-5-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250710005926.1159009-1-ankur.a.arora@oracle.com> References: <20250710005926.1159009-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4P221CA0004.NAMP221.PROD.OUTLOOK.COM (2603:10b6:303:8b::9) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|DS0PR10MB8078:EE_ X-MS-Office365-Filtering-Correlation-Id: 15c1d547-a204-48ce-f8ee-08ddbf4d09ef X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?OOVaZvo+QUEQFPlgnYswgfaCZoBL+GzRg9wE13GSc+/4XJx7l8cNbVCzEF18?= =?us-ascii?Q?Cfh5NnDvgTNdqPmJtxQP6w25Alo6lt4SrAg7LssxHjJ/0qQnMuiiF5ZTi7Ki?= =?us-ascii?Q?KCKiQBlsqnPsMgoVOVKdTCldW9hduEvzyqdbTnpNw/WbcOeyM5DrVwZPvGO/?= =?us-ascii?Q?RluvxhGbvBqI/gCKlprbXat9YwrOVLz2fdo0uoeQPkJP2eM19ijzuqpUyXru?= =?us-ascii?Q?ZOW0ZXZYIFdfbQcqvHYNHtm8m2Pgu2Rh7U92NljpAaO66lmjeBlqOqgVzI8i?= =?us-ascii?Q?DsvxDLh/UaupCHNdB8RtffWoBEmPVn/mNY6YTRR9NwSABid++eBXvgpzUcY9?= =?us-ascii?Q?OHvkUcCZfHqoBrhQOCuQtkEc3eOm3dfgGr+yWgfyLwveja8VXbKn6acPKYOt?= =?us-ascii?Q?e6Arj9B5AIWbMqUkCfUBPWM2Exh/yE2CiIIvRiD3KyN6QdQC+nCUVPktvtno?= =?us-ascii?Q?WGU7FbiQ29Qu6k+vzkibtYBKGa3yrxHCFiPLtL9ItLyZRJncYJ6XGYknrGRW?= =?us-ascii?Q?7PL3PJVd33zpQQxYkTlLcULaQI1NySef43L65xL+Guozvbut7p1gnuwOTCfd?= =?us-ascii?Q?2X4F34fKVMnsLERgxQapV7B0g7uUenXMvMqXNq1ckwn1D6UHMd4FViXR194g?= =?us-ascii?Q?fn53b1IZpvMtybWP+QaWKpp7WW0duymKwn7vaIYs/IPM5hYFKvvgRUkSgSdu?= =?us-ascii?Q?E5r8Edgto7zGFAl2mwQRsr+6Xn5ROQ4f4U8HAHer1wgaTC3Qnq5KGIvGQtYR?= =?us-ascii?Q?lqC4gRsBUCAWvHqtoU7MIGmkSHtxWvqYyxJMMKdKshtDE4lG9DMqrXDMW+jm?= =?us-ascii?Q?rixprjBabQVqTIcCO77w6zGkJv8rz38dZUqc2frAqz4mn/K5m/EFRWAY0lvi?= =?us-ascii?Q?n0dd6bIw0QzDjZwu6wJE/L7sAGU1HxNfhpAiT39KosYj2N+UOVRaveJuebNb?= =?us-ascii?Q?U/z1wGKPHJuM39R2GEwnVP82GZxr214ATDWSHnzbk5NKxD8t2qu0HsY/6LJP?= =?us-ascii?Q?1f1JyIaa91IXOFtDup3foW+ZdIN3doUcaJxdFlnUpkD+NXvPmimYjeBq0BNa?= =?us-ascii?Q?/RJepG5ZNlsmGhyImXjNxNMObWj6WH3UyuO15RgdeQgVirZCrwhnVpsmZ7qc?= =?us-ascii?Q?Q7u0YsuXscnNLN8Rzlyn3ybmtOWOxy+ME+d8x8xSe5fcFmDL5J/lLPqJGXAw?= =?us-ascii?Q?y/rBBQGnrBDhWuFh3po+2kKz6sgfpX9vAz0USa49kO900qDTEQ9wPjInloHl?= =?us-ascii?Q?g7ggdOHRCD4Kdz1Y/ZO3uNjMcmGkLdPFOrEPh/iw2CbIRhUDFmLk/ZmmEUZl?= =?us-ascii?Q?vsCPv2Y7QcOCTwtsY+eVb3wlsFydvsVJfxo0+Nh+F+TGKQrAOSeUPGbHUnfr?= =?us-ascii?Q?aaHBuLpzEUE7P7sEIdJmIshUwvkHzTF7tm2vJsIzPdoBTWcWmGGP1BgqBxTD?= =?us-ascii?Q?YnsbZEuVPiA=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(1800799024)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?CaXFW0WHvWUczVwA60+Nzw+I2MULZkSCp+nSlUJnJFCjUaqtAIN6EtDkrWqD?= =?us-ascii?Q?eTfIIuuFyvNcWU67+oXizCspu48+lY/Dg0ZxyD2GYim0X5FZNACL6BJLYsYh?= =?us-ascii?Q?dmk8z2co+sHqBafS48/IOS5ZYzSq76asLiJ7OpkJJfnz+CzRPCiweAAufiw1?= =?us-ascii?Q?+4ULiR9oo8YtqAdxQhidFVBuB9RtXxN706yX2vQp7OHntgCyd7OCzuUTiBxv?= =?us-ascii?Q?CoyYwzZGk6fVI/eehfrFg5W0macTEtko3uEIcefJ0g08afXOdteV9P9pBQOL?= =?us-ascii?Q?A559w7wXsKeyXhdE2Oj5VFxJlQ363GXJ4IYIVwoMwVcSMF0JchxBUd4JyV+0?= =?us-ascii?Q?hAuudoubnOgeZno+igANj0nTbu6RGubh9JLpNXp/lQ8T0cGvZiL9ylhwuzuZ?= =?us-ascii?Q?hjorKGr5JlQm318CU+Ev8i0Viaz9sB5rbMD7dkXA3dop0Jf9vUUraHFkToQb?= =?us-ascii?Q?HONM2I0DS0A4VOcj0yoUK5ZqvSQuStW2YuekAu4sHF4O5QkmTk9mtXNi6Zvs?= =?us-ascii?Q?TaD/Xt/81TIQXwB2n+WZFtyOx+sYMmcDEWliZNN4hI6ieOYwYXjMDaIc3/WN?= =?us-ascii?Q?bIuWITZ2FfzKNInkFT0NXsEfJZikcssD5w90cJ8kcIlKMHfgbzh+RX4HhU4l?= =?us-ascii?Q?Kj2f5qCUOpjxbQvbdLqgEb9VCeFfPVkkfk2+GmKfPwEC1ECV25IRS7y5M4bZ?= =?us-ascii?Q?puZAX85jIYgHWN/JI7lfYgHKsJx2G8qV+SGOL//yCvFCy8vyfGXSU+isWuel?= =?us-ascii?Q?sERm43AY2Mav90NJ9QWVfb2ca8zvn8QzollQAxDxYTw8xZSzBeSY0WAcWN5q?= =?us-ascii?Q?Y6C6GZt2bM45A2Lp82xbyNmwJTgo9jZQuBHEyEBUjnOQt+VwXNNyXDwvU5Yn?= =?us-ascii?Q?tu+yTekCB1ZXeL08NaxHyDezB9r2AXywlie6JAd9l+z3SRDKAiLSX+c9ruPO?= =?us-ascii?Q?tbbm9Pd868+VR4WX7jrtWm4Y7UtiRTyGTyjk6EKIPF1DXdZfrEgEDEycGKtj?= =?us-ascii?Q?R4bes1BCpdwmasf2Ntb9eGBfF8fIONMIjC7fVndBHqxm+nNr9gd94lMmdV0P?= =?us-ascii?Q?8QPkOcNcm3MAWWPsoEMdl3kGE0JwmSB0xWJOS35HKLw9vP5hqwq+YwH3QJ6L?= =?us-ascii?Q?xCwWEeo312VgkaaGnw7umAKTwBNvvpBKsiIvdQC0w3Ebugz/2CT40iwzOMM8?= =?us-ascii?Q?Wvn5ll7BgYBMVDnDEFCZ+kwEQBWXAKGl8NkaIKkQTvcIm6r1iElnTjzq3Lv9?= =?us-ascii?Q?tqFDO7yMLe8P74VdsjUIKQw2kdFye72Efc74f3gzZOI44qP4C5GAPR1FCGLB?= =?us-ascii?Q?SV/8HgMyIE0JNxSVaM7xkvkmmoAlPSWI0k7k7BmJIN7GoQWaaHirfH+lFvId?= =?us-ascii?Q?6pulavVebtk8h1/vgiKhvcMZlRG3qAy4RaQyU6w6gF2Jtbh3QKDw+q7wP0Tq?= =?us-ascii?Q?XJA6rl00nrtqgb6HZTsY2a6E4K68gumS7VO2XYhAcl4UbZ/9vkAnW5jh7GDL?= =?us-ascii?Q?OvNVjUPA9oiUGxyAAYrx5EFgToa3X+vxunlg8AK1ShsNuR3/FrNJxbD45eTu?= =?us-ascii?Q?RKj7dXbmrnrMdMtYEaVoChbGecu+uUgqggVJ8C3bOzx96nac3rBygUkrMUjw?= =?us-ascii?Q?0A=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: TRahPG2GSfAVWmVte9LHAP5CmD2fWiGslNycVe4Hl86BLijia3TdHbuZr++V7i0WIj0Jh1f85Xjyak/RZ89raF0pHkEwc0PNOaB9qkvQlH80lCkwDy/gqV1F+JiDLEjkrptoireVP1uAQnZAXC9qmKs5XKv7Xvqk99X5asdp6/5vNmVGAyeJDnV3avHof6drHm35exs7fhbww+3PwUu4Wy+29gXNQ6k3Q0SMkiN1fGaQc/d67uw1jbUSNI6piL/PvEb7FeHAHRR6+sBXZPNAf6z5bUNCTRNIbLgJjDgchJwtSBSqBJ5NMdFK0IkkjIXY90kGcdOlqNk+rP739se6sI3zNETAetKeKYVc7qzv0mPAPbaJ3qlnrMYySQ1oHosnAB65Rrq02vV9j73B3KfwnLCp8Q12Yq/emTkSwcYk9meTQu+4eo0jaW3vpcBlLv7hVuHbECvEyeVCCQAMyVxpFKHdsC6FIm17uoQbN4FHB1JsG4zJnv4veeEZbBL1EVIsBfbjqxm+O8W+85dvtfxuFphhWuT5GDv4IMFSpDkIBrVwVsTMVN8v713CCRdHEEkluA6AwJCJ5B38DKM62q+W81thXcMcoy9srcdsaB7EUlQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 15c1d547-a204-48ce-f8ee-08ddbf4d09ef X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2025 00:59:35.8149 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: RaIbaHP4fiJbb3DlPqz4H/4R8KjNdkQAmZpqkARLPCdcI0+MS3w2Uk+W4XpUhmcUQ9B+Rsp/4m5t81wmk92d5GdbB1qm99/YjiuabMJNZcc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB8078 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-09_05,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 adultscore=0 suspectscore=0 malwarescore=0 bulkscore=0 mlxlogscore=999 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2507100006 X-Proofpoint-ORIG-GUID: WbiFUXjAjqRfRzScsigNQuOjd4aC8Lbt X-Authority-Analysis: v=2.4 cv=UqtjN/wB c=1 sm=1 tr=0 ts=686f107c b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=Wb1JkmetP80A:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=TbKJQeBsitzCtKh9844A:9 cc=ntf awl=host:12058 X-Proofpoint-GUID: WbiFUXjAjqRfRzScsigNQuOjd4aC8Lbt X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzEwMDAwNiBTYWx0ZWRfXyrnce9lu9B8C ogAVqo82YNuEmS0OKbpQDMkFMFmdWdRjV7WNR6uzFsYoWbHU9Lco2OZDlVdnEdLjzW1cyKeF3vG qWZDlEHR2A47OjMwtdMd62GXegSzb1sCFkoE4GTar+XiWmJWBbmdokVcQdrtstYTyN3+rh7cHJf trQwIFV70GsQGByGTDWsAqnVdE5nFniWKLuqouvptXy6lNGtLJgOz/9PGy7yRg123s+2ihsu8RW iEpNh4eE85E3T1r5/XCfpuzOX+Xsf/v3ef5uHi25LZX+3VLNHbYdkqh6/cS7nEVTtSIi9MwKSVw qsOhEPvcP6fOGaOQts+PnLPBfY+G2oKd8MXurb1F8Yqt+pY1RPjfCoHpbk2zxahFm7c7U+Ey6SK zw94cVOq0Co/Uqhm73snAoJmrE5VEj8KWXIN+1rxuQIdb2B5LVFcPSMr42+p41UOr5VVCp31 Content-Type: text/plain; charset="utf-8" No functional change. Signed-off-by: Ankur Arora Reviewed-by: Namhyung Kim --- tools/perf/bench/mem-functions.c | 103 +++++++++++++------ tools/perf/bench/mem-memcpy-arch.h | 2 +- tools/perf/bench/mem-memcpy-x86-64-asm-def.h | 4 + tools/perf/bench/mem-memset-arch.h | 2 +- tools/perf/bench/mem-memset-x86-64-asm-def.h | 4 + 5 files changed, 81 insertions(+), 34 deletions(-) diff --git a/tools/perf/bench/mem-functions.c b/tools/perf/bench/mem-functi= ons.c index fb17d36a6f6c..06d3ee6f5d69 100644 --- a/tools/perf/bench/mem-functions.c +++ b/tools/perf/bench/mem-functions.c @@ -62,15 +62,31 @@ struct bench_params { unsigned int nr_loops; }; =20 +struct bench_mem_info { + const struct function *functions; + int (*do_op)(const struct function *r, struct bench_params *p, + void *src, void *dst, union bench_clock *rt); + const char *const *usage; + bool alloc_src; +}; + +typedef bool (*mem_init_t)(struct bench_mem_info *, struct bench_params *, + void **, void **); +typedef void (*mem_fini_t)(struct bench_mem_info *, struct bench_params *, + void **, void **); typedef void *(*memcpy_t)(void *, const void *, size_t); typedef void *(*memset_t)(void *, int, size_t); =20 struct function { const char *name; const char *desc; - union { - memcpy_t memcpy; - memset_t memset; + struct { + mem_init_t init; + mem_fini_t fini; + union { + memcpy_t memcpy; + memset_t memset; + }; } fn; }; =20 @@ -138,37 +154,24 @@ static double timeval2double(struct timeval *ts) printf(" %14lf GB/sec\n", x / K / K / K); \ } while (0) =20 -struct bench_mem_info { - const struct function *functions; - union bench_clock (*do_op)(const struct function *r, struct bench_params = *p, - void *src, void *dst); - const char *const *usage; - bool alloc_src; -}; - static void __bench_mem_function(struct bench_mem_info *info, struct bench= _params *p, int r_idx) { const struct function *r =3D &info->functions[r_idx]; double result_bps =3D 0.0; union bench_clock rt =3D { 0 }; - void *src =3D NULL, *dst =3D zalloc(p->size); + void *src =3D NULL, *dst =3D NULL; =20 printf("# function '%s' (%s)\n", r->name, r->desc); =20 - if (dst =3D=3D NULL) - goto out_alloc_failed; - - if (info->alloc_src) { - src =3D zalloc(p->size); - if (src =3D=3D NULL) - goto out_alloc_failed; - } + if (r->fn.init && r->fn.init(info, p, &src, &dst)) + goto out_init_failed; =20 if (bench_format =3D=3D BENCH_FORMAT_DEFAULT) printf("# Copying %s bytes ...\n\n", size_str); =20 - rt =3D info->do_op(r, p, src, dst); + if (info->do_op(r, p, src, dst, &rt)) + goto out_test_failed; =20 switch (bench_format) { case BENCH_FORMAT_DEFAULT: @@ -194,11 +197,11 @@ static void __bench_mem_function(struct bench_mem_inf= o *info, struct bench_param break; } =20 +out_test_failed: out_free: - free(src); - free(dst); + if (r->fn.fini) r->fn.fini(info, p, &src, &dst); return; -out_alloc_failed: +out_init_failed: printf("# Memory allocation failed - maybe size (%s) is too large?\n", si= ze_str); goto out_free; } @@ -264,8 +267,8 @@ static void memcpy_prefault(memcpy_t fn, size_t size, v= oid *src, void *dst) fn(dst, src, size); } =20 -static union bench_clock do_memcpy(const struct function *r, struct bench_= params *p, - void *src, void *dst) +static int do_memcpy(const struct function *r, struct bench_params *p, + void *src, void *dst, union bench_clock *rt) { union bench_clock start, end; memcpy_t fn =3D r->fn.memcpy; @@ -277,16 +280,47 @@ static union bench_clock do_memcpy(const struct funct= ion *r, struct bench_params fn(dst, src, p->size); clock_get(&end); =20 - return clock_diff(&start, &end); + *rt =3D clock_diff(&start, &end); + + return 0; +} + +static bool mem_alloc(struct bench_mem_info *info, struct bench_params *p, + void **src, void **dst) +{ + bool failed; + + *dst =3D zalloc(p->size); + failed =3D *dst =3D=3D NULL; + + if (info->alloc_src) { + *src =3D zalloc(p->size); + failed =3D failed || *src =3D=3D NULL; + } + + return failed; +} + +static void mem_free(struct bench_mem_info *info __maybe_unused, + struct bench_params *p __maybe_unused, + void **src, void **dst) +{ + free(*dst); + free(*src); + + *dst =3D *src =3D NULL; } =20 struct function memcpy_functions[] =3D { { .name =3D "default", .desc =3D "Default memcpy() provided by glibc", + .fn.init =3D mem_alloc, + .fn.fini =3D mem_free, .fn.memcpy =3D memcpy }, =20 #ifdef HAVE_ARCH_X86_64_SUPPORT -# define MEMCPY_FN(_fn, _name, _desc) {.name =3D _name, .desc =3D _desc, .= fn.memcpy =3D _fn}, +# define MEMCPY_FN(_fn, _init, _fini, _name, _desc) \ + {.name =3D _name, .desc =3D _desc, .fn.memcpy =3D _fn, .fn.init =3D _init= , .fn.fini =3D _fini }, # include "mem-memcpy-x86-64-asm-def.h" # undef MEMCPY_FN #endif @@ -311,8 +345,8 @@ int bench_mem_memcpy(int argc, const char **argv) return bench_mem_common(argc, argv, &info); } =20 -static union bench_clock do_memset(const struct function *r, struct bench_= params *p, - void *src __maybe_unused, void *dst) +static int do_memset(const struct function *r, struct bench_params *p, + void *src __maybe_unused, void *dst, union bench_clock *rt) { union bench_clock start, end; memset_t fn =3D r->fn.memset; @@ -328,7 +362,9 @@ static union bench_clock do_memset(const struct functio= n *r, struct bench_params fn(dst, i, p->size); clock_get(&end); =20 - return clock_diff(&start, &end); + *rt =3D clock_diff(&start, &end); + + return 0; } =20 static const char * const bench_mem_memset_usage[] =3D { @@ -339,10 +375,13 @@ static const char * const bench_mem_memset_usage[] = =3D { static const struct function memset_functions[] =3D { { .name =3D "default", .desc =3D "Default memset() provided by glibc", + .fn.init =3D mem_alloc, + .fn.fini =3D mem_free, .fn.memset =3D memset }, =20 #ifdef HAVE_ARCH_X86_64_SUPPORT -# define MEMSET_FN(_fn, _name, _desc) { .name =3D _name, .desc =3D _desc, = .fn.memset =3D _fn }, +# define MEMSET_FN(_fn, _init, _fini, _name, _desc) \ + {.name =3D _name, .desc =3D _desc, .fn.memset =3D _fn, .fn.init =3D _init= , .fn.fini =3D _fini }, # include "mem-memset-x86-64-asm-def.h" # undef MEMSET_FN #endif diff --git a/tools/perf/bench/mem-memcpy-arch.h b/tools/perf/bench/mem-memc= py-arch.h index 5bcaec5601a8..852e48cfd8fe 100644 --- a/tools/perf/bench/mem-memcpy-arch.h +++ b/tools/perf/bench/mem-memcpy-arch.h @@ -2,7 +2,7 @@ =20 #ifdef HAVE_ARCH_X86_64_SUPPORT =20 -#define MEMCPY_FN(fn, name, desc) \ +#define MEMCPY_FN(fn, init, fini, name, desc) \ void *fn(void *, const void *, size_t); =20 #include "mem-memcpy-x86-64-asm-def.h" diff --git a/tools/perf/bench/mem-memcpy-x86-64-asm-def.h b/tools/perf/benc= h/mem-memcpy-x86-64-asm-def.h index 6188e19d3129..f43038f4448b 100644 --- a/tools/perf/bench/mem-memcpy-x86-64-asm-def.h +++ b/tools/perf/bench/mem-memcpy-x86-64-asm-def.h @@ -1,9 +1,13 @@ /* SPDX-License-Identifier: GPL-2.0 */ =20 MEMCPY_FN(memcpy_orig, + mem_alloc, + mem_free, "x86-64-unrolled", "unrolled memcpy() in arch/x86/lib/memcpy_64.S") =20 MEMCPY_FN(__memcpy, + mem_alloc, + mem_free, "x86-64-movsq", "movsq-based memcpy() in arch/x86/lib/memcpy_64.S") diff --git a/tools/perf/bench/mem-memset-arch.h b/tools/perf/bench/mem-mems= et-arch.h index 53f45482663f..278c5da12d63 100644 --- a/tools/perf/bench/mem-memset-arch.h +++ b/tools/perf/bench/mem-memset-arch.h @@ -2,7 +2,7 @@ =20 #ifdef HAVE_ARCH_X86_64_SUPPORT =20 -#define MEMSET_FN(fn, name, desc) \ +#define MEMSET_FN(fn, init, fini, name, desc) \ void *fn(void *, int, size_t); =20 #include "mem-memset-x86-64-asm-def.h" diff --git a/tools/perf/bench/mem-memset-x86-64-asm-def.h b/tools/perf/benc= h/mem-memset-x86-64-asm-def.h index 247c72fdfb9d..80ad1b7ea770 100644 --- a/tools/perf/bench/mem-memset-x86-64-asm-def.h +++ b/tools/perf/bench/mem-memset-x86-64-asm-def.h @@ -1,9 +1,13 @@ /* SPDX-License-Identifier: GPL-2.0 */ =20 MEMSET_FN(memset_orig, + mem_alloc, + mem_free, "x86-64-unrolled", "unrolled memset() in arch/x86/lib/memset_64.S") =20 MEMSET_FN(__memset, + mem_alloc, + mem_free, "x86-64-stosq", "movsq-based memset() in arch/x86/lib/memset_64.S") --=20 2.43.5 From nobody Tue Dec 16 21:11:18 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B39302550CF for ; Thu, 10 Jul 2025 01:00:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109208; cv=fail; b=LseHmEr31VT9dyeAWRpT2Tqrawk9GGAQQf6+yk0xuxrSuFTgO1fG+sQ0GYct47rKubeBgiuYHQN/f4zeEkWcTVIEt0IG+AO0GbNWVpFQIEpXuK4oT1YcFnPUggqw4Bxols0QKXftxAiBRi7+IJkqNAh9EsvR583kpg0yY5DNapg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109208; c=relaxed/simple; bh=eiBObpu0OyICRV1/hb2bfl8DFGvuu/LO+cfjMOwW2go=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=LJu62ODwMzTl5FY4UGTQEaDlZhNopKqh8lW3AdH46TlE531L8mEzdOfVG9JcYiFv0NG8lOVQEanVsuaLfVV+0/7RQ/gGHZMAjkXKGAwOMSlMhpTiwhxfMTp94OX1yIueT5GA+tu1Ll0hLUNiICtCzeSmqcSDCj4SYTrQfW/AhkA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=aMTrnzJO; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=hvasdBEt; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="aMTrnzJO"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="hvasdBEt" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 569NH0NA010606; Thu, 10 Jul 2025 00:59:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=XJpzPmcLv9ICMmpCagrffm/BX6P4D/XvtKHU5qQVYJg=; b= aMTrnzJOA7+zOMKPgAfWqCrDZOiQ8Lneal5xRt2gurSOcci05CH9uBM+mA2mKIKL HFKyBSmJWsI2f1JUP7uo/eD1j5W5fOeYBbwFjhKdj0sK7C6Eb7FSf8gJ+3Mt+Rst 3R/tdwC7qlnHtEr+Qk6OjkC9j4GKXdpZnGNpW47kBZ/fXlsziu1sIATzPDG36GGg 9l9TXzQpc2800mbwlYdGKQHN2oM6undac29Lu0LTHaqcWuhS691p1zFAWjpljgq8 MhdPqOUXq6oYfSCNIgSrS0Sp9iThZm4GLG5oFPqNRL/kPpl+YkBKqog+8ldAnEOF hNGNF3cOs1jThCOJO6/l/A== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47t1y103dc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:47 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 569MFbRU027404; Thu, 10 Jul 2025 00:59:46 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11on2052.outbound.protection.outlook.com [40.107.220.52]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 47ptgbmryr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hLnFA/RCX0usKkODzf/TcX7MpwhG4aayR54/D6fIW/xQzxbWqbYgfcbo0EPyhyD6TcAsjVuZnytGqrU2hbEaGErWjKdtQM6JKP4s0hp7sCB4U4gBShvHDsmw0eDGcsk5Cbv4YzAsprfegvJ56uXtEQMJow04/3gMYkY5Jcrguj7XF9F14dsUROwmJK9W+KF+Ym7WRpGqbpjdq8J7RVXuBVZewKPgjEdyVFneg1JxWN8Ok3r/VXhwWDcex6O90IfAi+wWnk5TkhTFAXiEwFylsrd45RmiBJj/rhXCoYbCIL+b55vUBfQln0flBmVEoqTc2uIaV+9ikCbqcPetPBuzHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=XJpzPmcLv9ICMmpCagrffm/BX6P4D/XvtKHU5qQVYJg=; b=eg+xf5wSmWSOqS3Go5e5KjnOzx6DC6gQlLPNk37yKjk0DS6OTsT+Jq8uDqfx49tlnsbp2gd2eZayRfPkwTEQwVjJHk2DlUjEDoWNSXYywmu5AS1M9TYmMZ5Gx1cty4hvAwpKmyqU17GnWQCaTqfWEFXfZJTAWrCVVoLH9W1hz3ZE7844Udtse2UbE5lH36b3+goycMPmPDaOBMRT7rhduxHgQpGD+IkTHFSVGqzo0L+Gn4hmEXXmZlY23EhQkVGLhYeylM19D+39mgbd8hIJg6u0iNYLFIMAE8djZcutYGA+X/EgL/7keHaoHCGGmQA6Zr31JtLhlcy4Q5exjel3XA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XJpzPmcLv9ICMmpCagrffm/BX6P4D/XvtKHU5qQVYJg=; b=hvasdBEtTO3R665C0aUOho61V+FwqYfg/SpePlIUBkpOfCUnu+okS9D1mRnF9bVmMhVNMeOdTres0sVzr3VVK9LPUkUwPUcB2UMaFCQri3mPJCziXUPFJ0rlTaKN4HLB1PB259f/JMxsh6G7ifqU5MoQ2c4Awss4N2JbCaqe/jo= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS0PR10MB8078.namprd10.prod.outlook.com (2603:10b6:8:1fd::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8880.21; Thu, 10 Jul 2025 00:59:37 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.8901.028; Thu, 10 Jul 2025 00:59:37 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v5 05/14] perf bench mem: Switch from zalloc() to mmap() Date: Wed, 9 Jul 2025 17:59:17 -0700 Message-Id: <20250710005926.1159009-6-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250710005926.1159009-1-ankur.a.arora@oracle.com> References: <20250710005926.1159009-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4P221CA0005.NAMP221.PROD.OUTLOOK.COM (2603:10b6:303:8b::10) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|DS0PR10MB8078:EE_ X-MS-Office365-Filtering-Correlation-Id: 0862a96d-2b89-4830-583f-08ddbf4d0ab6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?cH8iVyQWPp7LaP++a0NhSyZX/16sB8qBoqbRSiubnZxsabHLl4AKywKSketP?= =?us-ascii?Q?1S9nJbDLRkvUMAV9dLx5c+1M+mXTc5+TFO7i6CTLTqwDj3D5lhy1PQ6NnBco?= =?us-ascii?Q?9oZ/fDV6ljOf0YKLNOnK4f24+3E/3bYdiHO7guZYi0clLTtGQtDh3rvMld7C?= =?us-ascii?Q?udJseNR8PR/b4Y55AkAiu27+rvPKFi/6KU4O6j2aHVH9V8oolLfTMwyGGQKd?= =?us-ascii?Q?14Oye+wbgHxv8hIqYVf2+3S7N+FoteQ6cqpnv9wqLGHO1+kbk23vplFNZWXp?= =?us-ascii?Q?pVDCMZawoua/0f+G2GGs2jd1MwVmIguc6Pm5v2p1KsN7zXo6DqV7vTly4ZfH?= =?us-ascii?Q?VKU8CD/pWCfthiKnc74Lhp/X8eWgxEhxkSLLVslV46GrPAnwDNHqO/nNpbRb?= =?us-ascii?Q?9gbipjg9zIOKkoKW0+JlzTHxBxtA8j1QG1q0vGFm5XzfUXlpFqYAw1aCp2Sl?= =?us-ascii?Q?EqFX7LshDIFCoGUo7m4BTJKjWf3OMmnQph2B7IWA3AcEz8UxdfA+fIfIey98?= =?us-ascii?Q?FZ2ZOyDcqu6ryuFsWiHrD+qNIr5wfotVqG2AP2sZNCyxcgsUq8ZVH2MPonGy?= =?us-ascii?Q?8qkS9fnuvf+pZwWm2tYwSaawqFsaHQvSb4kvKtfuj3AaoLrf9PU6vCmXLHYO?= =?us-ascii?Q?58uifokb+Z2JYWrBQXh9Q8NB999O8oTSfyzwU7/WPBgEhnHeZP2s6JFCUUzl?= =?us-ascii?Q?PsWS0PYUa29q9pxDouxE3I5KWe889DsGDKg9PhnJ5V1oKfLDObei+Wr7oONX?= =?us-ascii?Q?0hdy41szco6C8uV1l4eQfOnVaGmVCZ6H1QayJgj2KX+84lYubdSVaK1oFit7?= =?us-ascii?Q?6XW34JyW4sUvFZlJGebvOVAL/ijwEi3RJLn2vDD4zv0ozc0XEvS+Xp9Bo+b1?= =?us-ascii?Q?SoZ84N/rq0Af3s/Qv82UhP/ipVGENseFtRQJS4d+7xKzZivJQ07Ko2gGmmEl?= =?us-ascii?Q?gNLR8/o/zZHCiD2aoIEkyIFyDHNV12YDmlov2T4a9fVdzGSNWsZcly6BLUUe?= =?us-ascii?Q?UcFtcafmGOI16YsgqwGKBLOWVSQ8BT631P7uvHgEentaiE5hdY8XqNhhWwwW?= =?us-ascii?Q?UMRlL6SGOMbU5E+2/Nx6tXhEBicwNHktMOSqjlkc2t5ezpur3TFh1uAxymdL?= =?us-ascii?Q?4HlnjJNsB1JSmIEYtKcU7xeGleKyVbVFTFcdC7kKfq29sTihYtJ15kPg1z3C?= =?us-ascii?Q?B7XWGvO+B2nZpi1VhQkRkMxSekB5ErM7NbXogDd+5E0Ml+0XxuUITSyKxVYE?= =?us-ascii?Q?hgVNmDBwBMvP2drKLz78fMHmUD/OIG9jAXFzQRsEOzVJhZR50O5PxtyoQV/s?= =?us-ascii?Q?6mVOXYmZTmLX9oTvCsiyPb+XZ3ga81c81kid9Z8ulKzId5ynapkEgb6+LBUs?= =?us-ascii?Q?Tl17WZBpUBOacNrA5T/S82qMPApe4CGbvWwVYYx/eCV//VeTis6aw5Is4GMY?= =?us-ascii?Q?RbpEH+zOfrY=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(1800799024)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?bkebHwJ3ToHR5Bp9quxYcwVUjBBc2xmPfs8vNpAuaqqU1Mqmk/ldzUTHa4Yz?= =?us-ascii?Q?B4ucYBEmnxZAICLix3kN9iqdGzSWckUNMsup7av2ZwHLp8t/WjSIA08CAfSm?= =?us-ascii?Q?sxGu2vaGaGhXPyo+6I/JF4E+02g4AY0c6uipRfwZ687y46mylDimJixWreM8?= =?us-ascii?Q?kuDz6KzvQ1KvVl8w/z/npk4kUZ9y3Nmp5k9IkI/9TK2Z350zYdcd5TmMtrA8?= =?us-ascii?Q?seKVGbaQmhfz9Lp6WdyneQsdpRXja1/S6vlksH7mFH0Ac8XJbTZkDjK2mDzm?= =?us-ascii?Q?HeKgD2mn8yrJDgsWEMuJHv6jHrbIlg/ztgLPbZkHFklVn/Ihbq5o+Wj/Eapt?= =?us-ascii?Q?6AQtS3sjrrNhg1AG7orYws+kojPZfFzBj80yw0+3J5buIHylEO5HV3p6fvnZ?= =?us-ascii?Q?VbLbuhYF9hN16DTcdFHhLKW+5N55/+GlRCd0UWI3A/Wu+KMuivxRqs/7FgUH?= =?us-ascii?Q?vlRm1rrM6zKVLI+AunDl4g5UuYNBAgO6yJHmSEtOlEwvOl1f6HQaRWBO88Rh?= =?us-ascii?Q?9+oFZpKzdmjR2VUgg3UfDsPqw6d+CHhqcKt9o3rl78c1jQtkgcVBoxuN/gaV?= =?us-ascii?Q?8o8u1mS6sjuy2AlO42IbGNlmXoPF1gNz5Acd3YfGvjpnp+owpmBpiVkX1lHC?= =?us-ascii?Q?vhnUgGPeNHdaaKY6RRwpyZ0fqiK5P3h8dV6u0BzWf/8FxoSphjvz6fpobW7V?= =?us-ascii?Q?jPzhrzv2n1nv4DbK7ishc4DCt6jI2Nm4JUyVti2oH/x0lhuqJHAOJLJp9O3U?= =?us-ascii?Q?96/Y/dklwVgVpXGD1nb8QjJW+gJbs4sxwVEWTET8pqpC3NIa64uhZAUoimZY?= =?us-ascii?Q?fgRdGFtQqeHvSGaZCJOyFU+Q8eMV+EpU8KlX2Dt4pOJIdUWIfMy78TMTucr5?= =?us-ascii?Q?XCX+Xx14qDrTPY6Nsev8FD2SGwxNfH+1XwgmkGO9XCa78bfmQfdJaNR6PJs5?= =?us-ascii?Q?f9G6ou2VXpZICrrIV6hVYpYy8oXH48cMvGgnoaJbW4DBJFddu/c8GmbZOXgT?= =?us-ascii?Q?lSVMJDzafWqyCpjc4RF2KIY7J6F2Yrt1PTZOTJf9gRrxZ6MK4e8dCOvm5KqP?= =?us-ascii?Q?pf/liYWameJgs0q4u7iwV7oG2zHS6d1M+V5ghiJ7TTSLKU0F1NMndxHwKzfy?= =?us-ascii?Q?jeQAnRY6u37m9CRMboo+qBwZwD5CXadQ2byBLxIOzky+yo2yXgpgsMnvwGO5?= =?us-ascii?Q?Rh3h/IN5TKarH0euy7d7daGU91JRRw8Xs9ei9Ccy4BxM2C/sEV68/cgSEhTQ?= =?us-ascii?Q?QanpwIR8Z4M3nk0Hdbr5A6eZbgzVJ1xkV+RP1QOZ40jnzVSmFf3xUtFXawfR?= =?us-ascii?Q?9BCbRCdYSffcTMNhgIbtIeBKDOzkIxr8/u5E8wv3KJwawkYJeZfCA2OoQGv7?= =?us-ascii?Q?F0uMdGPEUIdy/BMlfCX/XlzeckZl/36JRVVENGnOQV7NulvOutrendysU7GC?= =?us-ascii?Q?AJfPl0DV8a3zrG78uMB44+/zQ0Aa+jivcUH0dy3SWuhra0ECIcv045drnvA6?= =?us-ascii?Q?+yI0o3p0TWmzLa2XPxUVQyOrMQ/FrxooAJZ4CLLMLgHNdmZNUTiqcdjZdwg+?= =?us-ascii?Q?Vd5zVW+dZoKKC/rwNbcuMA+hMjDP+76rclbD6WFoFbhzBsLKsz8uQ27gAOcX?= =?us-ascii?Q?jg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ISkVHoQ6b43/5G3l9RTEGwyfsLqnThIN3VPBDq6NC5FLQAdzcAFYt7QlXCHnqyYGPa+0lbPIZZMMvRWLW5jJ/lBgmu5X6zhIcq2J2wL+iu3lA+As5BhWG2FZWnvMO8j9B1E4SNQBQ7JbW0m+q1jHYPaEEPg80JPngjn/ZtWCKvRfwRKnel5ReyOxbEpkKEww87omZIU0pN0VXAVFF8quzuQKEqQnTcdWA3VS/OSG9N/pvMSjdzeSiVyflBwnlm6dsRDkMYaignguFrkTfeqzc1KwEC+XBSjeW6wAV7LnQSvZMnr5xTF3xCjunmmX31DXwPFKhNMMcJBBL+BBHoZlPHqAtxvJ+d7N1xKQWwugA19chGIsuGzdOmJ/nVhiLxGNsM/S0o3OjY/+tOY1i3ycTMeq5yjp/WUWByd9fCOz2CjXLXiXtTOsKEcLO6oNXlCtrGCxZ9Bkd6MiwWEVYIPHK1eJJCsThwdGdUVy4ryp7hAhIh+6vTjZX1+nNy+mnKSfSe2slLdjukcE/uAd5jZmPJ6NTcsgTHqUTwhIZNixiSpUARPDEV3rbfYSxPsQIgP6xWx/vmo4K7qn2FuVsm0IlhhQ9y568vkwB4BJcRhrhO0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0862a96d-2b89-4830-583f-08ddbf4d0ab6 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2025 00:59:37.0782 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 014fDl8bmE453u+/MaafHkH+rPi1vKmvEcKlLjcekKPlU14rs1AhONmXj01d6T1Y7rnnb5yf0MjoWCjsL7bG8Pp/ppCiFyxOxw0NC4YB3O0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB8078 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-09_05,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 adultscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2507100006 X-Proofpoint-ORIG-GUID: N7FhP7ZoqOamyXpOhfbMSY4Bdyw8T8s4 X-Authority-Analysis: v=2.4 cv=UqtjN/wB c=1 sm=1 tr=0 ts=686f1083 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=Wb1JkmetP80A:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=cBhH-oFK0cR11e0Nsv0A:9 cc=ntf awl=host:12057 X-Proofpoint-GUID: N7FhP7ZoqOamyXpOhfbMSY4Bdyw8T8s4 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzEwMDAwNiBTYWx0ZWRfX2EG58uiRru2Y Q3dTOtsGUOIc6ta3IJn8OIR9B5s37HJCZPlrM9fSp/w9TrzJ5JhnXTqjNBv1HtsVAe9SpSEn3tO oJsY1lZ1XKX31RVOmtou81NXqbSQiMtfg1Kl2N25WxR8khQQnu4eNU3+90w9T5eDJa+17BtnDdi qPmbQdwPBY+GiFkNDO0YYLLWz4spCQAGqQRjEvqUinuAqTNqTfBJEcgSnjwMCexUxgxJcTu3n/O onNfp1gl6fXjqROgmld9U6jA5EU2mCVQLN6voWddB9/cIo6N+ZnrsQWjUnKfcGAkh+kYyAjorx4 sYAG2Ol86w4rvcC4w6foprJ1BriVcLKX+VNJ6eO2x7Yta6j+v42LdflnJkVBbDl4XE/4SqdzY3r wGo5tPO6Y8Ai5x5f7qqI1s/MVx7htRr2rojerPf98HnoDWTatUwRBemlHYTYcsXC1xcpbQrl Content-Type: text/plain; charset="utf-8" Using mmap() ensures that the buffer is always aligned at a fixed boundary. Switch to that to remove one source of variability. Since we always want to read/write from the the allocated buffers map with pagetables pre-populated. Signed-off-by: Ankur Arora Reviewed-by: Namhyung Kim --- tools/perf/bench/mem-functions.c | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/tools/perf/bench/mem-functions.c b/tools/perf/bench/mem-functi= ons.c index 06d3ee6f5d69..914f9048d982 100644 --- a/tools/perf/bench/mem-functions.c +++ b/tools/perf/bench/mem-functions.c @@ -22,9 +22,9 @@ #include #include #include +#include #include #include -#include =20 #define K 1024 =20 @@ -285,16 +285,33 @@ static int do_memcpy(const struct function *r, struct= bench_params *p, return 0; } =20 +static void *bench_mmap(size_t size, bool populate) +{ + void *p; + int extra =3D populate ? MAP_POPULATE : 0; + + p =3D mmap(NULL, size, PROT_READ|PROT_WRITE, + extra | MAP_PRIVATE | MAP_ANONYMOUS, 0, 0); + + return p =3D=3D MAP_FAILED ? NULL : p; +} + +static void bench_munmap(void *p, size_t size) +{ + if (p) + munmap(p, size); +} + static bool mem_alloc(struct bench_mem_info *info, struct bench_params *p, void **src, void **dst) { bool failed; =20 - *dst =3D zalloc(p->size); + *dst =3D bench_mmap(p->size, true); failed =3D *dst =3D=3D NULL; =20 if (info->alloc_src) { - *src =3D zalloc(p->size); + *src =3D bench_mmap(p->size, true); failed =3D failed || *src =3D=3D NULL; } =20 @@ -305,8 +322,8 @@ static void mem_free(struct bench_mem_info *info __mayb= e_unused, struct bench_params *p __maybe_unused, void **src, void **dst) { - free(*dst); - free(*src); + bench_munmap(*dst, p->size); + bench_munmap(*src, p->size); =20 *dst =3D *src =3D NULL; } --=20 2.43.5 From nobody Tue Dec 16 21:11:18 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 513C0257435 for ; Thu, 10 Jul 2025 01:00:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109208; cv=fail; b=gIEwJQKHngGdLzT2C2zyudHjecl26lQkeW6OdSkxipTl9wBSTqjzUbwFMTgsfpeqO3W8YK0kW/R9zYyHLJ1E5q7wOLKxjvnxZmbA9G2+mAH/IkRIpzrYq947e/SgpK8YuMClRUesI+k4+73uKi28D0q2UbpKGLZqAS8IFkZY0Xc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109208; c=relaxed/simple; bh=rVqx1ljWkOytDo/ElfBQTPoBvtfmmNSrT3qcmH3E34M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Qg6VA7K0TZnBJr6zW4hr9UPPqa0kdgBY6bpi+exVi5UsPfZbA+gF6sloWS7v4AW3KLilNjs073+EoxLCbpKbBrtP+XQlIs6H0ZmylKHyN0rC7877E+/KBSikitCscuYJNAAXyxVW1XDI8cObGciGDYlET0zxy50vIvx5gUjWjmw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=YeHk1gDO; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=KIt/jMBh; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="YeHk1gDO"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="KIt/jMBh" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56A0HDqA019555; Thu, 10 Jul 2025 00:59:48 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=AWAL5HG/GXS5rVfjXNV6TqFibtg8TeODN/c1FR7vCWU=; b= YeHk1gDOiiY1IZqH1sX99Uam2lGrIbx+QvT9QtSpvwnVLMk+vFqnaLHuUh38EAvH qwHuwVrVnGPTBieitTqV8RgngyyEaEjbCsPaBF9UzbB3vlJyw4ShRGKMs5APHTMz LFfw0pujsnM+3Db5OAGvrNiyFRxuJ+7DFRoUeH7H64Y7vSglR1+X4V4oXBkf7jId Z2LO+xZUFDquOJy4DmtiPjUmQZqbJskyG24dq3JMWzjnGI8uI8O/irT9+OK2Vy0E JDQQsCTrrlix84d9AAhUn/dI4OHqjFLUHI4C/7sbJlu9SIxQgJVQWDomRrDEmAnp bolnB8jOi5TUBE7pa8tIww== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47t2u581nh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:48 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 569MFbRV027404; Thu, 10 Jul 2025 00:59:47 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11on2052.outbound.protection.outlook.com [40.107.220.52]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 47ptgbmryr-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hAefJ/ALT223gZLub4D+k+/K9s91eb/lrAWqVgGTnDJOOBAC4nIn+1AL3pSZRwFPC2RQqSoP4Hb0x+X6dSzZx5LCjC/PQ7VEH/kjHJcMGdHKUltWGy38a1lTmDnsG49Yo4EvCPNcWqDGVJxoTUuiv2dgL2+SHnz6Cbld7KuDubsuSIGkL87l3/OeAfgfCnXjxEsehcwLDEGKmJ/kP2QvLUY689p4jFQL/KmoVFIk43LgAXgS48JQFgVGi1QYMN18RCVW8XUs3w5ss+b0IuhiyTbgos/9haq5S/9cttRcbjh9pSVt8z3B9rcZHvKL+YK8mrRaNCpRAmvBKbhssQ3IsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=AWAL5HG/GXS5rVfjXNV6TqFibtg8TeODN/c1FR7vCWU=; b=pVmaDT0gefp9a7Ej0vubq9+jWYBOILYhyZYIYnnaFSs11kOKCMriH8Z+btkknNGNHoQZWG5PB3OhchbPTEIiWCnHVRA0Ivy0aDKHi1G78NTV9kdPlX785qAm0rr7EHctunfj4ACL76ULWxPyhrymzHZMgdL/5v9ssrPordvrPB7ith5lTNbN/nL85YdgQuMcFnMHPa1pE87wqlUdpGZ9qP8UoC/sn4z/kXUiji4mdX8A7N9E7Y1y97BrlXP9MirPZKXbAeQi7E5VUowTZMcePuXwVvFm7WNA+EFOB4ZGDNJDm8rlL11559Ox5B656LllQQmPZQX0EVV9TjCbXBV+VA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AWAL5HG/GXS5rVfjXNV6TqFibtg8TeODN/c1FR7vCWU=; b=KIt/jMBhM9sUQRUKZxzEF202xqkTJnpIHWC5dURjTRQCZy3PPN7L8+9viv8yjUQiDqOmM0fS7vwwlRZa7tCpik5XOudLp46tGACoyIpfrxupJwri/ZVcyi2qbpEoyb/pjgC0fDX+WZwvcl7xVlxuFj2DAfa3vuFt4V+jKcQBn30= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS0PR10MB8078.namprd10.prod.outlook.com (2603:10b6:8:1fd::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8880.21; Thu, 10 Jul 2025 00:59:42 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.8901.028; Thu, 10 Jul 2025 00:59:42 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v5 06/14] perf bench mem: Allow mapping of hugepages Date: Wed, 9 Jul 2025 17:59:18 -0700 Message-Id: <20250710005926.1159009-7-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250710005926.1159009-1-ankur.a.arora@oracle.com> References: <20250710005926.1159009-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4P221CA0007.NAMP221.PROD.OUTLOOK.COM (2603:10b6:303:8b::12) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|DS0PR10MB8078:EE_ X-MS-Office365-Filtering-Correlation-Id: b44dd9a8-b4b0-4fd1-37b5-08ddbf4d0d4e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?rDEayV5Su5WZKZjcgVuutwPTSpV0vN8zxDjuKxlgYJtC1wz2oZSLB5E8Yz1n?= =?us-ascii?Q?PtAODzUYooZZxJb8piZ1MWI0ynFwduFgYlZhXp6P3E0slt3CqwZ7BudWlPX1?= =?us-ascii?Q?akb+KCxcy9dPEgtbd3tKtgXxko6JO5QRIDc174nqSdcmAa5Wpj2Jw00MEeLW?= =?us-ascii?Q?ka5QglRfQvItdfmCsJ3IeKAHd+Hq0uv4mmlkEcuKsgJQ6efIbWHNkqnx+dMa?= =?us-ascii?Q?X7h0HZuV+7Cs9Kq0KzeM8fB+uPrcLnL4DI+sTXLYn7Ajzw1LG+UG+M89IQMD?= =?us-ascii?Q?q1b8YfKWqXY4IgUimZjyT5Vv5lh4bU6h0HBx1Qc+f0VXdvDdqil/SG6hprq7?= =?us-ascii?Q?z65vSvkPUVLwJfF4N4QrqkNBh1abcJ5r7pPqXv1X2uPI95EvGdUS0oTfcoE/?= =?us-ascii?Q?pj0mpURC4QQ6zL2Voj6OPfBvxBKM1KxS9O15+Fbtnxdk29i9uwUtch8TcksI?= =?us-ascii?Q?b8GPEj4OFpmyMnK1lpyh0EXRpGYzIIRF0U0ymXDWKW8bZWUQ0bpbL9PdGh3x?= =?us-ascii?Q?3Y+cE04jh0G/0+ePFGmyQak1KUMz/q+VWEeNctyJw/T6NtO6DUnwAnJgrqPb?= =?us-ascii?Q?PLGRX87lGIhRyDxMatunoWhRWFFXtcn8U3au2nb9ikkYG3PZLVJifgOkA81W?= =?us-ascii?Q?Jn5ha0fLn40xBL6D1uH5BXfoPPtV80GfZldNrTtdj+hE9kY/pxQQ/0iuHPhx?= =?us-ascii?Q?S55AxUIGy9zRVMk5UNrZuBPEPOe/8h8uL2x/S4iemx3LyGg9nGUymlURS21o?= =?us-ascii?Q?bBA/NsKxZeZK8qaN2p9Y1iW8GdWbAwJjaQZOuFgFXxAEaLt3P+Y6Y3oUr7i6?= =?us-ascii?Q?9UmtZQQp7S7I05CQDRPATg1eROdv60cInxtw2nTCulZ2We0AuP8UJUXabPjn?= =?us-ascii?Q?TJxi956UooLDohjIYUq81cVtOK9F0qrA67Fh1dOByQmAOnpZoN6fZL/nPA/I?= =?us-ascii?Q?mYySV7f4I+gUdDvN7UNJXFUsZJT14SBEqCHf6NI1yveb2QxgVrp63ZQZTh0R?= =?us-ascii?Q?vDJu/2NJnaitn0L5n7m5iVBkPU/PevDGBy4TQMM9uczli6kCTWe/ILIaGxFc?= =?us-ascii?Q?qf8RR3zT5IRCG63PTcxnd2Yc3NI+XMybfJlef5dre30tFST+lcaWHesj19fK?= =?us-ascii?Q?hdfjqKIiiGIbljmR+eo5U2yUJ3fdPYK+BQ2Pfb9NV9ynJv/FKuHydrjGR7Dc?= =?us-ascii?Q?U9eZewNwwqhWm7vlW0yarvp9rPfW7DwbiMYWOSdJHy4ga0gAdnjtJqyLF4tR?= =?us-ascii?Q?5gYzi1+yHJrWJ1/UJ8KFQndb3BopknaJhUUW54K155nhSojZniLWsn89+YQm?= =?us-ascii?Q?O3Jx1FfvPQHXS5XHN0Ut59/9sL19QMmwbClTb5z7QNZSdjTGfUmvQlYgSFap?= =?us-ascii?Q?Lcg8hUWROVcO45R0W/EgGJ+Sd1OMKtA03ao+ccuMOiQS+XVLJWfZ23eHk0Q+?= =?us-ascii?Q?oub90Z52RTQ=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(1800799024)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?SuRUdRQ7YETKBEExOogkmfOOU+NXhHR+DVJGp34H3aXPov/1LXai77fmNkdv?= =?us-ascii?Q?rUGhxCAwYyb4Iai6bo/X+kZpqru2lM0GhxA21AWx0k0LA4fC5CHMacP9r1i6?= =?us-ascii?Q?YvKfY3CmUUwEi18LsggIcydQFKAmn77XtcA127ln0lJ5hmEUABWHFrgmlQ+S?= =?us-ascii?Q?1e/qXG78Fvu30HAyTY/qZVV5d3deNwJbVfdv/Brw6yEg7Kb0hWiXXwf2L6Ak?= =?us-ascii?Q?FACncWALVnMUrWbH/9QdWdUVx0kSGAnyBPH8HQ6l2cZ0+FZmyKQ6sNA8ZQpi?= =?us-ascii?Q?P/j4pykw/saIagbjY2jqL4Hr4/m2A8EStdBfQRVio7RPIyRDwL++pDQ/rNlf?= =?us-ascii?Q?LkOwB1EQeq701q62C0P0Vi9NWYmWZbDskR70XGI52vrz8O0wFGgKjFlcb1Pu?= =?us-ascii?Q?S4pcm9mUvAZTgiDKvZj+CuVDj/gro9yYzJDqxis4xbPtcMqOM3QiHjPu5H2Y?= =?us-ascii?Q?lDhaxt/KXxd8Nvav2WNanq2xBR0dX/5dqKtVl9jNsmUNs3mQQgffHD1F8FUa?= =?us-ascii?Q?I4B6RiYpmYhgG7X+Dgvxr/ZZMH02b0drzMvKnyhvowg5fVmC3HOxjxBTQP+S?= =?us-ascii?Q?rz8cD0frOJNIi2s8UoJgAgCa4HyOSpNbf/SyH2yUUOGp39SKE+yM1VCOVc+i?= =?us-ascii?Q?LclX6PzoPvaXu7FIFc+TYFRq5fxB7xaACbRhVkksAv0s/jVz3SLJqrk6taVd?= =?us-ascii?Q?+cZBE5Vy2KW7tiIEa2j4rFxPQz3+VRm4lr4LOHBOvsw1LxzIxnvnBKkMNo6j?= =?us-ascii?Q?Qinkeg5uVJhbR6TY3HeIBRySW3VipQV9Nw6jKtA8KI9RRXsCydVZRi3iKDuK?= =?us-ascii?Q?f3i2cMqk3+y8Vm6R4wekaU2ExreQfNQEt2f3swJnkBizJNTOXcgDMgRplYXl?= =?us-ascii?Q?vlrmPm+Lqk17GTa3RDgqUpnjLFXn1WPykmP5tUoDTIABhsDAYD9odUIB0MXS?= =?us-ascii?Q?4EZWh1KReoOItZbamxp7Bpn1tG6HRqyVGsXMjqYyyUipYdy6L6f3Jc3EzsO7?= =?us-ascii?Q?CnKy/LG+APZqrLF5YxvybHK2JCVmUjI9jHA2ld3feRve9fAgsCyaiqDVQsYQ?= =?us-ascii?Q?3IsYe9LDCnlcPWvUBI6AIB2GAL7AJOGYcZHptP0d/RxYrZPU9JL2YGYUTc6y?= =?us-ascii?Q?8reChh1Kytr1z7l3kcaH03jLYnttqTK4ad4LEeBH4QIy3alarQOlXEvr34+o?= =?us-ascii?Q?IsSZMDOwaVZFRa5CIT6lmW/WJWDcIDByW4EmbSiQKnEurHyrndaePuVrndHk?= =?us-ascii?Q?0/Jr0MYZQeGux1XIKmGe1AEu43S22Ey05Tdw+g3N8B8/gxkEf2EXvSSpvI77?= =?us-ascii?Q?VZnjEf2B09ykFapXGqfBx9C1iNyqMrfvQyirAlF3jP5MbArPhjA6ZZ1S7YKj?= =?us-ascii?Q?F7b+KajZCyPFp2Rgel/olIPDpctnIPLy5ZoVha5nzI3bPcts0q2aLJU1E9ud?= =?us-ascii?Q?QCobmFeRayf0/42oqYZMNE2zG4mFEgFxMlUPPkFGoyOtVyujjyZ0uMnuTAUx?= =?us-ascii?Q?A/LCYgHI7SUZeA68DxFFDDkfm/Y+mqgdvLhDHGfcwpXi6rUTQKReyJR6iMV/?= =?us-ascii?Q?wmLcYpoDpRXmf/Z/wMIVU/tmTI4/MRo2wphLk68kaBpMoixrTKO5THRj01Ty?= =?us-ascii?Q?zw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: JXz+L9igwPEfELIDhkYkMgjw/KF0/lQFKArqFMtFJaUgApOO/0iT1R1JRqoHs9S2psDqy24Q4B4GM3eXMtYQiO1/MnZnfavKCcf3SDElgak3zf4y/fViwH8RLZ+eZka0mFeRDoZgiSMDa030TABzIKdZizYe9ULHFuAKUCof5WC8c1StK0bF6RZpehQBS/eRvt2i37ygutjfyqUa2h2N7oc4FgY468pg4kUVhERqmrtEQV1MN8vJFNm9jpm0nau5FOpLnzpmvkRIaIvAUEs1sFt+ZhdFaU/YpDextz6DP0dZpY4osRMizEXut0EMJZj6l6wFKamA/wJIgZUFzBj96uolcQk09uW7i0hPw5PLf9zpiZZx6lzS4um4B/ZWCXVgrQ2GyNgSgWT5CbX5x7rCzday4efZbLbbhyHZVrtN+z3zUT2mK/YfvFbOrJ8btqKlicOHsxjstmOPVoS2LbJrEICUSbEE/zR3w5XnkwpB+5JIU3zbeHDHNEsT1Fla4oPlngaqP3Vqs9CYMe0Nw/V5rDi7lCqLTyOT1I0bROX0e3C4m98hHUXXjUIyD51vB4diAQ2FoGGkCAtWcUL25lXItdE/+cg1wlWnE+dPZLmVwDs= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b44dd9a8-b4b0-4fd1-37b5-08ddbf4d0d4e X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2025 00:59:42.0249 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LEZsBwdyWEwokR/awqWE2Bb7YM8Fv63fRcc5o98D9wdpIlJz3LynlV+xjRnJxlQrbKVChEiiaTvveXruC0JXV2tIdW3zAfgFVmnBO03fmNo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB8078 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-09_05,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 adultscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2507100006 X-Proofpoint-GUID: m2bDougtTXcVvZffcnCiqS-XRsQ7XLTN X-Proofpoint-ORIG-GUID: m2bDougtTXcVvZffcnCiqS-XRsQ7XLTN X-Authority-Analysis: v=2.4 cv=Av3u3P9P c=1 sm=1 tr=0 ts=686f1084 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=Wb1JkmetP80A:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=2txnUkrh-zOa5si45iAA:9 cc=ntf awl=host:12057 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzEwMDAwNiBTYWx0ZWRfXzYG/ZHW8pFgu ihSwLPpY/4VJ4Ql2mwAMFV4V9yrAGVhSN8HcEvUm95Cqw3q2Z42D1Yg52XDkBmXimeeRndfTd8k CJwZrhryA0Xmyvm8em3EfsTR5+LlTYao8Edtx19DyICttaj6IG5XDrY0Hu94e1tI8vsa9UPvmnG wqAhqouCru28unxT1YfdUii2cTe7RB9uaDtLzS57g4OhsASL6wjjNKcNum105gx9OvWqRZlz0u/ mZ3kICARMiFfREejbHESu8oLRk5nCXDTfgoA+ZgRR632BA57ZYE1/kL7vEc93inInn2CKXA0/02 LYrOfwSNiGfN1KFL+LEGdJdC4+w1aHkY3cZ+dqE06nn3HAQPBkcuXYl5bg9UAFArcENaKewRudR o2MQEjJXRJbwdW0sBdQSABaKr4vgYlDKybM5sMB858zPcchbodSQtnk+qWFMi4VyXOG2nQY9 Content-Type: text/plain; charset="utf-8" Page sizes that can be selected: 4KB, 2MB, 1GB. Both the reservation and node from which hugepages are allocated from are expected to be addressed by the user. Signed-off-by: Ankur Arora --- tools/perf/bench/mem-functions.c | 33 ++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/tools/perf/bench/mem-functions.c b/tools/perf/bench/mem-functi= ons.c index 914f9048d982..e4d713587d45 100644 --- a/tools/perf/bench/mem-functions.c +++ b/tools/perf/bench/mem-functions.c @@ -25,11 +25,17 @@ #include #include #include +#include =20 #define K 1024 =20 +#define PAGE_SHIFT_4KB 12 +#define PAGE_SHIFT_2MB 21 +#define PAGE_SHIFT_1GB 30 + static const char *size_str =3D "1MB"; static const char *function_str =3D "all"; +static const char *page_size_str =3D "4KB"; static unsigned int nr_loops =3D 1; static bool use_cycles; static int cycles_fd; @@ -39,6 +45,10 @@ static const struct option options[] =3D { "Specify the size of the memory buffers. " "Available units: B, KB, MB, GB and TB (case insensitive)"), =20 + OPT_STRING('p', "page", &page_size_str, "4KB", + "Specify page-size for mapping memory buffers. " + "Available sizes: 4KB, 2MB, 1GB (case insensitive)"), + OPT_STRING('f', "function", &function_str, "all", "Specify the function to run, \"all\" runs all available functions, = \"help\" lists them"), =20 @@ -60,6 +70,7 @@ struct bench_params { size_t size; size_t size_total; unsigned int nr_loops; + unsigned int page_shift; }; =20 struct bench_mem_info { @@ -202,7 +213,8 @@ static void __bench_mem_function(struct bench_mem_info = *info, struct bench_param if (r->fn.fini) r->fn.fini(info, p, &src, &dst); return; out_init_failed: - printf("# Memory allocation failed - maybe size (%s) is too large?\n", si= ze_str); + printf("# Memory allocation failed - maybe size (%s) %s?\n", size_str, + p->page_shift !=3D PAGE_SHIFT_4KB ? "has insufficient hugepages" : "is = too large"); goto out_free; } =20 @@ -210,6 +222,7 @@ static int bench_mem_common(int argc, const char **argv= , struct bench_mem_info * { int i; struct bench_params p =3D { 0 }; + unsigned int page_size; =20 argc =3D parse_options(argc, argv, options, info->usage, 0); =20 @@ -229,6 +242,15 @@ static int bench_mem_common(int argc, const char **arg= v, struct bench_mem_info * } p.size_total =3D (size_t)p.size * p.nr_loops; =20 + page_size =3D (unsigned int)perf_atoll((char *)page_size_str); + if (page_size !=3D (1 << PAGE_SHIFT_4KB) && + page_size !=3D (1 << PAGE_SHIFT_2MB) && + page_size !=3D (1 << PAGE_SHIFT_1GB)) { + fprintf(stderr, "Invalid page-size:%s\n", page_size_str); + return 1; + } + p.page_shift =3D ilog2(page_size); + if (!strncmp(function_str, "all", 3)) { for (i =3D 0; info->functions[i].name; i++) __bench_mem_function(info, &p, i); @@ -285,11 +307,14 @@ static int do_memcpy(const struct function *r, struct= bench_params *p, return 0; } =20 -static void *bench_mmap(size_t size, bool populate) +static void *bench_mmap(size_t size, bool populate, unsigned int page_shif= t) { void *p; int extra =3D populate ? MAP_POPULATE : 0; =20 + if (page_shift !=3D PAGE_SHIFT_4KB) + extra |=3D MAP_HUGETLB | (page_shift << MAP_HUGE_SHIFT); + p =3D mmap(NULL, size, PROT_READ|PROT_WRITE, extra | MAP_PRIVATE | MAP_ANONYMOUS, 0, 0); =20 @@ -307,11 +332,11 @@ static bool mem_alloc(struct bench_mem_info *info, st= ruct bench_params *p, { bool failed; =20 - *dst =3D bench_mmap(p->size, true); + *dst =3D bench_mmap(p->size, true, p->page_shift); failed =3D *dst =3D=3D NULL; =20 if (info->alloc_src) { - *src =3D bench_mmap(p->size, true); + *src =3D bench_mmap(p->size, true, p->page_shift); failed =3D failed || *src =3D=3D NULL; } =20 --=20 2.43.5 From nobody Tue Dec 16 21:11:18 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0F96E264FA6 for ; Thu, 10 Jul 2025 01:00:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109215; cv=fail; b=CPWST4yXkkgXikTFy2a5kguO9vU0JkIhTOvFwfBthc93vj5TuyjtAyC6HeiFLQ2WNc0POOCvBtG4F8Lvo14Rmi4ZbEKxphIcPEGBa7tc0aeddWX1z5RVtCXFus1WCXmxpItpdFZxQ1VyxPi5kW1tkcXX6xsFxwv5nWy3lWESGjI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109215; c=relaxed/simple; bh=KS4uJJf9FImof+9KQywDkzd0+xDApmQD8ZFstVTZBN8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=gfymg1I4XsqM0szHVkEeYBKTBRKmV14j4/gUxrZ0+RAs4pJ7yPSmT3jZ0M8wJRMAUuEy0yp+Y7xYq4Kxxfskk2LZjsce+d6zm4/kCzZ3BMSCWtqZ1ONP9vlpsjOceVnMVXU2LN2Q4lTXVPuWpk9qbnmd5hC2IaJFl+DXuBmrl78= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=QoyDsjO0; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=jMnrEhXy; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="QoyDsjO0"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="jMnrEhXy" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56A0H0dT019129; Thu, 10 Jul 2025 00:59:49 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=SFzL0eMlDagqG8aPGteUXR9QroP1knBNBUpBZxjCP9U=; b= QoyDsjO0W6vLyiarW6ONnjzAX/IR5YIxNgQkb5OEwx/WQK6BhhcYS79dOk2hynNp S79dnKgUgrWkJTnNE3RZ4zAeAyh8uDTu9HOD4IU7Ef6yt5meyvQaSJnPv4DLqqKU JQmIpfwVHebfqu7EQFj3qcLyptkwW4475SEsO3tHn6WzEur0qG9dXt4/Sz2zqFMH FtNFkq9XRKYpxvkH9trqcO1w1jymp1zW+SPlHtxoTG+adaN3YKhqo70BYy1wg4vq Xh15slvmPuIXRqVK5/G4c9MAHw5AFGgU6j28TvSRwu1k+Iff32qF9kRqXbBT0idt Tp8AtDOcBqxIsRHCAX7nBg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47t2u581nk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:49 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 569MFbRW027404; Thu, 10 Jul 2025 00:59:48 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11on2052.outbound.protection.outlook.com [40.107.220.52]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 47ptgbmryr-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LDQF/u1ID9hVtnqpanwUAKig+3kNHkPmXXkibZ4ZTZjVeiEiB/gwI5Afpac31tWIG6ngFgz7ikB3MP17Y1J7A8PZDuOI1AiKNNiiTm6x20w+YbBeyfHx4DZqJkbFbwA7EyueB31ieKLIHTOcIpE8t+LBLNmHD9efREjsEGjeKR2FsOnnuXa4DwfUeKWTuT+YF7PNnV8mv0GwFIwR3zGUHZ7SXnNq3J0cuwpUE0/eDy1MSzjxRrJBPcvtHofDLKACNl6puezhs7f98IRZwy3aIxNsgdrnnS+6sLX/33gs5i8O7qROtmOtqBqsCNtzxFcOW4MzbuqGzVAO42VA9QCaPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=SFzL0eMlDagqG8aPGteUXR9QroP1knBNBUpBZxjCP9U=; b=I4GPNST/4euXRiaOV9ohI0wf9RwNsXaLGnfcPaPRqVwAKURVQkO5yK2O/zh4JWecjArVaw0x3HTcol/8qpHs57NT2H4NLKx/aaBt2juMrhUDAx+6LQQh3ynT+HLPLHSTQy5F70ZdNTd2Hr0nnKnNv5x3jX3g5OXuMV5sLpc7/kUNcu8qYHDfnawrkD2swj4gA32jHdShvt/qvgQKNzemkR/pr0DEVfpqtowu/HJx+ZY/DUOm0peUkO4pYPP+Jmjn6F3Iswzag4khuq3jhU8uIszE0EZY5UhiJQO64U67uJEwiqnejP+SvphORYc/9Tw8R0hm59jI99/Lbqicdmm/kw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SFzL0eMlDagqG8aPGteUXR9QroP1knBNBUpBZxjCP9U=; b=jMnrEhXyWVfZERxes6sJ+slK/T5BcgfDK1vYiCv15oWC/n5d1gsvTG5cnbl4ACYiYV+Saohkc8Xr8JK2xik8UME32bKUhWj3Gt8lXIVzuYKQNqU5VqphPQR1dHsEu7tQJdcRxv73inf/ATkFwrC1BMDioS2WjCs6JiteCTP3+ho= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS0PR10MB8078.namprd10.prod.outlook.com (2603:10b6:8:1fd::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8880.21; Thu, 10 Jul 2025 00:59:43 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.8901.028; Thu, 10 Jul 2025 00:59:43 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v5 07/14] perf bench mem: Allow chunking on a memory region Date: Wed, 9 Jul 2025 17:59:19 -0700 Message-Id: <20250710005926.1159009-8-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250710005926.1159009-1-ankur.a.arora@oracle.com> References: <20250710005926.1159009-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0282.namprd03.prod.outlook.com (2603:10b6:303:b5::17) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|DS0PR10MB8078:EE_ X-MS-Office365-Filtering-Correlation-Id: 6e06966a-0dcf-406e-3985-08ddbf4d0e91 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?K61Jr5i0JWiGou82mebt07oApF0AMWftys81f3T99V8Y3ExfMINRV9PnHdHC?= =?us-ascii?Q?wk/aohSL/yogBkxq4J7T7/MHX3OiFgP2nEhymByW2HUnlQxbq3de/sZnVHrF?= =?us-ascii?Q?9OjFdw7se2LhymzKSZ8RepM3bFnQe1ml/S1ppivvGGQRRXnVDPuh+apQMcBw?= =?us-ascii?Q?XcBbqeiFWS1HNXh74y7kyAHG4sSU9nlGMRurbs2dMoW69YxYRjqvdueCVY3Z?= =?us-ascii?Q?IiH72/C3Nci0imgcKzYuNuyTAs3pM591GV0bQ1cAL4s5yoSphXNr7ATV/Wnj?= =?us-ascii?Q?kQMK1N3MNc3R8is3+yw8cyCK7+v/ZHh3p8Xgpw25vb/seW6JVN3jC39D/I7T?= =?us-ascii?Q?prn80z2uGDgK5bRvBJnwRdCbnmtCX2TCCHP1n9GeDkYhQudyLTryhJ7vc2ag?= =?us-ascii?Q?DADtHC0/UIJFqeK8Zew/fyXpHqQGeq9eecQOGHqblMn8DAEElHMIU1ow0WWQ?= =?us-ascii?Q?Z3u4X3274X2FEIjfY0BzJG+j4M9C6bvkLpubgvaOuoxp8Ho3LwYyB3k87ZH+?= =?us-ascii?Q?hcoozJnWkZWmJeFjYvXlTDufS50h2LYFOFlzUP6Nh9jyDhyqaw3HdWTM3mSP?= =?us-ascii?Q?FuLCXn9gbXttiXvDS4HW4WzOkFTS6cmsvGK2//shtoVwQdt0aJadLE+quCaA?= =?us-ascii?Q?l45juRnbdtbB3Hqr58jBCKl6MbPrvRuKc/G2DuPFtnSnRDSkRibEuFvnywfk?= =?us-ascii?Q?qzRUOWgWTEZd7nM8L2P+XVDxviC7o3ZwyT77V3rDULUpPWH1N4tgi4OO/HUz?= =?us-ascii?Q?pdm4/+l1wwrPhxE3JzhEAO4zZG+7UpIINkKrxJU/+f6DMTqoryAJtumu0CAj?= =?us-ascii?Q?9+Tfo30ZrrbYAv+JJ1rKhjkSYCZrSbxkGjymQN+kDLQtt9x2sF28c5eKQdxR?= =?us-ascii?Q?SHFsAbmaKRi1sxIJq9xwVD6ooGZN2pNEmn9Xsy2VYthyNGmegq3+VyqUnEYw?= =?us-ascii?Q?7OTS6NAtMy1bD6tk6iAwfhYpxKzwSz2MMUd0QU19U4Nkc40Gu8meuDm06o2V?= =?us-ascii?Q?d2uZuz6WooIriVw+87FK8Ifo7FQZ0mmpXQo/wrVCp2qxyb3iQH8d7VPPnaUb?= =?us-ascii?Q?V/P6zEMrp2ERO7bghz34WYvFQEnUPnhGX8RJmkfjJK3D/X8QAUEW8fv+qF6z?= =?us-ascii?Q?OL0q7IsFE/AAT9NYKa1Rra1KlSRI4IjUFpk5deM1rX1XIJOrOfDSmoHs+XFN?= =?us-ascii?Q?DovoIb2PGASGSdK3QSgAGwDTGEoGm933Sey6nN5bJfL/6rc0rIAoeC94Uwsl?= =?us-ascii?Q?LmT/6R2O+dhzzLLpwAnEqORv7aj9UUGEqlngGe70MdwHqdZ2dImRcvG4e0f9?= =?us-ascii?Q?XvXLch5VPtFrKEQhPDvCoRUzBC1fHh5JGoVgejSLhciHO523Mqo7mhi/vgLw?= =?us-ascii?Q?2YjaoDVZ+ucratksciYNCOjBVS2rbJT1AKamwv+00emKUnGTNBIJ/KjPJy34?= =?us-ascii?Q?rL8I0ybAqHs=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(1800799024)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kjVFJc1yVpbucoV47g6LyUh/BrzNX4Cv0Yz0/eHQLZOR1r1B4UetbtoE0l6B?= =?us-ascii?Q?65kswjwvh/JG0pJcKJcfPwKF1rqRNWanqnaCVq2USRUW4R2HYpOj5Oqd3YYp?= =?us-ascii?Q?uQT+1+kRiWVG1NgJqThMMQvA0LqDzTzqzQnd5R3BNa7p4tXeBANcc6a6pTYv?= =?us-ascii?Q?CRuwbDM7p9H7f15PlyE1Tad9gHit2MgFPjea9NQndrqqMHAhSJL0b/OLbhkL?= =?us-ascii?Q?By4yxLFfJV88m/4zmHXlkHNiUBt8ApVfRbkjne3v9zAsuXJvSh9uG/LjNvBT?= =?us-ascii?Q?OolyEk9YQ7bLJOosNn0GCHo1cU0jApAV/OwBOf2oOUPYkP/q1juWRTJ4u+4z?= =?us-ascii?Q?i6Ipk050RrHWaswm4QbZIG9f5FUCFjgnd0Lc3k/xTN9ewPVoowJ6a2ftzV6m?= =?us-ascii?Q?vS/aSY94TZ6EQ4kGxxMfCvedwKQ19L4urHF9PTGi+IbC88w5/XAQY/LVc/Hi?= =?us-ascii?Q?WzAe6cQIv5JlVfNSyMLGgrj71SzXZ7NdcdPEHU070zNOIF9b93s3kEoG76Vq?= =?us-ascii?Q?lqYmEoC6WapqV/shtg8/xpwCLjEwtvNWR2PkHsQSPdHf+TogJeo2Kii5i6BD?= =?us-ascii?Q?0lFyZwdNOnqv+E06xb6b79POEqGWFkMDQweY5+Zg2y0vbkon3hoLEKJmLy6M?= =?us-ascii?Q?zDIhc8TE7Q03lHLCZmDIkJnIfIdDEx/WC7cHxysSB/V+4j9yoVgSR4rcI5B+?= =?us-ascii?Q?P1tRqKEGrD4YMYbpDaME5SKoZHJACMwP0zZ68Sn70DYmwADfNLMNnbqwgg0Q?= =?us-ascii?Q?qeVIjZ5+PS1nzL5AxIAAsgp0nbkAlVqn5YXPq8Y+iU2nACe41VnTbaOitlFU?= =?us-ascii?Q?wSzjVOKr7692nW1yXF/N7BoZdS9C971E7rAN7g2A6y2r+MHBaBcjg56szOmU?= =?us-ascii?Q?BogOFxwfvq5kOG64VupYl23fNJri4rESwYlTA5iOxGuKNShL/C38xDBhgOiS?= =?us-ascii?Q?zfHVJDjZmOcjbxnKsBlJgpWVIKfmyo5+TBkd9gFQgqpXPqdTgusPBqHTt/4K?= =?us-ascii?Q?FbCTiW0aI9ja7TcnIBlotx5leyHsa5jdf2b/yzTBFnS27f+TW2Vo8kPiMxpq?= =?us-ascii?Q?VGRQ8v+T97tBX6IoDT3m2B+eA0P0UKnq73rVKcR2aBXrGHJPHoG9caWqA+0U?= =?us-ascii?Q?dqg+RohuHPD8XVlNmGo5G5ve707WqqAtpsPRESyzOppOBcZ83vLGDJQ/CanQ?= =?us-ascii?Q?PYLstDi86o9FrTbgVUWHhAKvGkUcJGUdadAdhl2b+G1M6pTjRSwIG4+e+tkr?= =?us-ascii?Q?uhHUtRYlv0K4brhLma/u4zdqQjq/U2U9sEOt51GltC6xHwJMcbovyH+zA91z?= =?us-ascii?Q?ZB0LCKse1Cm9Oeq4bWDGHo3L7tGD2q0dV9L3zO1trwHFi+xhPMi6cIifIUug?= =?us-ascii?Q?PzMXASJTID/qL9l7qF3A8l58s6e44T8lTxsh2I5sZ7MIYe5djm4xKlnoSNzs?= =?us-ascii?Q?fNKrFpY4ko5rTFZKIUiFWA93r5e/r0EOmo7Oj7ex05l8RDbjSyrB75dheclH?= =?us-ascii?Q?Epcx6/Gs21nZs11/5EDpdToXZ4pq1QxFUeyVNBMTyh6GPd5FwNhfcHktWYeL?= =?us-ascii?Q?ySPuHGi7T0eiuVxm3/jSRgKvKQuaQvqzHj5k0EczM+Oe3d4FUpPY0HzelUnU?= =?us-ascii?Q?zA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ht5gmY5yKx8c6gAljCIMt5KQUYhN0GpFiQy1eg9KfoQQWGP2a6y0+SxvtCXEd8hYFUYX66XNDS/GDJWi4l0MjCppQaypr1h21TvIQLl+mp3XV/2T7Nq141MfUFk5y0IQkqACaoqILDosZl6dJboAe1jVYzQzlfeyxeGpg7j1JVa+knh7loSFlVSxN7ZcfENsLt2ZafeKu+AI7/vayncCWGbvQ5+8Ft12TSJ3FB/acgYp1+g+AX3oXEuwgt62BzwLmnlLGOW8am1ehIuUdDNayqXyJlWVnRYad+yX9yZ1ugXvBfh7PgQzHDLs2NTQ56NCJ0U1tYvnwn0HhijXZZ9lZZjfpysxdTzIj2GYGrr7KmS8bSPc37wmf6vDalRsLpuNUSqHcW5WjgynnfFyvcMQOJKU0zrXcLHnfDaYyep+XT4kvnGFHSBmbiRTCOABpPm6ju00/7roxECWTVWemWfOF7DNG/DCL5yMRRLeLB4Ao3GZU9VZzngZnsQ771y7RNLORVHgVqr0J1Oxvus0ro4Qp/WqgBzEYqeoU4yVU9tP4eEyoSXGiZLVjyEGxV5QcGllmRBN45vsdA2LDOcFQQpkx1snIDMDZae63ukNk8DRuhk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6e06966a-0dcf-406e-3985-08ddbf4d0e91 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2025 00:59:43.5267 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: m2xh1KjUgFlnOMv+xWQ3LyasIwWdBlZte2yaOaHrVZj7GMrFL/6mOWa36ZeJdF2KZAAxJIi8fbmvCNT3/uu0WTEmxxNaQJZpB7VLOdBIELM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB8078 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-09_05,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 adultscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2507100006 X-Proofpoint-GUID: iBE2-NeX_LsuMbWhrmkbjH013nKNwzXh X-Proofpoint-ORIG-GUID: iBE2-NeX_LsuMbWhrmkbjH013nKNwzXh X-Authority-Analysis: v=2.4 cv=Av3u3P9P c=1 sm=1 tr=0 ts=686f1085 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=Wb1JkmetP80A:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=j3Oc6Xy6ULSXj8zZAogA:9 cc=ntf awl=host:12057 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzEwMDAwNiBTYWx0ZWRfX9k1n69o+cvPG Ckz3gMEw9lFCAHHoIsPnjCIUAfnvmJCJvNbBrVYZ0PccQPn4cqRMtqKIfGUr3DtQmYCigEcBtvC Sy+w3HJayIlnnsIQpeEqSzSmguCYRmE3/c7Vs6ax/Q4AEpBujqwbS1tM+dIG/f5m2RYHgjyuWHR IY0x3nG1PNSlsv3yn+d/1nPSYXSvkzIMb235Al8TDNTsjlf8c3wW4gYjc74phjr9q5mSem19dsu qUX4oZU3YQOwRCGLj5XFteWzOOs/fThayfqFAeAStvupBTFUJmHEbedFQTpRTynBH96upHJ8TGL 4yUuY/Zu83S4J+w6xjFbBPQwRehUdjtCNTM3VYIh+uKHusD2H1gpqMqg9s/FPnrwDjgg4UGSZTh VtxbktMVasRA+gokcQaIOevrVoCAxvenyxYAXmwIXck3tjvkbi+siHNnIELW+eayXo/SeJsQ Content-Type: text/plain; charset="utf-8" There can be a significant gap in memset/memcpy performance depending on the size of the region being operated on. With chunk-size=3D4kb: $ echo madvise > /sys/kernel/mm/transparent_hugepage/enabled $ perf bench mem memset -p 4kb -k 4kb -s 4gb -l 10 -f x86-64-stosq # Running 'mem/memset' benchmark: # function 'x86-64-stosq' (movsq-based memset() in arch/x86/lib/memset_64= .S) # Copying 4gb bytes ... 13.011655 GB/sec With chunk-size=3D1gb: $ echo madvise > /sys/kernel/mm/transparent_hugepage/enabled $ perf bench mem memset -p 4kb -k 1gb -s 4gb -l 10 -f x86-64-stosq # Running 'mem/memset' benchmark: # function 'x86-64-stosq' (movsq-based memset() in arch/x86/lib/memset_64= .S) # Copying 4gb bytes ... 21.936355 GB/sec So, allow the user to specify the chunk-size. The default value is identical to the total size of the region, which preserves current behaviour. Signed-off-by: Ankur Arora Reviewed-by: Namhyung Kim --- tools/perf/bench/mem-functions.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/tools/perf/bench/mem-functions.c b/tools/perf/bench/mem-functi= ons.c index e4d713587d45..412d18f2cb2e 100644 --- a/tools/perf/bench/mem-functions.c +++ b/tools/perf/bench/mem-functions.c @@ -36,6 +36,7 @@ static const char *size_str =3D "1MB"; static const char *function_str =3D "all"; static const char *page_size_str =3D "4KB"; +static const char *chunk_size_str =3D "0"; static unsigned int nr_loops =3D 1; static bool use_cycles; static int cycles_fd; @@ -49,6 +50,10 @@ static const struct option options[] =3D { "Specify page-size for mapping memory buffers. " "Available sizes: 4KB, 2MB, 1GB (case insensitive)"), =20 + OPT_STRING('k', "chunk", &chunk_size_str, "0", + "Specify the chunk-size for each invocation. " + "Available units: B, KB, MB, GB and TB (case insensitive)"), + OPT_STRING('f', "function", &function_str, "all", "Specify the function to run, \"all\" runs all available functions, = \"help\" lists them"), =20 @@ -69,6 +74,7 @@ union bench_clock { struct bench_params { size_t size; size_t size_total; + size_t chunk_size; unsigned int nr_loops; unsigned int page_shift; }; @@ -242,6 +248,14 @@ static int bench_mem_common(int argc, const char **arg= v, struct bench_mem_info * } p.size_total =3D (size_t)p.size * p.nr_loops; =20 + p.chunk_size =3D (size_t)perf_atoll((char *)chunk_size_str); + if ((s64)p.chunk_size < 0 || (s64)p.chunk_size > (s64)p.size) { + fprintf(stderr, "Invalid chunk_size:%s\n", chunk_size_str); + return 1; + } + if (!p.chunk_size) + p.chunk_size =3D p.size; + page_size =3D (unsigned int)perf_atoll((char *)page_size_str); if (page_size !=3D (1 << PAGE_SHIFT_4KB) && page_size !=3D (1 << PAGE_SHIFT_2MB) && @@ -299,7 +313,8 @@ static int do_memcpy(const struct function *r, struct b= ench_params *p, =20 clock_get(&start); for (unsigned int i =3D 0; i < p->nr_loops; ++i) - fn(dst, src, p->size); + for (size_t off =3D 0; off < p->size; off +=3D p->chunk_size) + fn(dst + off, src + off, min(p->chunk_size, p->size - off)); clock_get(&end); =20 *rt =3D clock_diff(&start, &end); @@ -401,7 +416,8 @@ static int do_memset(const struct function *r, struct b= ench_params *p, =20 clock_get(&start); for (unsigned int i =3D 0; i < p->nr_loops; ++i) - fn(dst, i, p->size); + for (size_t off =3D 0; off < p->size; off +=3D p->chunk_size) + fn(dst + off, i, min(p->chunk_size, p->size - off)); clock_get(&end); =20 *rt =3D clock_diff(&start, &end); --=20 2.43.5 From nobody Tue Dec 16 21:11:18 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A7125255E40 for ; Thu, 10 Jul 2025 01:00:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109209; cv=fail; b=VmeCRY99yKz3NLL+3fIUxmBNhh0S+7Kt8svP+i7WL2NO0CJP7xMOcbpzeYXFhR6lAUrPFAVbRP+dAloJtb4JAj1dSeQT2wnGg9nHlTn01Fugot3jJtoSgcLsQ9Bn7WjGbbY66flsaka7N3I7tDS+3kXepd/+krlFSnc2IzXj85Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109209; c=relaxed/simple; bh=u3GofZSg/lf73Wd+T6BP+Vuvjsjk7h4F/Q6LAtVfjJk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=R84oTCan3tCvkFDW0uzIP7jq0ax9pBeMELa7TOVZ7KlFhRuGflGj44+2fw4hKcfdIaQIAbBY58TXefmrBobDYqK7ZtZXxCqaEBYNnUK5R7jW/3l14cnj/JzKdW6EzhZkhgpfk4TYWagb6ayd8wBiP38J405Sowaen0c1GT4X1v8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=F+RBI55x; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=JzOFd/CU; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="F+RBI55x"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="JzOFd/CU" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 569NHVm4011369; Thu, 10 Jul 2025 00:59:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=MkyBUNoF5MSoFFldrAzDk9FWHt3zMxq6uzVA1L/+Ed4=; b= F+RBI55xRUyxGDXG5xXcXSUOufuY0Wi3dTIBQZc8jlKuhScBGXFdWXWgTbpsbaQs R+cc+TI1chRPJPJmFhzeORlcG8kbmgnweTRdWoZMuRpCcntbPbSw4ml3SKDVcBU6 CpKjaB2UwD6BcF/OLcOPh7dVJ180vhRH/Scig0ApxbEWPLzpTjD5n0uNDDmujo8V F2/YywC1V4kzmujCK0Ok9c3hWFxIzllPwAwS2fVB1ZOlyUBdzqyEpSodm1RhnK2K v7/psINQUTJwkgYZ7MkEi/kG3UemQONrK28LJqJIT4cp4M5/j2H5WVYv0pLkPVwV rI91Jk8x/yHHRi1d7oTQpw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47t1y103du-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:49 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 569MFbRX027404; Thu, 10 Jul 2025 00:59:49 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11on2052.outbound.protection.outlook.com [40.107.220.52]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 47ptgbmryr-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=U5XRjGDBlQ5bjn2b40+4DXmB4JOq1EIZu6d/9B2ptjRi8zzCN/YL23f750SNiuoLUAYEonYzcjO5CsEIhOD/LfW36o9nuzveY0p3YL7cJSag1x9UpVDGfFr2QnfA7Ql6lYURzVqLURXmfeoYkeUNPwZnT5ME3rGfaSCKibTc0qFYvysk2dIW2lt5YJKb1AczoaI3C2LXMNifpdG4H/6El7FMglv6Ywd2FZkzG3vDysLc4gHi8iurkPjXiOp/WMuOoqUcPZXqN6ZG4ZcZ0U96/0v6e/2R6NaoUXDFo8yOintfkXjYNraeNgskCKDBpnVJA3J2J1hSgZGftMEWuwqYZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MkyBUNoF5MSoFFldrAzDk9FWHt3zMxq6uzVA1L/+Ed4=; b=QvNZxiqFgXPwo9GAs7ytC1/C8Ids+C2xYNvuhS7Rl5riX2MbZy+vIFihSHlwIo7KpACcLQpHyb6FHybm9R3GkVXZ+yBL7aAYRXX5y0DyJn1MHb7TBzZLUNGMFwWbYw6TaWaWU2WpZLEbcu8Rv2t1qKzyOEZLheHW0EJfOmXTk1Arsfj65VwViQdI7E998drOZvFiWTwGRnfbgYLPB+ggbEq386Epz4GjiLQyN1L8krjZ2k5vZgWTqp5+YOQ6eBdQOfCqLW73imWLi7nkOlxDmargtWFhagGKPRzsEc9kDLUxTpdd76BaFpXa2fr+PSmoM0vxVvScY3SXhPNNm7WVFw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MkyBUNoF5MSoFFldrAzDk9FWHt3zMxq6uzVA1L/+Ed4=; b=JzOFd/CUWAH97zp1e16oOvhWAZavLs8cQT2ytjYgpIepcTAJaUaTcsOj+3JsIAkAJFfSXa5v4M7Js11/cjuAaibC+JrBU8PL7c8I6K3lWKZWhgJxlWuUWeHmjsdpTADsCuyVUsqv/ueKbtla+PPxBsyeL9xWJnDY4+bu5nDXvkU= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS0PR10MB8078.namprd10.prod.outlook.com (2603:10b6:8:1fd::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8880.21; Thu, 10 Jul 2025 00:59:44 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.8901.028; Thu, 10 Jul 2025 00:59:44 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v5 08/14] perf bench mem: Refactor mem_options Date: Wed, 9 Jul 2025 17:59:20 -0700 Message-Id: <20250710005926.1159009-9-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250710005926.1159009-1-ankur.a.arora@oracle.com> References: <20250710005926.1159009-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW3PR05CA0003.namprd05.prod.outlook.com (2603:10b6:303:2b::8) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|DS0PR10MB8078:EE_ X-MS-Office365-Filtering-Correlation-Id: f2b9c5b6-69cd-4b27-e803-08ddbf4d0f39 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?6O0tMFoF26UO7BR7gOt9OGq1q/E6rw6jxJK5OUY5eaz98B1YcdFof++uWBBN?= =?us-ascii?Q?+rOBhq5b21ek57wSkBgn5/oMsRXMf3haTXVd8ftzOvasew61t9hr7ptEdsMS?= =?us-ascii?Q?9QFAeewsZmW7s+sqWA8jxQG4PBtW0TEkrCp0uqvk8W/Nvt49S/ESiGcM6KE5?= =?us-ascii?Q?iALajXHbD6pEQfUAaSrmjMsm82FDC5vTd5TLVSqKsu5kBjxAdWa2MEp53lxc?= =?us-ascii?Q?fPZfYmTHbn/3t14K75GBuDUKmTHlRj3hrIyOvDdoJtC12PT4SrecnknpV6nV?= =?us-ascii?Q?7inv9sC8tZw9bKo99Ke6K3NfF3b03z13qO8zqqaS+wBR08Gby89JpM2qqlww?= =?us-ascii?Q?e9TzvpbSG/+A+umyv7lb+YiwMaAQbYLindw+GIkEAkl5hwnHZ5SHxD/3vHg+?= =?us-ascii?Q?vtYy8E0io8QajpjpdPXqz6oYcxhTTViNzApjcjHqqNV4oTqh02Kw/l+u6rEe?= =?us-ascii?Q?hY/2GMhxA2KU8LXDchJwPBvnDoHJ6hhknrQ2pUR7pu7TsRASoOHlXZTzCHVu?= =?us-ascii?Q?UaSK4xXbMnttVnTIzxREkYmR8zRdZ5FYJ4iSHwhDqtnwWb2D7EwP4xW+sMcA?= =?us-ascii?Q?tKD3QkZI6puzQu1yskZkLf3ENep/HKpZI2DRfdwUzVUA7UjjkCGGP6MdAEAs?= =?us-ascii?Q?XBtB9SHublXCkS5oxUnxX4zo4kVvdQrWOtBwWAY0KLzzITb2Pcv+0W47UpGT?= =?us-ascii?Q?cNlDDbLaeObXiZHsH58UCuwuEvfPxsdIaTgTZeGFGwqz8Vv+t2hQjWOfU9uM?= =?us-ascii?Q?uJTcZTZKoqm7X047LvMxqp141SOhnClXT3C2N6E8cyyjA9XZnDd3emX2nMlH?= =?us-ascii?Q?A2yBYWan58WZtu+X4ommB4u2AfJ1ZCavjCHR6xysnHcHGlGi8BVuXNqN0cKa?= =?us-ascii?Q?IlPBzX6IWK9bwYxwA/fpOuYfCNW6h4EdyIYSutffFv8yUQVRbZBWc2tWkoSs?= =?us-ascii?Q?eJs1BDwwEmjrnG5spEscYaaLyOhNMJi91YRNhh/+9Xvo4nk4beG0maAZTsa4?= =?us-ascii?Q?VprNN5KL6GdNfSPzVXL6X80jFiEG27aFAX4C/W+C6hyj7IPsMf3NXa4iq7md?= =?us-ascii?Q?KWyQNdLShL+BIOw0OfdOgduxJjuT+biFp7MuWtlkIMPNdJzamHvXfRE76s13?= =?us-ascii?Q?MRE5C1QWZdJDwkNg9EsuNqD9M6F1gAFCUeQkcSWReSqEQR+KWYvZNUsBVtWJ?= =?us-ascii?Q?ACCScNcH/ps3pyE2PqwyNOMzZDNxxf6jQMqX79JbNE/78zJJPNRhSlcBLh23?= =?us-ascii?Q?CejfwqwpcqqGht1DKA89xNET3GzEUxId5YGrARUKFFpWFwuM5fRW+c2IaQfA?= =?us-ascii?Q?5miHBNPyDhCAp/hBIMsgSj67QFDOgkaj9gtx3YP2xUCkYWwYYBQCZKvKaWTk?= =?us-ascii?Q?k72pbBQ4ZfZUhOlr6Gjiz16IFnZE2lcXv8wSYHWWJfs2Q9xTy1tjYe0btx69?= =?us-ascii?Q?A9DTGJ1IjPc=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(1800799024)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Fe4U/gpMtj97Y3s7HWQSrF1aORWzGBUP136NIWHB4G9DXHZLIYm6pDIMyDlt?= =?us-ascii?Q?DkqVMnxW0k9rAHeOuHKc/xMvwKVjuqFGPPIpXZNTYo9n6hItG+6AomfhCyhv?= =?us-ascii?Q?DwqWkuZIkbcRGlinhRnjRUsBKAmHnfUqhHluZlF9llGBYcKUT3p+bKZho2xm?= =?us-ascii?Q?CCL42ntu7VCthfqvSnlob3TBcQFdGhhtizIe7AY5p7SEZTF7S03k0wuBSTTd?= =?us-ascii?Q?keNgcjmglDMTSenuPXvCNWfGyO8SRswEuV+MQt1YPxPsVdbNGGQn6snFM5KM?= =?us-ascii?Q?1jBLkIw3BwG0zEOA7U98+WN20oEOYj5LKrYvF4V4sOxEze9tltwAhoS83HEb?= =?us-ascii?Q?Ey3Tzjus+FV2Tm0vKaeto3XY86384vmoyXT+bbHh9dlUd/hQFdDlxUzxcvnG?= =?us-ascii?Q?283nGHq9lM0Y9zQga8yHonXVV02gQ4K1vVLVxKFVuoBAHgRCK3kvFaJ+Xchu?= =?us-ascii?Q?DHX6q+2RzlwSYLNUmONfu7tlepelFD2OoM9hyvh5Lxm8wbPIaIjEyZmywoWR?= =?us-ascii?Q?B/fmc6fuHI10ue+EoQRaZcMkRUj9ntk5DHtRsyO3y/d60C4SrbdTE/vLx2O7?= =?us-ascii?Q?OFD6slqIV8xFERVTeNVZQwrm3oufZgJ7OxcpK5+n9SjPQRzhivYMrrbT+LcI?= =?us-ascii?Q?3RxKJ1PLyFQyDM0+cEBOIG1PrOrLo+x4gejSIehkvZsXMN7s0fwvvyJk8kSK?= =?us-ascii?Q?h3vrNbAUfMRdKxNpF0In4y80DnyCrg/hpjzTlEROnNxeEp+5lxAvDSNRDBbL?= =?us-ascii?Q?ZY/KWT2CwYIW2/AazTCW/XjZpvTZ5GyZnEDW/Q9DYJBLN7RxSFwvIR2tfGty?= =?us-ascii?Q?lduLwXKsiR03iWqVIIxymYwrusefL+ZG1Etjq0ttGUOoeinC8rD8GjgyPZy+?= =?us-ascii?Q?aZfKl4VAesc9uej4f8BFDvQajR3D48ttEOwtS7WkkXGTxnDYt74gSLat+KR2?= =?us-ascii?Q?9rCyQdlvKPwWW5cYkJ9dXl0HcuBOUL02BrseZRLF6vuWinUV6g/6i77smMXF?= =?us-ascii?Q?EwHTYwOYSnwb2lg6BVOATfypgUa0ThsO5hBLoG4vELOXSYAizEHxLiWOEE3+?= =?us-ascii?Q?RBtKKgmhXoBCMvmz2aB3csr1DOfwVHNeG8laNkpvtBOH0JuFX3Zq6JdgTr9a?= =?us-ascii?Q?3j0VwbO99pFXnOmRJYKSi8+z7pYaHn3erDSWZdL2Q2jiMVxgVPYMbOJWsIJ5?= =?us-ascii?Q?2+NDnQ4uleOQeuHh3QRGYmkKcfiOSLuns214y1+46Wd0qZh6wtwIfMIIU6kX?= =?us-ascii?Q?+Agpv7Kc5wlc1OiarvdiQHTcNaxHcSJHYAYAacZg7G8nNZ5HZHETRT/ieiyn?= =?us-ascii?Q?NZHere99EnHhBv+iD9tklcMXCsWmsXm0P7c83tJzABIVoLON/TaWey1Okx50?= =?us-ascii?Q?1i49iFSWemmXypg36U9J5EbdphqpFYOhe9K+VWKCYshDxpYhgZhtrzII0tlG?= =?us-ascii?Q?wRfZQ4t5rD5wuNDIQr4EdDS7+67O1ieMtsz7yZj/ihRQ55b3Ggn0nDExQCLi?= =?us-ascii?Q?N1XMG7JGDpAss6RCg1r0aFiigbGipzcB077wizLqJHwxKkahjDxilb10wCEB?= =?us-ascii?Q?evAlzVdvLfekgBZeqTovX86HS/rLMS4+3odHVAVc2TRl9EUtzIi0iynlDgLq?= =?us-ascii?Q?Iw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: hKev/inlVYJ/tTAEXkbiZ7IZAsUzhavTfraGnRYBIbFvRiGTjubuoPX6nySY9YFuLQ3Mv5mk0m22mOIDxottXcGPGxvOpKMhA2hCM1h154qFoektOiqSCVUkXVpptFyzGujmPT881agB1HB34B7EoArfjSMem/09iZC1nnPtBjv/ptcoraZqEVTqTLzuBgK1et+1PMG4Lx05neiVwJacN20JChk4n/sx2m9+Z/9pytgjUvfDFgXiuShK8P4zlN0GkgXamJuesG5CIfuQkoTPiQ2RLI0Uzm0QdL3EhcxWi55eGtibQfXyHaLjXAJeCbCexcytlf+KDW3E2gxWF1iw35x+pcej5ZQoSM9wpoWCYA/leK8qZAly0AmysVjORlPgIXSBiCNfGDpG/B+iNx1ZJjaxMbp6lYrCZLHEDLyjrhgvnbvZWahCse5pOgoA5RHSc2ZNgwwqYtMLWsDCFHocRjTZAqiUt3F5cYJbD+idt1TfVTjXZY8wAkf80KOkzpdLlz0tdgKX5uOsFaikuI9f6b+k8ookfJ/d1FwfN6XNISXSydBGxIAaKXCLssw+DREDv+wTAx92XxZqNFgVoFCRE18IzosY+cy0dBTuUkQW0L8= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f2b9c5b6-69cd-4b27-e803-08ddbf4d0f39 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2025 00:59:44.6534 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: rAQfKRG5b7Og2wihge68PvyNLRXyZW382Q/X6YcINf5sElqAQmjBNnGxUsQ7YHZAiIbPoBg5BfM5088ggXLV3s9uxeaifyk2FpLk0oEpsSk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB8078 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-09_05,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 adultscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2507100006 X-Proofpoint-ORIG-GUID: JlQU5TVCM2vb1fPrRPKBvs8lBTIloEOT X-Authority-Analysis: v=2.4 cv=UqtjN/wB c=1 sm=1 tr=0 ts=686f1085 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=Wb1JkmetP80A:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=_oAs_-Zd7h5Ft3cs7ucA:9 cc=ntf awl=host:12057 X-Proofpoint-GUID: JlQU5TVCM2vb1fPrRPKBvs8lBTIloEOT X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzEwMDAwNiBTYWx0ZWRfX+OkMG36xP1o0 /lgOsK0ERyRt+cLe/TsoVsou1d2XtKtnmwcm8ndbc0cK6G3Wt0/f2L1vjrGpHJ9Uecu3DaMmFRi yaeIauNeI27/zXCBZx+95CMt3lg2gZFbrdl2Jleffy464ZgMru6sKA4cbM71LKWOfDW9GOz5H/1 Og8ZuYfFdWnAZSvxLiaB8cykbvIvkhPW1c2fan83ITbDdk+MeOsBuOuzD1zr9lQz/x7XxzrHWYw kPLVUJ/bsKYaVc1nuxfG+J6YXyfYm0jQzaT/T/5Krc/+DnFpYPENkRShZQvmzITlmUT3rw0E8ws M26cXJXrlaEwSYGKA8lRZs8hTeOvQzJ2kWB3UjjZ41RKfYAuFi2B3uYzx5cYutVi5TcDbdfW696 k8Z4I2bjAEfbvO+GNCYpCFqnL1MrZldCaPGv23Gvqsvhk5tGGcccZTnRI5YicndMgNU+s0ak Content-Type: text/plain; charset="utf-8" Split mem benchmark options into common and memset/memcpy specific. Signed-off-by: Ankur Arora Reviewed-by: Namhyung Kim --- tools/perf/bench/mem-functions.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/tools/perf/bench/mem-functions.c b/tools/perf/bench/mem-functi= ons.c index 412d18f2cb2e..8a37da149327 100644 --- a/tools/perf/bench/mem-functions.c +++ b/tools/perf/bench/mem-functions.c @@ -41,7 +41,7 @@ static unsigned int nr_loops =3D 1; static bool use_cycles; static int cycles_fd; =20 -static const struct option options[] =3D { +static const struct option bench_common_options[] =3D { OPT_STRING('s', "size", &size_str, "1MB", "Specify the size of the memory buffers. " "Available units: B, KB, MB, GB and TB (case insensitive)"), @@ -50,10 +50,6 @@ static const struct option options[] =3D { "Specify page-size for mapping memory buffers. " "Available sizes: 4KB, 2MB, 1GB (case insensitive)"), =20 - OPT_STRING('k', "chunk", &chunk_size_str, "0", - "Specify the chunk-size for each invocation. " - "Available units: B, KB, MB, GB and TB (case insensitive)"), - OPT_STRING('f', "function", &function_str, "all", "Specify the function to run, \"all\" runs all available functions, = \"help\" lists them"), =20 @@ -66,6 +62,14 @@ static const struct option options[] =3D { OPT_END() }; =20 +static const struct option bench_mem_options[] =3D { + OPT_STRING('k', "chunk", &chunk_size_str, "0", + "Specify the chunk-size for each invocation. " + "Available units: B, KB, MB, GB and TB (case insensitive)"), + OPT_PARENT(bench_common_options), + OPT_END() +}; + union bench_clock { u64 cycles; struct timeval tv; @@ -84,6 +88,7 @@ struct bench_mem_info { int (*do_op)(const struct function *r, struct bench_params *p, void *src, void *dst, union bench_clock *rt); const char *const *usage; + const struct option *options; bool alloc_src; }; =20 @@ -230,7 +235,7 @@ static int bench_mem_common(int argc, const char **argv= , struct bench_mem_info * struct bench_params p =3D { 0 }; unsigned int page_size; =20 - argc =3D parse_options(argc, argv, options, info->usage, 0); + argc =3D parse_options(argc, argv, info->options, info->usage, 0); =20 if (use_cycles) { i =3D init_cycles(); @@ -396,6 +401,7 @@ int bench_mem_memcpy(int argc, const char **argv) .functions =3D memcpy_functions, .do_op =3D do_memcpy, .usage =3D bench_mem_memcpy_usage, + .options =3D bench_mem_options, .alloc_src =3D true, }; =20 @@ -453,6 +459,7 @@ int bench_mem_memset(int argc, const char **argv) .functions =3D memset_functions, .do_op =3D do_memset, .usage =3D bench_mem_memset_usage, + .options =3D bench_mem_options, }; =20 return bench_mem_common(argc, argv, &info); --=20 2.43.5 From nobody Tue Dec 16 21:11:18 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 638A3263F59 for ; Thu, 10 Jul 2025 01:00:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109215; cv=fail; b=TCam+wrQpfnNENZb1ZEH6OCAXdK8reP03NMas1LiCBmbUf26bIhg05+4C6YV9EHfcMCaa6ZNhjPWLNtlvhQipxpP6g8XYEeNU3+wCAkJtilCs8OrgDmJVRq61QbD7DA2crgyLAhL4FfWURYakIa/gMhURWZvDoYzG7k6AK8PHt4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109215; c=relaxed/simple; bh=NVrfntKNiqk2kXEdB7/MReklD1KRIbCgxJIt9FrKbII=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=O5wTdyqfSqcU0RiaIyI+Pg2lIIjFd5dyPSSXqBGaIgzo4boIy7xHqP8t189bmanIHh1z3AsGyU+ISoOSHnNF6k7GLnOfvZ5n+cz9a5RhyJq025FzeWF6GbrplGJwMusde8G9Nq00DECMTkDm3pk9KzOQFnd/nL279XdyWfXYOVk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=C6SB68ct; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Pw1ixW2U; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="C6SB68ct"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Pw1ixW2U" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 569NJ0E0013830; Thu, 10 Jul 2025 00:59:52 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=kIb7cITVYxosEqvvSgYOv78YPGqCfIux2UWSMzSloiA=; b= C6SB68ctq7uE17C0tRlPorbRMyRTHjler8ojacNiHIlL5dj7ATgABPi01MVDqI+7 EOBsWSoeI29S4/e537ScULCMlYH0i50m/Z7830Oa3NCiFWNKLEjbkRv3gTfgCtBI pofrAFhKuFhZC/7OjO79Exq807Ia8cj0tW2T0NmZlAVw6YOtYPP1fEJvFM1qycCL c1o1f6/H1clmVbFd8O8/rEQWXXR5hxMNH9EY+Q2ymmSNin8Nr9UmaBvLVmUSrcEL 3EhDlYJ6ARGrS8PPoX2gXdtQbbWqGAMh3IjKsFiZHlg8Nu9tOMFGTR2FylT61UiJ FHgDgbpEGx/uhOtZmfZnug== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47t1y103e7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:52 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 569N4JMY027228; Thu, 10 Jul 2025 00:59:51 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10on2075.outbound.protection.outlook.com [40.107.94.75]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 47ptgbms49-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cFKo9uGufcWS4Dz6wCDt522dmiN1J73us9qH549RpteYsJv53520L5wS/7FNrEVJbfGbaWgyu+3OpzokUSCFQJbnKnM5yaFpj2Ui2+i6IIOOie0WC7TVCYpncjtUdv7Zlv6kdptFnd9gUVrWNWZlcZoFow0qbxxtj/d+5OUfqHX9cTVaifT8lNUA+HwB8VwkwSGr4sQj498NuQRP8ft1oYpQRyQDit/0E34bc8B9Ov+Q0EzskU7utxdFfVZA1UXPcFRFy4TvSjab0k5o4/dZL7c9ehulHPdQvsfC1hxGvjdS6VTduxFgGsxROkstygZ1RZKq4i7orZ+mduQv+nXyNg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=kIb7cITVYxosEqvvSgYOv78YPGqCfIux2UWSMzSloiA=; b=vB6ESaTZnD4IU79Nv8JDjbglsP9Y34Yrd5JAEOkev3YEYswn0twgmcpTJfqIwaJlOAPLHQ1wUt+2dR+52aWbZMoXm/IuqnPOyD7NUyN4vrb72qFrsf//WScmwtbRv9ywcdhoVhN1tUIWsYVJLT5SDpNRdhiEqQ9vLoNjVVmV6jaqQbVfsjV2dimj+kP3CYntGPGCC9SERPABp9h9rQFSsfz13qsQtDMy2rIj81wOE25DUSg5ul0n3xXRLorkjzEvLvKby8IbcRWpNBLUrUSB0iK+Bn7iKBTdO+VbPTuBOJMAuw5B5hiHHPFdBaU8vaBEngECGqc3D7/qb/1b/8yBpg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kIb7cITVYxosEqvvSgYOv78YPGqCfIux2UWSMzSloiA=; b=Pw1ixW2UU063hFE3+seuoxyuyUgwLXVX0JZYssOmcAEisVZYZ1Yc9yMnHSfa/HehSDPuO/FuVlbJjHZ0hHRs0wGm/bou3tjlgQLYcToBDI0q1su6snd4fImLx3nQO/+tD3ltj3D25baTF+gnN0Il/G4LR9KhBNIPNCbny/Tpvsc= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS7PR10MB4832.namprd10.prod.outlook.com (2603:10b6:5:3a6::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.28; Thu, 10 Jul 2025 00:59:48 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.8901.028; Thu, 10 Jul 2025 00:59:48 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v5 09/14] perf bench mem: Add mmap() workloads Date: Wed, 9 Jul 2025 17:59:21 -0700 Message-Id: <20250710005926.1159009-10-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250710005926.1159009-1-ankur.a.arora@oracle.com> References: <20250710005926.1159009-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW3PR05CA0011.namprd05.prod.outlook.com (2603:10b6:303:2b::16) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|DS7PR10MB4832:EE_ X-MS-Office365-Filtering-Correlation-Id: 525208d6-db06-49da-8842-08ddbf4d11ba X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?1c8eByPXVAJMq+WouMu23dKUZmJoiSzn0e24kH2uREEnhBVx9btGEd3nbECf?= =?us-ascii?Q?ncBrBuHp1FpoC8XrpjyTeciszYewwn41/YSrTVF7A/8k/dryIQaf3GcBfo1c?= =?us-ascii?Q?IdwFY+swsdpdvTCOXpSki3GWxQcC/zKRIaDfMtt7Mtxaot1gw5zIuAt3PVnU?= =?us-ascii?Q?knGegMqauCZXqtXsaU+atnzBw/kmojLOlKt8CjCqhM9K5SAr7fqvKFAUwPVt?= =?us-ascii?Q?rybsPoIoeKCaLoLbLOyjY+wcxqUvvfijHxOxjlreAYuWFyVpBuf3KzkPr2iU?= =?us-ascii?Q?qq2mVHyOityMlGIhvEzpzjjc2pFdAG7cF2gIHXWb4AIfHTrN3uqrVSV4u54E?= =?us-ascii?Q?uhzQi0ipDU9Zy04gFdOU4zk/l9j7ga55AOfwoAHY98Hlo1eqAjJK3n2ndLsB?= =?us-ascii?Q?YC+1CqQid/6BvVAt9668t6ZLntvhVlz3Hz780fFclFGsZAvdTsey9z8ID1RL?= =?us-ascii?Q?o+phGDymLaOvpB9pkve353onApy4COLn3NBa86y26VhsR6UNShRXyDsqRAat?= =?us-ascii?Q?YCxZSNtlKTWIWh87msXXicL0GKWA6+AH3nTya6XILr5c0xsV4/efrE4Alfyi?= =?us-ascii?Q?soSwZKa5EdbEt7skqG8BbqvKvME8zHFjPq/3Gdh0SVNCXscLaA+iViSLSZkG?= =?us-ascii?Q?WsBVZxX0YF0fII01l2OTZ8LTYum9alIwX3RS+/2z9F3Wx4AEQm6LUmTAFn7M?= =?us-ascii?Q?WMjfD+yGX4KAk72ivS9bj6ngpbD2bkKJwjILrYv7El0VoETe8iON6ft0k8EY?= =?us-ascii?Q?JMRAevN5hIul1lt5U8YyhFJDJzE8E1SmFoPBSAWisITc5gMtrSd92brZn/01?= =?us-ascii?Q?UN/Fj0ICr03cWEv0OOFQZIZzf0c4FcTeEqvV+LFx22IEzoUixKPsZrVUoK1D?= =?us-ascii?Q?vIKx7AYRcmA7h56u/AGwfRiB0omuD83Uw1xI5rdaCXWeBkjHT9RNe1iarGlA?= =?us-ascii?Q?/pV11+cfpxmWkAkstmPETTlul1y6F/dg1urJICxgmn8HkhmWg0qhv8NZhWZD?= =?us-ascii?Q?FJi5TYQPH8NejVP4u7WCCNhE8NafBT55OoRZgxbm5x1kM/9gv6KUL/FoYUJ+?= =?us-ascii?Q?SoZhASgLKncZN7QOsYB8rxZ4T7BuQ2MPjgE4zNce8Qq6aHDGYY5CzDaq/0ZH?= =?us-ascii?Q?J6uh8m8C1Rf7cwnzCHBYCODwmfcthgXH6Bua9ObXMpaq+neSM9vtkHTRGMz+?= =?us-ascii?Q?YfNoWX0AZMTm10CNLa1nuEd5oXXxgzNCHpsa37NK0iBY+IybUKmWpP/NAWSG?= =?us-ascii?Q?AkO8ioOyyqI9Jd3V1j4+BLfHIDzUPLbeG4+4cdCI2fksKagkVcTEX0fS378X?= =?us-ascii?Q?sAcPc6QMgM9J2rVbT5sq5EqSwVKOC7tHw0+1ETBRMQjezTp++GuOKuNrHj2n?= =?us-ascii?Q?r2eH+qHHfXU6UKk0vLwqjgSgZh8Gb027uGTlinW6eGar1jiJ39qIAwtF+lHg?= =?us-ascii?Q?I2iWYnqvSvg=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?IRQ4WI/7IxC7Gg7M1+GMvui4Gk9r8OGHAc4yhf01qh9ULVV7SD4gW0aV4Q0k?= =?us-ascii?Q?woVLP41ePCpjndr3mtwQFBBO8pgeKfgEvVFbF8yzNu1rZ/EqwXoS3XFGyfJu?= =?us-ascii?Q?102ggIUPTyJJ0ryW2myMn4rTiRdm1tnUYGK78lT02sBP+ZtyPQVsrgnuXw+t?= =?us-ascii?Q?EPoswFSq9SSpMhY62B9ZbxdJKopge3JFTwZnDrcSNC+MVGtbyBpQFg6N8FNc?= =?us-ascii?Q?wWL3I81sL5Ed5klOlCEUl3cx9hwMrqkUeBcPETwUe7c4J08DmQu/AHXYozcB?= =?us-ascii?Q?NhBX0s3DO1N5FIiftAYB3A60SweXeGvjGnkOovO1jaiPFaOL3TgZq0of1Ze5?= =?us-ascii?Q?0In2HdLdIQYmvhWVnoizuzZeqcmZHkK+SuyRBCHzTTU6Bg4fBZkY0TmiZU0A?= =?us-ascii?Q?H6egdFLmKfgFqK3Mv1J3ww2ovSSRRQme2g8BpeDJN/mDi90//Y8el18KZQPG?= =?us-ascii?Q?fmdwzJYB7psJ73WWlBNzyfR1pKRd3caJ6yMBLWsdi578bK4UOb0KMe1hZnMh?= =?us-ascii?Q?rIQkMV3oCUosUb89bsNAo+yaA9+y7q2ixiNYKUAFQln9AvToYjZwQ3BIA537?= =?us-ascii?Q?UZkTkVClx5q83XZ4ioUPfls92g27snGSwDCmc6XeX94nrSxii8hVGTLnh4Nl?= =?us-ascii?Q?2YpNlxD2J1g4VS267+VRiT6bt71ensjET3gfAQgusyKodvKTZIRRJh8geQGj?= =?us-ascii?Q?72ctqpq6xE51k4Lr4h2obH75V7ToV4Vms7y4EcYmWDrR6nlYafKxLIvIZD4a?= =?us-ascii?Q?DrqcSom6WMVJAZ03dC58Qplkz8KTwT/nbe57BhdcQQATISd/Z0ybEtHNA3ww?= =?us-ascii?Q?K8xxZTtnNPNsYnhF70vIRFS3XaTKSeVXPGLz9RtVSoDcEBqLKGVYfvKsFAaX?= =?us-ascii?Q?LGC4pXfcTe3kxtfzEll8YHYs1iGKzk2ytPD4fazIt6JmAf4s9k3eL20fMKp5?= =?us-ascii?Q?bzs5YjP9iokzN3+TC/d5R9ZoZbzbSN5Ua0zPXKLihE0WbZbUcFk32d8COSSl?= =?us-ascii?Q?I6YTqn4R6NfrVBnR8H5I1vw8aFAyha9usJx7CpyqWR1ECfliAQr9VjMbMwAY?= =?us-ascii?Q?z/GjoZCzwOBnstABs0SqtgDKDv32B4zFrG6dZuTSth3HiYo/VwqLhX3YDCL7?= =?us-ascii?Q?woRF/6mzp1gSO+KqUgdA6rCG0vEMLCz0MDr1tKS9bHCpUBbLxjT/IUo7LaP5?= =?us-ascii?Q?C3ZpfSxryjok3GhLS+l6VrIDmb4sM/V+n6o+2DHJKRMBvV+Y2NhjSeEYMA5+?= =?us-ascii?Q?sm9HgGNe6gw2d0+dPIezS/iGOVX563sFGQydsB8AfCPXNI93ykaQUCiGfb++?= =?us-ascii?Q?DlE1U7MoV3vI6KIcFCxVmrl6rTxshhgbI+sd/+QyedzDBym94uzB14FUqhZl?= =?us-ascii?Q?11oOJS2CA4/nu5Pv3vaU9ZmxVwwraLcrH+ltaz+01IzmrAEq8tl7zbaKjlQc?= =?us-ascii?Q?z4NyO5eUHO80iPwOljCrBU+9mVf9Ud2HiftHUYnl31Py2KLrC+P7xn/1G13z?= =?us-ascii?Q?+XAOM6syRpJKn7OZqDET0FY1EHVCeUuibU8sldEN1zTRwVYe0B7NofTwE6Q3?= =?us-ascii?Q?fo8Jr6knC8a+RLdQA6AB92oIQWzgxAlPLJoL0LWQ7zP0/LnO4Ywq71NVN0V3?= =?us-ascii?Q?Qg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: V9+5uRTmyzeGXldnUPDjq53sjUtigWRFEEh0akkgKmLQcfPUmNaox1cTP9/TLdfMvAFAEm2pr2WrGTVuilpRhG/YcAO6jqU4zep80PVXtLywMrd/xYPvRs4UD6cxxP30lP3HaEGk0+AAvAHRCMLGJEeHvd86QasLIsio5DKfLDvDhPgf0eOPtT5NHjo/UpLg7BzINpIQfD9XBl1tJO4zsaNN0TXy3LzNvhmEJwZSUbA5i/J01QgJYAMFfaxOci9pEpVegzHq29XMfWPlhA8jX6W/MChitjY68iRU2KFqsz+xxyfRFXX4Nzvqo0aNXo8XbTQ161I0XwfiJFiH6w1BeMLgYwurXgW4nZI19etoJrV+X/8+T1J/Mowh6kviPyoI3fdRGpb4z3xTsksjrjyNXq4mCjbrIiuSo2yVurqf6trwFrx3BIaqmyUPbvJ6GChvl3moNIiWXjvTMIHQuyFbJeXK19R21UslXhbuv7UHRg/UEtr0fZ4469clgbzGfxlBHxIIcpT+3DzQ9KxwmLb0cKsr5HYefaK2fV9bypj2kgyJ3n6z2mLPvKuwoyZ6l2JO4QP9/c17emFkYUptYhPLT8zRfxmppczLVMsspWg9ay4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 525208d6-db06-49da-8842-08ddbf4d11ba X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2025 00:59:48.8398 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: SeTJc3lvv2LMbyCqFAigrufl7j+4DL3Tsiin3c6CAX5XP5dQ10Cl+ZFHT+EddiaB9VbzZrEoMxkIGbGPA7AISjafKI/vYvORl4or3a/E19E= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB4832 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-09_05,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 adultscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2507100006 X-Proofpoint-ORIG-GUID: 0W4IwjxHywNAQrhRfHN13vesMKlJ8qce X-Authority-Analysis: v=2.4 cv=UqtjN/wB c=1 sm=1 tr=0 ts=686f1088 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=Wb1JkmetP80A:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=l6V3Glt4oJD2QoyZdxQA:9 cc=ntf awl=host:12057 X-Proofpoint-GUID: 0W4IwjxHywNAQrhRfHN13vesMKlJ8qce X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzEwMDAwNiBTYWx0ZWRfXySFc8vTUsZy3 wlmdbrVIks50qIQosW2rA2nFFHYFkyH3Ptyg5nhhlXlzG17bBd1bAFw0dlf606VT02bctxCWAYl MEvbQUA0+JgOtbubv/sQwSXZBGDEv4rptzFnK65RAC8zzjLSh2M6jbn3TCu+BtErlHw4273crrI ByrnTVpobq47MS0eUqBZmHtbEyPclvqgMIagNs9qvX3npYccVTfPskhHQM8ucMX8rFi69SvATKd 8zL7Lre06PVWmZjjd81HAWtk/yrsB+NakZbmj1M4aSeSEGByYWZz37vdO6kgMiuqte2ALxTdI3r GkPsp0t5k9lg78LB664GOlyjrB7XlqHVpBTtQ73+31BHFs4js856KQPNh2iXPyydynvy8Cg21J6 q6hGazhK8SWyJcU3w3c8N0UgcVaZA+5tKegGRaa5TmUbT3e6voBsB5y8e3iym0FYwzVD9E1E Content-Type: text/plain; charset="utf-8" Add two mmap() workloads: one that eagerly populates a region and another that demand faults it in. The intent is to probe the memory subsytem performance incurred by mmap(). $ perf bench mem map -s 4gb -p 4kb -l 10 -f populate # Running 'mem/map' benchmark: # function 'populate' (Eagerly populated map) # Copying 4gb bytes ... 1.811691 GB/sec $ perf bench mem map -s 4gb -p 2mb -l 10 -f populate # Running 'mem/map' benchmark: # function 'populate' (Eagerly populated map) # Copying 4gb bytes ... 12.272017 GB/sec $ perf bench mem map -s 4gb -p 1gb -l 10 -f populate # Running 'mem/map' benchmark: # function 'populate' (Eagerly populated map) # Copying 4gb bytes ... 17.085927 GB/sec Signed-off-by: Ankur Arora --- tools/perf/bench/bench.h | 1 + tools/perf/bench/mem-functions.c | 96 ++++++++++++++++++++++++++++++++ tools/perf/builtin-bench.c | 1 + 3 files changed, 98 insertions(+) diff --git a/tools/perf/bench/bench.h b/tools/perf/bench/bench.h index 9f736423af53..46484bb0eefb 100644 --- a/tools/perf/bench/bench.h +++ b/tools/perf/bench/bench.h @@ -28,6 +28,7 @@ int bench_syscall_fork(int argc, const char **argv); int bench_syscall_execve(int argc, const char **argv); int bench_mem_memcpy(int argc, const char **argv); int bench_mem_memset(int argc, const char **argv); +int bench_mem_map(int argc, const char **argv); int bench_mem_find_bit(int argc, const char **argv); int bench_futex_hash(int argc, const char **argv); int bench_futex_wake(int argc, const char **argv); diff --git a/tools/perf/bench/mem-functions.c b/tools/perf/bench/mem-functi= ons.c index 8a37da149327..ea62e3583a70 100644 --- a/tools/perf/bench/mem-functions.c +++ b/tools/perf/bench/mem-functions.c @@ -40,6 +40,7 @@ static const char *chunk_size_str =3D "0"; static unsigned int nr_loops =3D 1; static bool use_cycles; static int cycles_fd; +static unsigned int seed; =20 static const struct option bench_common_options[] =3D { OPT_STRING('s', "size", &size_str, "1MB", @@ -81,6 +82,7 @@ struct bench_params { size_t chunk_size; unsigned int nr_loops; unsigned int page_shift; + unsigned int seed; }; =20 struct bench_mem_info { @@ -98,6 +100,7 @@ typedef void (*mem_fini_t)(struct bench_mem_info *, stru= ct bench_params *, void **, void **); typedef void *(*memcpy_t)(void *, const void *, size_t); typedef void *(*memset_t)(void *, int, size_t); +typedef void (*map_op_t)(void *, size_t, unsigned int, bool); =20 struct function { const char *name; @@ -108,6 +111,7 @@ struct function { union { memcpy_t memcpy; memset_t memset; + map_op_t map_op; }; } fn; }; @@ -160,6 +164,14 @@ static union bench_clock clock_diff(union bench_clock = *s, union bench_clock *e) return t; } =20 +static void clock_accum(union bench_clock *a, union bench_clock *b) +{ + if (use_cycles) + a->cycles +=3D b->cycles; + else + timeradd(&a->tv, &b->tv, &a->tv); +} + static double timeval2double(struct timeval *ts) { return (double)ts->tv_sec + (double)ts->tv_usec / (double)USEC_PER_SEC; @@ -270,6 +282,8 @@ static int bench_mem_common(int argc, const char **argv= , struct bench_mem_info * } p.page_shift =3D ilog2(page_size); =20 + p.seed =3D seed; + if (!strncmp(function_str, "all", 3)) { for (i =3D 0; info->functions[i].name; i++) __bench_mem_function(info, &p, i); @@ -464,3 +478,85 @@ int bench_mem_memset(int argc, const char **argv) =20 return bench_mem_common(argc, argv, &info); } + +static void map_page_touch(void *dst, size_t size, unsigned int page_shift= , bool random) +{ + unsigned long npages =3D size / (1 << page_shift); + unsigned long offset =3D 0, r =3D 0; + + for (unsigned long i =3D 0; i < npages; i++) { + if (random) + r =3D rand() % (1 << page_shift); + + *((char *)dst + offset + r) =3D *(char *)(dst + offset + r) + i; + offset +=3D 1 << page_shift; + } +} + +static int do_map(const struct function *r, struct bench_params *p, + void *src __maybe_unused, void *dst __maybe_unused, + union bench_clock *accum) +{ + union bench_clock start, end, diff; + map_op_t fn =3D r->fn.map_op; + bool populate =3D strcmp(r->name, "populate") =3D=3D 0; + + if (p->seed) + srand(p->seed); + + for (unsigned int i =3D 0; i < p->nr_loops; i++) { + clock_get(&start); + dst =3D bench_mmap(p->size, populate, p->page_shift); + if (!dst) + goto out; + + fn(dst, p->size, p->page_shift, p->seed); + clock_get(&end); + diff =3D clock_diff(&start, &end); + clock_accum(accum, &diff); + + bench_munmap(dst, p->size); + } + + return 0; +out: + printf("# Memory allocation failed - maybe size (%s) %s?\n", size_str, + p->page_shift !=3D PAGE_SHIFT_4KB ? "has insufficient hugepages" : "is = too large"); + return -1; +} + +static const char * const bench_mem_map_usage[] =3D { + "perf bench mem map ", + NULL +}; + +static const struct function map_functions[] =3D { + { .name =3D "populate", + .desc =3D "Eagerly populated map", + .fn.map_op =3D map_page_touch }, + + { .name =3D "demand", + .desc =3D "Demand loaded map", + .fn.map_op =3D map_page_touch }, + + { .name =3D NULL, } +}; + +int bench_mem_map(int argc, const char **argv) +{ + static const struct option bench_map_options[] =3D { + OPT_UINTEGER('r', "randomize", &seed, + "Seed to randomize page RW offset with."), + OPT_PARENT(bench_common_options), + OPT_END() + }; + + struct bench_mem_info info =3D { + .functions =3D map_functions, + .do_op =3D do_map, + .usage =3D bench_mem_map_usage, + .options =3D bench_map_options, + }; + + return bench_mem_common(argc, argv, &info); +} diff --git a/tools/perf/builtin-bench.c b/tools/perf/builtin-bench.c index 2c1a9f3d847a..a20bd9882f0a 100644 --- a/tools/perf/builtin-bench.c +++ b/tools/perf/builtin-bench.c @@ -65,6 +65,7 @@ static struct bench mem_benchmarks[] =3D { { "memcpy", "Benchmark for memcpy() functions", bench_mem_memcpy }, { "memset", "Benchmark for memset() functions", bench_mem_memset }, { "find_bit", "Benchmark for find_bit() functions", bench_mem_find_bit }, + { "map", "Benchmark for mmap() mappings", bench_mem_map }, { "all", "Run all memory access benchmarks", NULL }, { NULL, NULL, NULL } }; --=20 2.43.5 From nobody Tue Dec 16 21:11:18 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1A1D526463B for ; Thu, 10 Jul 2025 01:00:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109216; cv=fail; b=gLqYqT4CyUXaKKRkEbv0j/l5IYUnne8I85uWRd9j87a6RgRW3uXArNr64p4Th+4RSulBri3Cb7k0rXufjTHSAYHT7FqWFx62yiaBrTfBgq+KFIlaj/OvRWUGcmMt6KaEewFUIouWe5D7Uooq/ov3VpXlCY963vZi/YCD9cL62z8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109216; c=relaxed/simple; bh=3oooZ8SM1yOSJWZGDJ9IuroQMoMnoE0X5DNllDwNy1Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=MgOtebSit0vtDChXgOqOVrHMAT6gC/NyddoG4cVXRkz8+evOp6bZNBsWtdKOOT550xqk4L6aGTHI4O2w5aAL7pl2E5xvWjoBy8OIxEfenxj3p/nh4HKeHsxag6Vx3oZFB7pvjSwFZiaIUYMmp4ujQ+O7LLg9S8JY5DY7cbTr7pI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=l7AxLon2; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=UD/eMiPR; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="l7AxLon2"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="UD/eMiPR" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56A0HDqD019555; Thu, 10 Jul 2025 00:59:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=BHfRDonrFd3Ok0P5ZvAEJqc1ZZl5CXYpmETngmoZ/iY=; b= l7AxLon2J+MW1o6A+955Yt4QmhUODpvP7bwZzHES/e7aawTe2sVFh4RHzUYZ7m/e 9zHUPFysSUT4iFWYiKr8o76pvBzcmgq71oOoriIx2k/TjwR0PlBQnDw8iczkk6yk 2+wUs172W5qcKnWvQKFo/mVDCIYTFT84Q6IcnK7uomBqF44RmXFIBJ1ZGeDZ7Jwv OTj/3WIzWEX513PbbwT65y6R8kPxiscXoimlD8WJRaFpf+hK+hbTSDyaEVOBXONR NsJNA4Mx4hEJFIcMMbmp+QKqTvxcDElL8DYDRQp0SztYp/2pXsG0sf29e6EYJT37 s3H9l6bu7mQf7vKYRHu/SA== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47t2u581p6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:53 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 569N4JMZ027228; Thu, 10 Jul 2025 00:59:52 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10on2075.outbound.protection.outlook.com [40.107.94.75]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 47ptgbms49-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JZvHhtksxAGJ50xtpuMbGaqIipsixX1s11+ceiVY/geum1t3tWxMWg7jpdMm6KCyT5wMwhmutcSRDBxKrmvnm/uZGfNPs6xAgdnT+HOtWPdOFgGUPM2l4X0o4d2GSMW72jz8VDF9J3akivQ3B2QxaKPfb0ifhtwlL98211SVUVdjU0W46qFp1t6Q9lSKK2VIQdDnTA+1s1sz8sPxGkuQtUTK72edZ6gfdcsXtFYC7VkXZYWaIjYGf2mbaN9QvFv16lxD023GbN+Yu+Jt4QLLURf71hy6TK8Uqfrvr++A0Gxioy9+N2F08Ye/jpSWHQ77cARKjNjbxsNgKPPqEvpB2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BHfRDonrFd3Ok0P5ZvAEJqc1ZZl5CXYpmETngmoZ/iY=; b=PybFvgl2PlxJh0IwV4GLlcKZvhZTizyDofa6s56zQOUgMLwYlT1XHJWNPGybDFcN7Wjz0UkJ/PqeI/Q9uI0MoqQkaYbsLxp0Xixjne3jMAIMQn3oU7fx/j227TirI4anoWgrZ9hj6XjYuR7L5CSwBrOOSvgjQQeq+cUbtKy5ie5GIhwLWeAbvHnckKliRQzzBe+F3wfeKT/CqtnzvCwWEWergy5EJmOQ0smc49heZLtFWJrUdAxR2Ag0v68QtxWHiwNcBuvoPqLgvUZLT3oJ+UrSEtBo0WTZBsTpi6oD98WnxvZmmAwV7E5MhH6a8OnQCnsWPLC8/ha9WsU1q/FUog== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BHfRDonrFd3Ok0P5ZvAEJqc1ZZl5CXYpmETngmoZ/iY=; b=UD/eMiPRZ2tZoMX5ec4SLCify7JceUDEJGPJF0h6VX2al1vwPk7abutTHGLfenM+VZuzglBvgEXul5m37Xf57gyfJOzBtarCstubszJM3Sw6r5gR/5CFpJphcMPEKgIU82+rFYQ+H9+v5nAiCP+Y1rnzHgEb7qDUlKO2GTXAuZM= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS7PR10MB4832.namprd10.prod.outlook.com (2603:10b6:5:3a6::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.28; Thu, 10 Jul 2025 00:59:50 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.8901.028; Thu, 10 Jul 2025 00:59:50 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v5 10/14] x86/mm: Simplify clear_page_* Date: Wed, 9 Jul 2025 17:59:22 -0700 Message-Id: <20250710005926.1159009-11-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250710005926.1159009-1-ankur.a.arora@oracle.com> References: <20250710005926.1159009-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW3PR05CA0026.namprd05.prod.outlook.com (2603:10b6:303:2b::31) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|DS7PR10MB4832:EE_ X-MS-Office365-Filtering-Correlation-Id: a7bfb25c-9009-4913-812f-08ddbf4d1276 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ZIHcGaEJzgiKsSsDSGwRERgrecTCYNXz5wlPpDTGl1/d0UFhQnQkY/j6x3uV?= =?us-ascii?Q?D9FgQcXXlHo4wnDK1CZt3nhuy+cd0+nYwtA1nwkw2FywM2JE9uP6o/VMz2E8?= =?us-ascii?Q?MQk0/5Ol1mt6TYFcsA6gRvDvRoyxXFZTsgTMC5PwlgB5CT3+7IwZj6q+OEJo?= =?us-ascii?Q?LI4J2y/jWSuCF2NH63Y2HkFXb0v17V243EMfM5haO1xACGGvaPkyCI3fJLGO?= =?us-ascii?Q?C3J91B2ypCrNfDx1TMw9ps/cLAjwvX8S4U5Zs6tydxPGGeEbhnLYgJD77iiX?= =?us-ascii?Q?1zu616DmF4XSvl5O8xD2aAcqkPqCTNpixwBcCAwMVhR5UK9vr+BiDYHjxxNR?= =?us-ascii?Q?QHTuOMlzVVoRvrdNUO5zmoLmfmLqx6S0nyBtZw7mk4maLR7ks1eO1aBhRqR7?= =?us-ascii?Q?Eocp3zhQo4d3scHcxEiTiEAD7ccw9aQUtSMKNqr8G2nLUM0O/mcJUrUjshVt?= =?us-ascii?Q?BP/Lx6UzIqm129YNJDMY7kf2DJIb3nHM7EtZZ1DXO05h5M5jkysOaABlzLje?= =?us-ascii?Q?qGxIUnsdW1gsIVEjtwjNl7Y6wOW+ImKOaW2aHcZcCOU29NQgAKzqelISjKHv?= =?us-ascii?Q?Lk8uHQvreXdtK2yRrDguIpW5UC0irMXWresBte1xek1e6j6ZGCYJGdq4Cmo3?= =?us-ascii?Q?hOY8L8jitjUslSHiaur927VOGAcWYBlV5JMDWjbkqZT9qWS2MPprOp1LFH+M?= =?us-ascii?Q?2sUjDwfUDgkrZ7NqVXKZNfGlgN3IsfKwiBRfRqCtnn8GxtMMDO1K/0y7xcje?= =?us-ascii?Q?hn3l82EVKUtkntew46PP5F/QUJOz6NEFA0MSv4booR7JKg0QEgV+ASmEdCZ0?= =?us-ascii?Q?r8s2jCmZDg3mvG2zeTeo6TyYCFo2fHM7+axr4/dGHEW4bWwWlIj9LPReyfVc?= =?us-ascii?Q?20nCPaAoFctiGsrJxxF+m0+ALhZb6JP+DozqFmQPOSoq8bqViWu7SzkWoglL?= =?us-ascii?Q?iev/7vbSJ0u34fXSqZrcuefl4+5YzA+xmbH/rvgBHOzsKYs7Xlgj0J7ElSpb?= =?us-ascii?Q?IPb1aTGlo5PiFlzeb/NnFWBBWCo6ZPVLpC/Qc/4DHZnbRVKlvsHYGq0WH32A?= =?us-ascii?Q?BAQATL6dERke2OeXLVc7GHHNABRHcXQ5KGfwqVhsGbTkal7XEcvFQhdCrk9a?= =?us-ascii?Q?HnOtWQfRgVGZblCOhIPQzx8qQv31eUybRMu80ZPSLL81S0bGk23uIt9H4M4u?= =?us-ascii?Q?8AQbrV7NRWtT/8OwW+XSReby92KOOIMrKNTWFtjuj/54jSUUNMMjLq6GTRiQ?= =?us-ascii?Q?Jl+At/9/FDHXikfScFaSlrteeIbcVY1yMvRJ5eq3hijjnjKOkHn+7acWL0Mh?= =?us-ascii?Q?AmzUmEaQP4OIs+jk7cKUaMdAcG7dP5kHLV9czXibl/hRBAM4fD4B4X7V/+br?= =?us-ascii?Q?804BSQDa1pHR141zA6x8xZvFqD2tX3CsO11xcOPt0EdcZg4JCwf9qKRSjDQK?= =?us-ascii?Q?llz5uAlAbN0=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?EqB15RR2JsQnimPA3HD64pUUkPfOx0bhrw53StaixjRjgyjD80jBvPJL/Wc9?= =?us-ascii?Q?ygNJYqIRHI4ogoPGvoKJUGDCo4MFTaFeNG07H0TxFjvm79fTzRS7V2QsXRrz?= =?us-ascii?Q?owvpUZLJxf6XtSATxnji7cOw69l/3VNYkw8NzkFeRkbrPcfNx14tmi3yUFmZ?= =?us-ascii?Q?4Ftka+Cc+Kw+GXc7RK0yoogTVTvXuB5GIukBENRXLJfCLj2L3B1sk3Fymxwz?= =?us-ascii?Q?vP153fRA6IFnU84YmyQyh0I5mgUkgqZmAQoZGp4v0MQ2dUcrYjoPi4GkDtMB?= =?us-ascii?Q?ItGnJ6Ky4jT/jk+xyQK9v/nCzk4gqe9LVUXbAfuq7QUmSuIkMoNjtsagbxcC?= =?us-ascii?Q?XBCiPA9gnHYe/MArvZ7vOSW6CoxFJZ3aLvCVSnetk2v4GMteuFvOg8wF892t?= =?us-ascii?Q?Xf1ePA4/LXrtAbf/JZh9VA4/GR8a+vj7RvHxmmENNWdZCBJjPZCbWAf190pf?= =?us-ascii?Q?ps1nydYRd3th6hVTiciSYBa/iYH34PPFtITuWipPQdaMDaVwpBvPMjCOf2EX?= =?us-ascii?Q?hk0jghZMowcVlXWEBn9Kr5r6+EbBHNIxw7owhEhCW8Kl726kgRRHUKJZlNp+?= =?us-ascii?Q?pbzFXDBrokfyjraBoZUarfDMk91bHGLkvUo9/hE9eg29fUTeV6u8nb11ofUb?= =?us-ascii?Q?Ney4gxxuf5ACe+IY9y1jkLZosdPDTmEQGT8LZu6Jx9u2u/8AyeFkhX4zxODx?= =?us-ascii?Q?3+6eBbFL4qEC08ecKNDOjD4MdiZed1vaWjDSKWzBfmuj2NLVRSMYsJN+bI5G?= =?us-ascii?Q?oFBoZ+ZCXHeIuc+MkcyB6Lp5QzJ8QDV98SZEMrk48hgex6yG5qGRiQNhNe3M?= =?us-ascii?Q?kzKUHkxWljQ8phy78DhuLaCGxtbhHTN2swV/7kHUFutwt1+WfQWjkTxeDsZv?= =?us-ascii?Q?LZfpPNu8KLg3oPLxZVRR6khNAEO0TJGwEkA6hoVjQtMLEa20HpuTWFirZ862?= =?us-ascii?Q?RiKyOFopp2MXWZdqhL5EqnHx2R8x+aCeTkLuuR30pptUNbZMPWa14pKmpaed?= =?us-ascii?Q?gMLXK+v/5Gk6nqLeNK1h09a4EwtT5bAosJ1htrCvyvmJK7P4W+JJWmz8as63?= =?us-ascii?Q?40nz+VzmuXMwtQcjeTxtGBtOy9A38lffw3fpFPziVqBi7vq2RIL1t3gsN6wy?= =?us-ascii?Q?yH06oPiC0qswm42xKSf7U9D0ZHVLNhq1tP23BfzU2D/8XhLDJuD1/wwJH2en?= =?us-ascii?Q?7ztm7nZayOOX6bWiKKHhka1rsvGINnAWEIPiFYIsHgx9NU/wufFHpJxzAJIX?= =?us-ascii?Q?vouElRR6E4o/bR9S5bRWA+fBAfy3n+di6K5G8ZlFOiwzGSMPl/i4rRRjHD1H?= =?us-ascii?Q?kbwjvxXpdfDiDErRjMkuRLA8aNjOwPKvk4J/7aeNp+6Ft2lFFa0DQcG6PNcj?= =?us-ascii?Q?I1QBoA8cSbQFL58tY3jVeZfCnfhejx2Bw/U8mg2KEU2qh/gfE7+LzQHRCxm8?= =?us-ascii?Q?ZZGBzr8xi8GyvwLqBNpzfIkXMYs+gAb6oeEYyWC+8RctqJ8JljDp1MBj4UiZ?= =?us-ascii?Q?7NKeX9GiXzcaVYP7dBJBFbtlDBq/q3vRJuoDBqArSH15cQA7tUwU7QAan3Vy?= =?us-ascii?Q?PQGVskLN75tXAWDyg9FgZfsen16ClzTap0ONiSb1IzO5JEDaCu7YO2c/6v6z?= =?us-ascii?Q?mw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 6qx7DfLyXao6Ecu+SV5LnJqX9VEilPsZYCcBdT9M4uoewxbHoFlc22JOzjw/SNzeLs4+hsUiNWgDrhvviWb5gEMg9IuMIDu6X19W8hVb2XTegaqrMqSce6m50nCSk7aSsY3pkChx7oibfmwGuE/xETrYKK/hjaOPlKpumLF75k91Rbz7E6WF05nDX39Obo8Xl9YSpo0cMaA5ARuGa7gQpsontPC/UXLtEEjJ2uqWAiHKyvq/LIr+pXqY3bM3FKt8/bu0rKDELpFTDYJfYXGo5k9TuiPPxMaRVNrnwju5SJiewLGIH+FfqTiphybbAXUgAZR0U7HxsdH3ppjaHfsZg6BiVwkLhOzvRmbCvnsYC43xzM/Z/RtdTnEfkpX5MbEeBFnArH93i3wwMMyVfdDIUmbbNSfu7rKDVqu0+XdolXyB4TfBzCMJYVBuKodppdD1EQQylk6Lhe8Ml6EFac4mvR4PzoO9IJMCakakzXUBupMs66yh4wMEGZrm12MAFN5vl7njKWsLNlzUeanyjQwHFIRIydB0eND23eq5SOzzra5s5b0Zu9xObFZDyD+Na1m/omHtpdJ4YmED2/AQpUesFBXB9mPPmwNWZQ0xyLMKYf0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a7bfb25c-9009-4913-812f-08ddbf4d1276 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2025 00:59:50.1096 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: xrsmqZ3NabttyDoA1TtuYTqsirsRsIQLBjZI3GR35zHjmAQe34BJBzEXYTOAGTQ+n9iPmTg8DaRsMCNR3St8ZDPAzwAJaRDW7hPP+3l+ymg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB4832 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-09_05,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 adultscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2507100006 X-Proofpoint-GUID: maD1mH4cHMZIDiLmFvp5e5cC040xnS3g X-Proofpoint-ORIG-GUID: maD1mH4cHMZIDiLmFvp5e5cC040xnS3g X-Authority-Analysis: v=2.4 cv=Av3u3P9P c=1 sm=1 tr=0 ts=686f1089 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=Wb1JkmetP80A:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=3VxSRnZmKhVynjaijvUA:9 cc=ntf awl=host:12057 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzEwMDAwNiBTYWx0ZWRfX/IEIhL71hlTQ VCXawX5KG1FAe4E8kTtavIvn8J6I05UsQT0sRh6oezttChgZQW1wV+BSWneoYCFkZQGxATmU6Ca IHuHcAZwhjEUXEtdM3XLgEwGK95gCCY47ZjzWSCE8HGVnjfWc/xxI3YuiOTieZWD3LzlOayhD/9 XCHuUWt2ySpg9orrP8zt2BaTlU5DII/dc7wgqGlXQOlxOxqceOGXIRfXlaa63X8UzguQ9cwEdsZ zrJkt0BpX0snVjc9hEM1IotUZu1hv93TWTSWh/XdE8su0ltDVa3SypVxmAS6ZVXgnT1WYm83JJt n2KLvW9rz5dGYOvXeYKlPL05qHwAQ6Tu7dfdFWnJaIK/X1I2tinU/Hxiq/llgoJ/B2T3joJ5zra 0QoZHtx+gwHOB7q8xxjTcI7BNgWOfxeVviI7cQ59BkTBbPYFVSPcc11u8J4KiVQJfZLWZKFm Content-Type: text/plain; charset="utf-8" clear_page_rep() and clear_page_erms() are wrappers around "REP; STOS" variations. Inlining gets rid of an unnecessary CALL/RET (which isn't free when using RETHUNK speculative execution mitigations.) Fixup and rename clear_page_orig() to adapt to the changed calling convention. And, add a comment from Dave Hansen detailing various clearing mechanisms used in clear_page(). Signed-off-by: Ankur Arora --- arch/x86/include/asm/page_32.h | 6 +++++ arch/x86/include/asm/page_64.h | 42 ++++++++++++++++++++++++++-------- arch/x86/lib/clear_page_64.S | 39 +++++++------------------------ 3 files changed, 46 insertions(+), 41 deletions(-) diff --git a/arch/x86/include/asm/page_32.h b/arch/x86/include/asm/page_32.h index 0c623706cb7e..a8ff43bb9652 100644 --- a/arch/x86/include/asm/page_32.h +++ b/arch/x86/include/asm/page_32.h @@ -17,6 +17,12 @@ extern unsigned long __phys_addr(unsigned long); =20 #include =20 +/* + * clear_page() - clear kernel page. + * @page: address of kernel page + * + * Does absolutely no exception handling. + */ static inline void clear_page(void *page) { memset(page, 0, PAGE_SIZE); diff --git a/arch/x86/include/asm/page_64.h b/arch/x86/include/asm/page_64.h index 015d23f3e01f..28b9adbc5f00 100644 --- a/arch/x86/include/asm/page_64.h +++ b/arch/x86/include/asm/page_64.h @@ -40,23 +40,45 @@ extern unsigned long __phys_addr_symbol(unsigned long); =20 #define __phys_reloc_hide(x) (x) =20 -void clear_page_orig(void *page); -void clear_page_rep(void *page); -void clear_page_erms(void *page); +void memzero_page_aligned_unrolled(void *addr, u64 len); =20 +/* + * clear_page() - clear kernel page. + * @page: address of kernel page + * + * Switch between three implementations of page clearing based on CPU + * capabilities: + * + * - memzero_page_aligned_unrolled(): the oldest, slowest and universally + * supported method. Zeroes via 8-byte MOV instructions unrolled 8x + * to write a 64-byte cacheline in each loop iteration.. + * + * - "rep stosq": really old CPUs had crummy REP implementations. + * Vendor CPU setup code sets 'REP_GOOD' on CPUs where REP can be + * trusted. The instruction writes 8-byte per REP iteration but + * CPUs can internally batch these together and do larger writes. + * + * - "rep stosb": CPUs that enumerate 'ERMS' have an improved STOS + * implementation that is less picky about alignment and where + * STOSB (1-byte at a time) is actually faster than STOSQ (8-bytes + * at a time.) + * + * Does absolutely no exception handling. + */ static inline void clear_page(void *page) { + u64 len =3D PAGE_SIZE; /* * Clean up KMSAN metadata for the page being cleared. The assembly call * below clobbers @page, so we perform unpoisoning before it. */ - kmsan_unpoison_memory(page, PAGE_SIZE); - alternative_call_2(clear_page_orig, - clear_page_rep, X86_FEATURE_REP_GOOD, - clear_page_erms, X86_FEATURE_ERMS, - "=3DD" (page), - "D" (page), - "cc", "memory", "rax", "rcx"); + kmsan_unpoison_memory(page, len); + asm volatile(ALTERNATIVE_2("call memzero_page_aligned_unrolled", + "shrq $3, %%rcx; rep stosq", X86_FEATURE_REP_GOOD, + "rep stosb", X86_FEATURE_ERMS) + : "+c" (len), "+D" (page), ASM_CALL_CONSTRAINT + : "a" (0) + : "cc", "memory"); } =20 void copy_page(void *to, void *from); diff --git a/arch/x86/lib/clear_page_64.S b/arch/x86/lib/clear_page_64.S index a508e4a8c66a..27debe0c018c 100644 --- a/arch/x86/lib/clear_page_64.S +++ b/arch/x86/lib/clear_page_64.S @@ -6,30 +6,15 @@ #include =20 /* - * Most CPUs support enhanced REP MOVSB/STOSB instructions. It is - * recommended to use this when possible and we do use them by default. - * If enhanced REP MOVSB/STOSB is not available, try to use fast string. - * Otherwise, use original. + * Zero page aligned region. + * %rdi - dest + * %rcx - length */ - -/* - * Zero a page. - * %rdi - page - */ -SYM_TYPED_FUNC_START(clear_page_rep) - movl $4096/8,%ecx - xorl %eax,%eax - rep stosq - RET -SYM_FUNC_END(clear_page_rep) -EXPORT_SYMBOL_GPL(clear_page_rep) - -SYM_TYPED_FUNC_START(clear_page_orig) - xorl %eax,%eax - movl $4096/64,%ecx +SYM_TYPED_FUNC_START(memzero_page_aligned_unrolled) + shrq $6, %rcx .p2align 4 .Lloop: - decl %ecx + decq %rcx #define PUT(x) movq %rax,x*8(%rdi) movq %rax,(%rdi) PUT(1) @@ -43,16 +28,8 @@ SYM_TYPED_FUNC_START(clear_page_orig) jnz .Lloop nop RET -SYM_FUNC_END(clear_page_orig) -EXPORT_SYMBOL_GPL(clear_page_orig) - -SYM_TYPED_FUNC_START(clear_page_erms) - movl $4096,%ecx - xorl %eax,%eax - rep stosb - RET -SYM_FUNC_END(clear_page_erms) -EXPORT_SYMBOL_GPL(clear_page_erms) +SYM_FUNC_END(memzero_page_aligned_unrolled) +EXPORT_SYMBOL_GPL(memzero_page_aligned_unrolled) =20 /* * Default clear user-space. --=20 2.43.5 From nobody Tue Dec 16 21:11:18 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A6917266F0D for ; Thu, 10 Jul 2025 01:00:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109217; cv=fail; b=n+ysamo3cTluX5jJEVzDtYxuc78FrYkH/TbOEgMm2PIiPIISGhakHRDc0CcuAQlMX6++dpaZKfGbLY4rx0ZSYiU9bBpv0muEAexY5MFCBc8MdIrOaZ/knDml/sG0hm/XMf6oakb9dCKleR/KP6GEQulpsO9N/w3X9I/T4wl9AdQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109217; c=relaxed/simple; bh=ghY3UfVL9wZwUr3S46XouWlTAtxyyP1nKgn2JIhOvBk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=IzDQIcsO98kboc3zUeaqEnOmfRmYMrMhQEtKeHYTD1BXuDzicDoaPVf/arcx3xbkmzM/yvQ/PtUMKTwCycuGm+bnDkiXoDY/jf/pA32EPsGWdvCWppS7xFKrHXH2FEiWqP9pXENVdDVq+wYwF19Q2Tp2wW3MiHDt2f0TL0m/Z5o= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=Cm1ivgJN; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=rszvem72; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="Cm1ivgJN"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="rszvem72" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 569NJ0E3013830; Thu, 10 Jul 2025 00:59:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=6F8We7Jh5eEhiBzLRs9JGL1d1+COXf+4HC6sAYVl7XY=; b= Cm1ivgJNaEj7ulm2xhc0dyyzEJt7LaWCiFPobr3cD1zWdhZZ/ca50+VJUmFnkjYp 1yGQOh/14xNhPIne+QZBeXaO/6sfngXYRY+PZddu9yxPWpbOn7C1M0Y43VrAB96b FLpf2o2S0PnFTpd47Z0GMWXa7GqpVeRGpreW5NCGidYUOvrVRAAYPRWo/h2uelLY qc1OtIOHY4XxuTUdGKcEFt1HYakZFTmKi2ypmBS/Tx5dzTK6uvFtexi14cBNDRHj 3d9a75cm3jtekB6IqnBaF1V2NZbYicaCqybK2LRhR/HbhFvB70paDRrtftUQ1VKD x19+eNIzcfhIcocqCYbmcQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47t1y103ek-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:53 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 569N4JMa027228; Thu, 10 Jul 2025 00:59:53 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10on2075.outbound.protection.outlook.com [40.107.94.75]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 47ptgbms49-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ho9g5TLRtcFwCvrnTNQFXzCM5w5xm246iH4g3Z3eaikhnQB6d5UZHeO/dTN6RmPzGzr2ITJaesfyoxcGBWACGKPdqVHZNLyNn4QDTcqp4ljzvbax8x1P44xrsN4sCSv8BoDQD/dZePZWQYUJE7MGWxPeF4VrQNJ5Sy+ekSctlISKJfsSAS+ET6UVx96aNyHAggeyKlK7wHzQX3FbIBN0V8RhieuzvnfQpuiIe8ETZgmN1644iALUXwX8VfqxhWYeg9CRu4h0fI9MZqRKfwlpkGXxomyf9R2ZloYDhjHrEf+gfUezOLqTkEnvYKAn9QqP7LNi3FFoumEfWKdlo5lqzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6F8We7Jh5eEhiBzLRs9JGL1d1+COXf+4HC6sAYVl7XY=; b=O30yIZonEzmyscp8KETvLWf90lM2AWkrVmxAgUNlVHDh0uQXBFJyptK5w2u8yfnBj9RJwhWgmJS1pcT3Lr8m7wuBvbytxKWZKBixxc7mcCJvR7Mn5vI7FxKnymaKiWJ9sVqcUqCs9YiSprK4LXfsWTLm9WdXHrCxMpCxcbIYoT7LpiYwDEjWl378R//Y/NwRvuelQWL/ZMOvqc4JDZ1IBhWZhln0Wz9BsMKjnA830zzNUH8US3FlTsnOyLzrUndtUIsWeCylC7aCOrBs1xIqeJCw4VH0+klWiOiTpXa9DR73OjRxxziJHlZS17HDVvU7nsaDuejqNCKfZrrr4179Jg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6F8We7Jh5eEhiBzLRs9JGL1d1+COXf+4HC6sAYVl7XY=; b=rszvem72x2ROHaeX/7fC4WQmydUn5F91EjGj9K8mfoOq4jjcrpWRLPzuF3Zq+SEXsRNG6BsxBkqFdUt0gZt/vxuu/u/Q62UC4tcsyqPzZABKZ0GE4lYZDIlVZQsPr9fgbutJxuJ6ARc6Bt42FUVWdZmEvs0K3Eu6CBu0seUXqrQ= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS7PR10MB4832.namprd10.prod.outlook.com (2603:10b6:5:3a6::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.28; Thu, 10 Jul 2025 00:59:51 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.8901.028; Thu, 10 Jul 2025 00:59:51 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v5 11/14] x86/clear_page: Introduce clear_pages() Date: Wed, 9 Jul 2025 17:59:23 -0700 Message-Id: <20250710005926.1159009-12-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250710005926.1159009-1-ankur.a.arora@oracle.com> References: <20250710005926.1159009-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4P220CA0009.NAMP220.PROD.OUTLOOK.COM (2603:10b6:303:115::14) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|DS7PR10MB4832:EE_ X-MS-Office365-Filtering-Correlation-Id: 52618dc8-b6ca-436c-9496-08ddbf4d1343 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?U9Qz+OCxDpVef4IivzwNpP03QQJRB+CX2R5j9NFwJtovyzN5L698u4R6FdSI?= =?us-ascii?Q?USd2fuvuCcmBbrZu4BLE0lU52qtgbJsKVeHCb+7hZcEJsSKfjUD3aXpvDssn?= =?us-ascii?Q?AE9kgAIxepxnkkDoF5l12uOFL4ibk5kkxAAj7fZcYM5hOustGII/77of3XXU?= =?us-ascii?Q?RDhkNImL3AHAz2m+Rn8IoAKiJ5E7SitkVhDetk/hgi9+lRQFqlytzOiE36vL?= =?us-ascii?Q?OMz2fp9JwTC2iVQX2nT5YU6MXnn+UzdRhGN1iyyrRqCnYqXsxq73yHAIshAy?= =?us-ascii?Q?dKj6+sL8h8WHtPIqua86paDFX6KcNwRQ/wD6KOcChjDW1uKjm3Q5GEv/D0t7?= =?us-ascii?Q?izo1EUal6Zm7ULCHstJh577bIcjQus2ez2piFc/zotgMQK1SuGysjR94j8sT?= =?us-ascii?Q?uZrTZQ+i0o7uDXEnfNpFCP74oogZiRs1vUIVE87C4WgCmmQHVNQvx+xtUNO1?= =?us-ascii?Q?TTSKC7qn389Ny8EjzVgYZHdiMzb+4V4L/rPDSPNwcB9O6Hk72pDHvlus+dyT?= =?us-ascii?Q?WG0qIJGLa/tUimJWsQm27Ut7hI6julpdDIYxz2ZiTJlaOYhlI/sgDzwsr0LF?= =?us-ascii?Q?aYJ05RuQD/phBZYUqXIidlnSftz8WJsVu7/9ALJfL9uYOz7W+g6GdSFHm5ub?= =?us-ascii?Q?2+9I9u6Pl1iZML6MN1Kz8EW8otFClgpFnsx55ppbEH3jf/EQBJBb9Qt6x1c+?= =?us-ascii?Q?FnOPyrLnhNAhKFlznxmSkRI43RO/8Dd5wkoDx6T6GZw7ri+km1Q60DoLCVO0?= =?us-ascii?Q?MDfS5AhreI4NPugowmTeiCYOOBCe8OwwplzreKXuLxxAUOjg6r0eD0n1Pv68?= =?us-ascii?Q?xTak6MfWeFnuxnbFHCM5Sk5q2eB4gx1+iS1A30uZuKnxOr1/Ca0SRgGlJEJy?= =?us-ascii?Q?/mN0/Fr4YI4RJytOfNGiBez7pzBol2Z+timMxmuRLtkVXs/2ggYa8RbhhkUw?= =?us-ascii?Q?yUv6BCTCNIRtAAadiMkUp1W035DfAt72YV7oxuYXLuN1RPdsAS+rzy+9vGyu?= =?us-ascii?Q?01uy2O1/SV/Vo9XLe/YR/mUXwJkiIxopk9a3jH0GxyeqYU0rjHxYg7DG3Jio?= =?us-ascii?Q?vnbYTV1azQ25Rp1ySQ8h5at/YKgZTyOcWhXa8qJIbTelO0Tw716McbX6zERN?= =?us-ascii?Q?or73kgbEdAVRZJ8hCkU777HpJH/h3i9XX7ev5xDS8SvXwcOdrlRzVVY3VAiT?= =?us-ascii?Q?VfJiyDjVqqNMf8RKb+PxrW7esHXQuttl+KD9qeNRldw78OoVN4WQPCtKiNCF?= =?us-ascii?Q?Yt5/qSYpaTVyYgCEOAED86UzIKSOkxRFbX/n7KI55Q3dOuF7+ikXI76BuiqA?= =?us-ascii?Q?DaSmi3FO+k1S0UL0mUDedJu887SmpJeJnt2TnG5hEY3uNPyaIUVQdetX1X6j?= =?us-ascii?Q?LHeYaFtveLqqE481I4ibPWM5cCKV34je4xqvLdGYJ85wzubaAdD3wUN5L4Xy?= =?us-ascii?Q?8CL2j7/hKmg=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?hPbKB2xOkPg/PkAmY8MRAIeZukOzMOjZUor0S6OlRMeQqqqi/nirYIitn1T8?= =?us-ascii?Q?4vK0tuI32NyIOYgS+gVGI1VYtzUtQON7p9iZRQZ6fB80R3EUuc9T7Mvi6Jok?= =?us-ascii?Q?PbLB82pqshnFNXnpjxw5XIQvPJpO6EQmvVg0zhFXL7G1iclZUW0d5OiSP79e?= =?us-ascii?Q?8uExdXwE3EuCy9GbBmjVbsliuzE+yaC1B67JsTlEYi7Uf1glydkmToW/DECo?= =?us-ascii?Q?ve+71revIuiq+2WnWd40EGGvft2gLFPwtH5hvEsE4515OsbjRCWWt7P558V7?= =?us-ascii?Q?gmTA3Pk98PtnJ1NWZYAutZ8q1gqx0HJ8BdOb7Q5jaM5RJzh0tDAtr+O66v4b?= =?us-ascii?Q?xfoPin6yOn5xPf+IzVeSopzpQbxYJFb7vORR1tm6aYFsQwbx2VdWDPi5inUT?= =?us-ascii?Q?V3aoPCAxeWAh7p7dEA4BYSLtMcicj8XyKza1EUKRahMRz3ISsjSp1UwE4GqF?= =?us-ascii?Q?raHIVYyidu+QeOUqLbIj/lmSmSH2UGHslK7/b69yWc1JHF4qo3748NLzCQUK?= =?us-ascii?Q?mbqrKLQgBVgMdkE2bhTa0aDhAMMX2hRr2FV1huEKTDjMWdOWdkI2bAAVv3Qn?= =?us-ascii?Q?Sj7TG/n9lKSt7PmkpEQ4AGjQMJOaupweQ3b4hRMGvUjTKZlCR70eayNdHAIC?= =?us-ascii?Q?dSp0JHTWQWSeMfmIuBghqZT8ihQU0EvHQ4E5oYJFOBRZFkOZ7OBpQyJS4WvI?= =?us-ascii?Q?21JbT01mSCVzlcvz7uHT4Pu+0Mtfe5gPNtGXd7Pmd3xrdnvqfRKl4I0orv1u?= =?us-ascii?Q?pmWeENFn4wuTAzkxcnwBn5CJC/O+rm8ycaBl2vxOKbmckhm1nRCdWdXkugjv?= =?us-ascii?Q?KWhmL5zLWw4qPRbTG9wO1JCgWk8rcgC92xW/56dVUDCOVkkG0xrhVSaEHyX/?= =?us-ascii?Q?qR2KrsWH+gQ06R7NnxLMOssgAy58Lcrk6Rfc+PeFM49eoRyw/6/2B8M0LX2s?= =?us-ascii?Q?FKha3xhXqdEfgpyI0YFu7uH50PJyVm912oMvcY31qnMtgVBQzMC7EGp0qiPv?= =?us-ascii?Q?lgK4jfUWWBfvcYx86q0/BqacOJK7Gy5p+klD6gtfBo1pzfG6+2LkTDgpwvMC?= =?us-ascii?Q?L8H+xPlo4CCORLlIkPza8JrNJSQ2iudpJTVWm5ehPt5SpCjQX7oxddaPo9vi?= =?us-ascii?Q?kFnmtSEppxnuxJBlgLrB+aIOQkxXvSqtOpJQUfFlfS2cApLSMZ2en2Y7g2wb?= =?us-ascii?Q?5m9FfMOjd4+DdBlkrP7deaRcezKbuqAevb/un/FTmt0fnChVpo/kMQ6cMb2B?= =?us-ascii?Q?tfJZlooS6u4RDyk6rr5mGttiJoe/j5mKk2363C2lBci6ZQP1F5S3WX6mU908?= =?us-ascii?Q?kBHtBdw2zknTzFqxxFJL+ywNtcF9IqjPJf+xVqBiwbKUpDCs9YYYRozZQHl9?= =?us-ascii?Q?5uK4ljQfC+YLKBahmVgs20Y6yne0J5eMrXtRQXRg8kKyIhioQKtgUvaFSHep?= =?us-ascii?Q?nTa7opjUuz2N5/Uk+Je4k+hPdFjBimLdhA7UjeH+Fga8T/yxcJS/da+sAPUB?= =?us-ascii?Q?Tz/Z2tMsEfApjDSyJ5ZdyFcOLNDrOLz3MA8lyUyaCJyhXA4XGZmO8+yv45ev?= =?us-ascii?Q?4e69e0dcSFf/3KoUbKtYorbmF3ePsp2Elp0OtqL4EewwFxeiAbunY8lIxXiW?= =?us-ascii?Q?4g=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: pFk54Ys1n7QWRPpubJL1Wn+H2VGX5YR2kt/i94RitIJeg4+qKaJhkd4dl4jEnHt4VfHrvwIMMnAurk0N1HmuyXDZILc9+A8ktMGuu0yv5S/6MfkKBisoTZk6rMJixtmnppkM5OyYA7yrSwI3M6cVEaHw3QjvqLAKHcyUsz2fx0gtsxNh1ectWyROtyFJ+y45Z25MtFSJOslr+F6VFSLKRlF7K3KHyyq286MOq+3tQves4Hn2jVLRdkPERsqod0XbLuomUgcfTBDoSEuVoS8y5jPsJxbKtyb/Y7ydsa5/k3D2WpdQ/CTvQZq1hNHb+sX9oYpfc5uMkVKiFGQT4Ph+tX7GsEuZwKDjQXWYDBRH3M8MkSRNodeX8t65eqAbMaddSZqHgh/222uKxDFV2LLAQdnwoCo9b8IsLKN1c04B2TQAkZxFogxOQOnJAhX16+Zdm5/+tdHVI9OMxAEyG7/xipHv5jHAG7Nz8ukMAGuDe9pAJgTR9VaG1/OqycymA5pA1nz6jCjduE7shb24eGxXEDx7GakbFIJb9nbXETiQRPCGkDgdqfjt8XY91ueV/FxbNYofkd/O9rn6tVZAOYbLtC+//JrbTbdzxr36iiCek54= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 52618dc8-b6ca-436c-9496-08ddbf4d1343 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2025 00:59:51.4051 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: PsKmWNDQfphWw6po96qxHjnnzX6Rp520VoJJdPRsKFIMeIVzYXKV6xdTsHjYIBP9BxKnGZ+9HbslClFHEKiBT+AQY40KA42Br1tBCMWNSu0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB4832 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-09_05,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 adultscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2507100006 X-Proofpoint-ORIG-GUID: RItuxc2isEBk2xvAdcL8xr_JkmkITGUj X-Authority-Analysis: v=2.4 cv=UqtjN/wB c=1 sm=1 tr=0 ts=686f108a b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=Wb1JkmetP80A:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=Y0x-23rrHKlNlQ5AJ3cA:9 cc=ntf awl=host:12057 X-Proofpoint-GUID: RItuxc2isEBk2xvAdcL8xr_JkmkITGUj X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzEwMDAwNiBTYWx0ZWRfX4LjkedkFD/Ml YJsgVRhF1BP2B5DYR1izTryZ2HNWBj+L3rPy1J46BWHvpJvl1XeaABMyTrKtypqbFMQhe2cjuBV vZZM0RwtHwojsbalhWBnzQPcfT/l0hriy0nR7TnMlRMl1Vv3gvwO33qHCrzxZKABzIkAWbPShSo r4KDx0fN0bTXMwHN70QMBg1aD1bfEjPvnZdjccWFldpPU5O3rah1IYTzm82YTZFdBOF1wsyj54W Fwwd6gaGRAcE9k2S/BO8HrlsvdWAZjjSEYoQmnba6iyNFQWTm6Q9zDsdHvQKOuVyKmjCYjfl9Uk TsmlHUhDmUbdIjyqqeWWH5Y61iSEIQ3PxSA0mW2I4g1d9dsC67Ige0UMiqYoBHgvHgv7GSI7KX5 3Pwg0ap1BO4DoFcu2f7NIiKIKPO2d9ltGJeoPW3NiaWPzZrxt+3q9D4cGkAsLYJZZIZfxX52 Content-Type: text/plain; charset="utf-8" Performance when clearing with string instructions (x86-64-stosq and similar) can vary significantly based on the chunk-size used. $ perf bench mem memset -k 4KB -s 4GB -f x86-64-stosq # Running 'mem/memset' benchmark: # function 'x86-64-stosq' (movsq-based memset() in arch/x86/lib/memset_64= .S) # Copying 4GB bytes ... 13.748208 GB/sec $ perf bench mem memset -k 2MB -s 4GB -f x86-64-stosq # Running 'mem/memset' benchmark: # function 'x86-64-stosq' (movsq-based memset() in # arch/x86/lib/memset_64.S) # Copying 4GB bytes ... 15.067900 GB/sec $ perf bench mem memset -k 1GB -s 4GB -f x86-64-stosq # Running 'mem/memset' benchmark: # function 'x86-64-stosq' (movsq-based memset() in arch/x86/lib/memset_64= .S) # Copying 4GB bytes ... 38.104311 GB/sec (Both on AMD Milan.) With a change in chunk-size of 4KB to 1GB, we see the performance go from 13.7 GB/sec to 38.1 GB/sec. For a chunk-size of 2MB the change isn't quite as drastic but it is worth adding a clear_page() variant that can handle contiguous page-extents. Signed-off-by: Ankur Arora --- arch/x86/include/asm/page_32.h | 15 +++++++++++---- arch/x86/include/asm/page_64.h | 24 ++++++++++++++++-------- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/arch/x86/include/asm/page_32.h b/arch/x86/include/asm/page_32.h index a8ff43bb9652..561f416b61e5 100644 --- a/arch/x86/include/asm/page_32.h +++ b/arch/x86/include/asm/page_32.h @@ -18,16 +18,23 @@ extern unsigned long __phys_addr(unsigned long); #include =20 /* - * clear_page() - clear kernel page. - * @page: address of kernel page + * clear_pages() - clear kernel page range. + * @addr: start address of page range + * @npages: number of pages * + * Assumes that (@addr, +@npages) references a kernel region. * Does absolutely no exception handling. */ -static inline void clear_page(void *page) +static inline void clear_pages(void *addr, u64 npages) { - memset(page, 0, PAGE_SIZE); + for (u64 i =3D 0; i < npages; i++) + memset(addr + i * PAGE_SIZE, 0, PAGE_SIZE); } =20 +static inline void clear_page(void *addr) +{ + clear_pages(addr, 1); +} static inline void copy_page(void *to, void *from) { memcpy(to, from, PAGE_SIZE); diff --git a/arch/x86/include/asm/page_64.h b/arch/x86/include/asm/page_64.h index 28b9adbc5f00..5625d616bd00 100644 --- a/arch/x86/include/asm/page_64.h +++ b/arch/x86/include/asm/page_64.h @@ -43,8 +43,11 @@ extern unsigned long __phys_addr_symbol(unsigned long); void memzero_page_aligned_unrolled(void *addr, u64 len); =20 /* - * clear_page() - clear kernel page. - * @page: address of kernel page + * clear_pages() - clear kernel page range. + * @addr: start address of page range + * @npages: number of pages + * + * Assumes that (@addr, +@npages) references a kernel region. * * Switch between three implementations of page clearing based on CPU * capabilities: @@ -65,22 +68,27 @@ void memzero_page_aligned_unrolled(void *addr, u64 len); * * Does absolutely no exception handling. */ -static inline void clear_page(void *page) +static inline void clear_pages(void *addr, u64 npages) { - u64 len =3D PAGE_SIZE; + u64 len =3D npages * PAGE_SIZE; /* - * Clean up KMSAN metadata for the page being cleared. The assembly call - * below clobbers @page, so we perform unpoisoning before it. + * Clean up KMSAN metadata for the pages being cleared. The assembly call + * below clobbers @addr, so we perform unpoisoning before it. */ - kmsan_unpoison_memory(page, len); + kmsan_unpoison_memory(addr, len); asm volatile(ALTERNATIVE_2("call memzero_page_aligned_unrolled", "shrq $3, %%rcx; rep stosq", X86_FEATURE_REP_GOOD, "rep stosb", X86_FEATURE_ERMS) - : "+c" (len), "+D" (page), ASM_CALL_CONSTRAINT + : "+c" (len), "+D" (addr), ASM_CALL_CONSTRAINT : "a" (0) : "cc", "memory"); } =20 +static inline void clear_page(void *addr) +{ + clear_pages(addr, 1); +} + void copy_page(void *to, void *from); KCFI_REFERENCE(copy_page); =20 --=20 2.43.5 From nobody Tue Dec 16 21:11:19 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8C566267F77 for ; Thu, 10 Jul 2025 01:00:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109220; cv=fail; b=Yo5uoXVePrgIohF+bzdQEZce/pTZen6qmp+QNNH2zt3Exsyje1TyG7pMQOVctC0qtMFQzbWPFTWd/IZxnf8PofKgrogpyR7YxkjMQ3NEtBlrWkg6m5nEPDdBYBDvxoLRJfjNxT/ur8bYlofyCURr/saF38RtfZSJVZBhyOFh3MQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109220; c=relaxed/simple; bh=iK4uV8t9sGwRtVB5+jPj0Y5ujRplzNwY3m7vtXAl/Gw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=QiTHwn9j+gRRBdJhdHHhjTXFwWaCUfuo5cp1FPsUSBeHcRpprQFL2P97qxfoIfJeGtBYqsmDQeVgKqYAuI8YPWVMnpl4/1A/v2U7KkCXU6VdpG3PsEAXf2MqHaNNX9LP8lNpeaG0a9eaAZiagO2fc8wM9hy3KN9vV7fchpwJ9Us= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=ndS0yYwy; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=XAEVB/tz; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="ndS0yYwy"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="XAEVB/tz" Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56A0rKlc009976; Thu, 10 Jul 2025 00:59:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=3BaTMwaQ1i1/OsOsrAZF6YxXSymikUJQlHjGbZ6bVO4=; b= ndS0yYwymg0jBuhyFBjyn64IxsYKzUvUui+sIY+MgWwh/FZQPxeAwnO4CczxJJVz biBfy/Do5AZjbeC0DwXKwNjHii+Eoex2QDeIpOSsWfPo3PsAvjOxuqK6th9xHe+8 W0vLr7WHp0C5yjL2XLjljDmbwNmspTBF3u9+zdQi+6m2wytbv/14BrXgXCAqy+cp DmWOc/QiRZgWGZ5C85YQpdyOmusbd03DxQ0yLp5vQdHwbrG+EyDdyl+AgKck/OqG XInPRcvSsmxPSLTQudvw89Ls4NoKqqV8JXPo+w3zx1128jU+GYsltar1LuZePH2q VnyqG7KjMfWV7j7Stzw9FA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47t3bng093-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:59 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 56A0gUsH024359; Thu, 10 Jul 2025 00:59:58 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10on2060.outbound.protection.outlook.com [40.107.94.60]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 47ptgbvxmg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rqWt1PhBVh3b/ywIuQ5PziKw0PADaBqUE5BZ7RXLe2dB+3Nb4/pcyOx3Aplou/z+lXZUM8jx2CQ9RaAwdJLU0yzG7zEPMgMm3QvcEB8QuLlhG4OUDd+gYwBlkziCTC2vrqfjLdyGaTiHgvFGNG2xqxZj5nwOlwW6ZblsGPln1oElKb+jI1AMCJW71wyykaeQpRj60Xcjd8AgMsgyRxqWLuuxTekZuo/0zw+eE6Sgqa2C8O3mheUo4rDyn88TShfotGx7eBfAhkZHeTvgMe/rv34UMZtBomf+wVcO6OCvxUwtlhblSLEtXCmdX++4Qw/aotv59jBeLQAdpu/27JZzbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3BaTMwaQ1i1/OsOsrAZF6YxXSymikUJQlHjGbZ6bVO4=; b=k58l//xSn1FIXj5VUEOfjVsQ4cBOW1h36Dm6N7vW8hhbZT5lvAkkPnbt2fynaVUKvyAxbqvGqf76oqbFh6x1oNF9Jnek2S2H2NsIIH0ZUvqOdn2Fp1/NjgvITB0lrQicr5ZGoDERYUEZLdfCCTcPnNMe+rRwcVci1pg0QNzr9h++5LQDxkKVmT0XrEEnqnBXehgcmLilJkhdpPQrtg/D8MLxCrAqDTeZ6URVOUDRMNwAvMXMPF4hdEY5cpEqAXDOTD6I51K/JUP4uK1Ix1CeFkcjU8rcJnJ5xoyHLI8TSyl+nSc4nXmFrngC93vSTaBJEJV8lAG+K99F/KSOXzUvHw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3BaTMwaQ1i1/OsOsrAZF6YxXSymikUJQlHjGbZ6bVO4=; b=XAEVB/tzFEX+hjP+r5vfeNL7rE3HZV6rO0Gt5qpxsW+GT4B8rtFIInu91deOKo1tiRrr93rUMsdyMW3Uxr4IYGj4hSTCzkIHptZ9d5Auhu9nPM2vE7bngK4iV5+EiJd4/dUW5eUbLBBivP2F2qhw1ISxQT/BzB68pv3lV4jH3KA= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS7PR10MB4832.namprd10.prod.outlook.com (2603:10b6:5:3a6::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.28; Thu, 10 Jul 2025 00:59:55 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.8901.028; Thu, 10 Jul 2025 00:59:55 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v5 12/14] mm: add config option for clearing page-extents Date: Wed, 9 Jul 2025 17:59:24 -0700 Message-Id: <20250710005926.1159009-13-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250710005926.1159009-1-ankur.a.arora@oracle.com> References: <20250710005926.1159009-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0221.namprd03.prod.outlook.com (2603:10b6:303:b9::16) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|DS7PR10MB4832:EE_ X-MS-Office365-Filtering-Correlation-Id: e315ffe4-2322-4b0e-b052-08ddbf4d15e0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?9xnrBaNuBXfzLqbXSgFA5VEyGx5yLSFgS7SZXqknYeCcBJj1LcVNZM855uU9?= =?us-ascii?Q?BhlhPwh90BmAkPy0+QQUw0TKmbhqmECoG/q/xOye68ucpCRma2OyjieNcqcY?= =?us-ascii?Q?m1z5s10Mty4Mm7hFA62/Uu+wMNMpSFdOYeoo4kDTIbtX0bNDEac35g37fUnQ?= =?us-ascii?Q?4x0CZDLW52t82MyThOdqOaEM3i6T0VFzmcl8UUIzq++Fce+1UVM/8k6NQxAb?= =?us-ascii?Q?9ykOAFVmsSYNIDy6eOgBQds0v6+x3fhwKqi5wHLHGdE9G5cWYfSFb50MSXLz?= =?us-ascii?Q?R0GkNDVmVsT6wYgzeRp92u8B3PLoMxsiT9qITqk/DZ9Cx8TwAAd0Bnh17F3n?= =?us-ascii?Q?6R3ZSEEu0LZgksMNdcrUaa3hJ2SdaFm5khNLyTaNIM6wMpNTqIhTG/t0/Y+S?= =?us-ascii?Q?n46qQBKJ3npCMuHuuGJFRnpB1OA/FgnS2ND0c876KoPetBWO8ysz0B/cCUPq?= =?us-ascii?Q?EoBRUkLuM0wHZ2OXmzyVh9njPZ6DRb0wGZs4TgivF9qGgjyTSYS33GwZ5zzi?= =?us-ascii?Q?0ZWEEooDDZQUSfMNfSPLnWG0SXfT0eTP1TlzaT0CvF/y8fT4WQldyobgLF8q?= =?us-ascii?Q?7ZY3iHAIfHK6draZSWehDGpgEMBj6QW/6YTL/+bf69PmlldA4xk7voy8ayLT?= =?us-ascii?Q?xY0heFR/h2mhJCBxlprVSI96vbmNx74VQaQneH9MVkjdsb89QQQ+rOemN/o9?= =?us-ascii?Q?cFEXxjb9WyaUvTJ/TeUBnqxCVQ/NAb2wfTkX49AQe/OWTYHr/WZP7409gTF4?= =?us-ascii?Q?iDDEZtW5JzA5aFWUAHYkNFjmKxRGzsVGf/RLxt5qN1kYkJXSuK2PsZUiZ8v+?= =?us-ascii?Q?OfJA/05c1Epkk3LtMHhjU0srSI9KuHMSZf+jfaFyrJ/K7DWhEFvtsVPrChEu?= =?us-ascii?Q?0ErOcuxc2A0oVndj9KTX5sRjWXnJlkt/d2IE5YPZGY+R/jwG6JKfSlpVSRyl?= =?us-ascii?Q?Z07yvOU2M0JJ4HmoeVJ/ghv7oNWfc38RUo5BHndNftQ32SghHXQTdCOzQYdY?= =?us-ascii?Q?fKRBm+nStmRYBjiiGSTgDc9AxMDzTFV5+iurMSqKJ++wa4OUR9x0fZWcJlVt?= =?us-ascii?Q?5DVkcvPa/3Oz7jFBMEfyoWqnn+67HP7ECu49aCnucViPv+gij+mPy+hLe3Ab?= =?us-ascii?Q?qWRtfft3x9izFH6LyOax5+XFdianyN80ALaRBT2DgGWiMSMJdbDooDsAwuHb?= =?us-ascii?Q?62cYwSjl7EM4s5e6tTdy4TiFKDU3n95xMB7ucxIUodnouL2lHsR7jQ9Y/r2g?= =?us-ascii?Q?PXsB6nu0nLRW/e0hFZ/fKzNkn4WW7spDWbq+Gi3cv79+ICAXW55unf/Rjqxs?= =?us-ascii?Q?Qh+YpMDlgZVIs14CvU4t14e+lSYAGMbpNJZl9ONlfVv4hrirpiw1cXPNmIx9?= =?us-ascii?Q?/dUUyoAFsoNnbTlm7/x4aU7c9Q8WQgOeq+126aUVToZPCJQCPq1pPLjpYEAz?= =?us-ascii?Q?yVgEXOJk5z8=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?bG+JXclvEGBTg3keAxqdLi9ZFEYL5xqEGqiML2j0osbW+yHDDxzWtWiz1zD2?= =?us-ascii?Q?37NrQeYMIozIsA+kIqv0AZCxm3bZWysmnEptwWj3/jk6ZjTZ+25ZHqdO9vo9?= =?us-ascii?Q?D/lwVre2OTuysWYPCFMF7W0Yx3jeWyZBWHbCdrIjZHWdKrqNJax9tzrvEwI/?= =?us-ascii?Q?pfd1rTtCDXIO8/c4nHp9bVEgU5HjQkgMU7S2ocNcpqux1425EgxAM70oyQIP?= =?us-ascii?Q?mRfJd9okpTf0gWSyDNBjwUTFBauU4BdL4YIkbiIR6Kgt54UCsHC+bhvO7ztQ?= =?us-ascii?Q?ZQW2giApY3VLnMaK5+LvTIUoXAEqeNDkrROFIjx1SqbMVNDkObZukTc3W1Av?= =?us-ascii?Q?+bpN0K4LmJYGJ0V8Q2gd+A3Ki1B/uhnUAbqHlgOo2j6MP+5iLtR98Y3za81h?= =?us-ascii?Q?wMgfvgTvFMUidYPk6Ne2kFrQ/XffKHjLNVSxjUt1Olh+8lb0HuV+NCZS7p/6?= =?us-ascii?Q?RcegnoGYPxshOYYfJ/rsSGEDIbOTzaAsKWt23Vo0K9dE+DCsoV5dJCm58CAu?= =?us-ascii?Q?Z3wL2z40OOeOWVtdLRCDmH5AvX4XUjtkNN2XoIkkvP7BK4hVwC3H8g+uzLYU?= =?us-ascii?Q?U65rNJTc6V2mPGLBQvXKt3uW5+oLcQrzDpdj/NQwYmHEa3kRvsvgQRXugILW?= =?us-ascii?Q?VFTc0ZLcQtmHCHUEKgxLglOnQ81WUXQkyejIr2v/iRVFzBBc5blkMNH6kdhE?= =?us-ascii?Q?c2Gxu3tjkgwEQkNNuYf+bVamO8Z16YH/3fntLtJoagj2dOxrF3fkV2OKBW0U?= =?us-ascii?Q?pGTVYbSEmDsFgkyCBdcJHHqedgaIQ7gFGfZj6Jsd6hMTz/h9tVksrjMJYXYt?= =?us-ascii?Q?ycyMLd8R1EIaZfZa/Cp8o3LWawRasDAruHC9Sej+uYvzi1xMIodphHTpkfwE?= =?us-ascii?Q?15rdOePOSFmAvCXU+4byG21/d9dSje3QheQe4c7RDpzXtUCZhQX4H3n3hqQR?= =?us-ascii?Q?W7fN+s6+q0ybm5rHT1j0EyiJ4+NpgrwYMMT3I+CC3ERAR/LIsVv3VHn+c6is?= =?us-ascii?Q?n2A9xj+0VqFSWtjrUWYOVD0Mv300IUsiN/xnPvaWR/DBd1TQAI5kd49+GaMk?= =?us-ascii?Q?ELry8PDzYIfbxkDJgsOXZ6cu/fvttYkg09Z/1CYkf0wJRiZ1XsnuZOcDapHl?= =?us-ascii?Q?bxEFDHBbLV9vANu7TAN/AWhqyHiQD+9Tky9CQ5fQ9d1FdKuh9NWrmFCylhK7?= =?us-ascii?Q?W9zfezfcGiw/DSmqk7IOT3Hwie6utBUGOHWmywYg/cXrgCQURKw/6hd1KqcJ?= =?us-ascii?Q?zE6GSpObDp4fetBk74E3rTLH4lH8nV0SPN6CMb9gx5bHUuiuO/ik1coDjz4W?= =?us-ascii?Q?jBEDoeO5yx/hTHztwDzp8HSw1e0zXsgMTgK1FHWcaJ/+4/uSW4VDsKzMB9zF?= =?us-ascii?Q?VgEx/owY67zyapysXDbhnUrYoO/pfc1FN/466cYYcQRbtCvyXLh8789mSrs7?= =?us-ascii?Q?MpH9w7wtnWqC5Zkr7tzZd1RFpkPONfp2KV3/2epM6Ushl/OV+fBb3mK7b+yh?= =?us-ascii?Q?ZngretbD3pc78HCc/umMfATCgh5gbs2Mxe+E8gGOzP/oW/rrysnf4sJbV8et?= =?us-ascii?Q?ZGPW0rnZ9MOmy3MhwXZ1V2iWGzvp7GcBkuLesBrmXPPE0BdfFVtxWNmAUGY2?= =?us-ascii?Q?GQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: EoYXDRjW+zyIFvcXSN31k9yTxeucMioZNr1zMuj9WnatYiiblQBp7F8eR14TatFHJdGGQT1SPO4hoDk0X1QehloaqBID8dY/D0725c2qIrg4mh5aBPKYxyRpxUyKImOeRjuwur4HWer9Xf7XQvU+geVUZ++9lTgZfk8Ok8yABo9TNnZOirNT056qVGbmn1ro8gRWV+lAHlVcUKKLHhdG1HyHAjke5TNqUu2LkF0COmXG/gDINLzdhgwMP+tQg3uCKf7cBHUKlOQbt0Qiu1VhPMkrMQWzduH2IVIzF115Vs6yBf7SNonFuQv/ofTPZTxARCgCGLYCBWOExfJb21cuc/10+q+B8bEqMkh3tPUs3ebvIl6ZoENYJ7lChCiYVNwGZUgeXlY1KjSf05MJB6gC3K8gZUihKUgtvtLM3glSeUutb6u+ysjFTdkkGTkOuGEjvA5vxcuQWHdw63mvrhPvEXbbp5ixFZyA3ML8I2yGaHBz5RE8KT81+mOuRg6Pml4bx6BVF6ur5p7wL9BmC/0ZhApwRaDFK+BXc49PSbmxLj1dDU2DtbOYixUcZMV1cE0RHPjHbKeuJVRJHlsP5ulrZiWtb24KrlLis9XWNvOn0Hg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e315ffe4-2322-4b0e-b052-08ddbf4d15e0 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2025 00:59:55.8029 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Ntc7QPjn+zw1/QHVpd9o3Y8WjTf3NV1jGXQmo4J2skgP68txmwu93KL8Aqw+1u1dlldhISTyePXMe6AUKYb7/U2qIrIzDn2HKejF3HhowK0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB4832 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-09_05,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2507100006 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzEwMDAwNiBTYWx0ZWRfX4FWsWnMwooE3 c9mSrbcMq5aa6XxmaM35/tY8PUxIHeSQkEAySiV4tem5Bi41wZXXzkxJSVpvXAiaiKvsI24u+2t Pv4ocDCQhBw4Dv5Zd/kj8UEpXEeoaTnDGbBsye/nROwaE9YVeYpdYcfShx3d68czRmx8/MANIv2 j/ZvQWRFx9mQMTrQkgYcSONmKDTcmaiE8yjx1wcHzdi1By02NH44ebHtgBTgpiWSK+Bekwnvgj6 e07S7VlWOfjMz6HiIaj6JCZBkjcRfWsN50xHwH0tjxeMwXxvKojvNMGJ2HYzuEGwFoKMACuDOCj ctcfX/iSEBeDt/v6cYM13Z43UVlnRhwgQSpy9zdQaJUqfNAGNG5hUreQgbRwkUhHFOnMJMWWxi4 qrAHkQlG4ZWLUYkx2fa0iAcXocSIDMGjquYErte/usa+2S5FLt6R6JsNCqvTT2lzuYmknyCt X-Proofpoint-GUID: nOA5bkkWxeRww5vnq1ydOh2efhrT3Nnw X-Authority-Analysis: v=2.4 cv=Sdj3duRu c=1 sm=1 tr=0 ts=686f108f b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=Wb1JkmetP80A:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=7JCkoe-2NP6uNvfLALkA:9 X-Proofpoint-ORIG-GUID: nOA5bkkWxeRww5vnq1ydOh2efhrT3Nnw Content-Type: text/plain; charset="utf-8" Add CONFIG_CLEAR_PAGE_EXTENT to allow clearing of page-extents where architecturally supported. This is only available with !CONFIG_HIGHMEM because the intent is to use architecture support to clear contiguous extents in a single operation (ex. via FEAT_MOPS on arm64, string instructions on x86) which excludes any possibility of interspersing kmap()/kunmap(). Signed-off-by: Ankur Arora --- mm/Kconfig | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mm/Kconfig b/mm/Kconfig index 781be3240e21..a74a5e02de28 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -910,6 +910,15 @@ config NO_PAGE_MAPCOUNT =20 endif # TRANSPARENT_HUGEPAGE =20 +config CLEAR_PAGE_EXTENT + def_bool y + depends on !HIGHMEM && ARCH_HAS_CLEAR_PAGES + depends on TRANSPARENT_HUGEPAGE || HUGETLBFS + + help + Use architectural support for clear_pages() to zero page-extents. + This is likely to be faster than zeroing page-at-a-time. + # simple helper to make the code a bit easier to read config PAGE_MAPCOUNT def_bool !NO_PAGE_MAPCOUNT --=20 2.43.5 From nobody Tue Dec 16 21:11:19 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EDF8C26B95A for ; Thu, 10 Jul 2025 01:00:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109221; cv=fail; b=Jw94gL2nMUodFt3ASHqIDUuSsczB18qqUoRoz9bIaHwSF3yF/v7lkcrlI7i3HYnBkwwE1BDlOj+g+h382Nbu5wvjeloHVyKrkBXF8yYpsj7sh/mXO7XwGxXw0vDVagMmlNZUs4mTQZ84nxgs6mkzb3NZS4JmU0P2HC2gobOj9Hk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109221; c=relaxed/simple; bh=ikkcFqKCfHqbeoaUj3x2yxoxoj6Zf3V5ThgpYTwpDRo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=gaYdgMHVQ+rMbUvSIdnKtuhX9y3a7HdfVdQ7R7aoEpEX7ZS4UM2nGZGfqgQDoQTwddH0t1vbWwmy9frkgnbaXHPHhv+VCoPraF1BzsCq5A50pRXAaIunoutNergzMTa5WNvF45aRmQlHAAX67UqR67vrLNMiFYjebBX7GQM8L2Q= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=qiOonKhU; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Nj3RLLoP; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="qiOonKhU"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Nj3RLLoP" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 569NwZdc010431; Thu, 10 Jul 2025 01:00:01 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=1isr2Y1EHdAvpFTmBv7zi+TKlEKWkdQE6opsa3ysDr8=; b= qiOonKhUtXC1PBq+AhqDOK5oMh5QUOoqS2U9lOp33COc5OJDYDYlrEqpFB0QDQs4 Z/jXdvItThLBZkSMkzZQVin+AekIHdlb/B9SllvZs0qfqFeEI292S0D+SfoAsvua HIUw/Ck/AODFw/sobfCi7m3suwyyslOlpuKMqDY0wmO3PBnlGFTFNDyWH9LMHiX4 wEgOIVr66kRfDHLxP8UJqn9axtR4imQVU7087gZ/YOwl208IbIQ3U8rMebWAW/wJ meHCUNFYsGIWlOiDRkM06D8MdGLN3juybZVgQoiwBqGiujF10McE3XVFZQCaaQp1 HzaLtUjaiGcJK0T7AmkHsg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47t2hwg2me-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 01:00:00 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 56A057IF023666; Thu, 10 Jul 2025 01:00:00 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10on2061.outbound.protection.outlook.com [40.107.94.61]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 47ptgbvxne-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 01:00:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xkZJaktF7VCJ0JBQVWmpX3qLmTnKQ5XXNVV5cRUxxrmbfVNxUcJO3/RPgNEKZptEPRuAA0mbzKGaQ/ISFyo4iW+O4F0w3Aef0ZkyN3VIsb15dioU/FyRdr7YKf7l43fxe0SYs1ljZGoPNel3zjrJ2GAfVfogq+ZJlLM8XkNFQwKdUDYUDARKsYVCRvujuFkCuzgHIVQoq23EfzNgef3KHedkd2Nu+p2G3W19gWWTckYNlRY3UD5AtYLKzEFMAVF+a6GvsVk4lFMlt5zpEGtGRXKVcS7kQi8YUqb2anozZOtipIhr2dWy0/l6FI/d8EXdNjJVHAEUmdvEI1bnHpfqlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=1isr2Y1EHdAvpFTmBv7zi+TKlEKWkdQE6opsa3ysDr8=; b=wioxe13c1PnhqlNPMWUDpJi/VqRN+FtBptuDLOQYerfcWqxOB15DnyJ3Sog0bxfpHOm5b3vHKrnELcsq0ZT+9wHnHi4VHBdujl3q/F0Tc2ZMusbz4nX7CWnA84OXjz+pqmug8b53og2Lt0BNbssJXpovCpFKYnX7lDv6z5feH6OG/o5yqvN+G+Z77tC57Q8sjYxF4wVvMsSHbz43fDnO0AD31+olv6BVcC6NRVru03TBZUZr4a99pkWgpUoS8KziCXG40/LaJNzPyoYn5MF/5YuYufE94mO6bJtX+VN0e5SstFbFYI9Dwui/BW3CHGKRvsem/1OV0pDwu+j2aVpcwQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1isr2Y1EHdAvpFTmBv7zi+TKlEKWkdQE6opsa3ysDr8=; b=Nj3RLLoP2a52aDrCfcf13okg1Mxge+iqYWRJKTBwogG/Bwhu6hcLncTPuwdZWLhaE37UmQxd8oNLtuWG8WF8kBJ2D5UyV4X4mh4yfM3e2NX6Is/HuQ4KvMdZaQw26DvcZb6AF4TA9ux1oCo18NeEya0L/ZRMdZWrN+I3TmOtuDU= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS7PR10MB4832.namprd10.prod.outlook.com (2603:10b6:5:3a6::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.28; Thu, 10 Jul 2025 00:59:57 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.8901.028; Thu, 10 Jul 2025 00:59:57 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v5 13/14] mm: memory: support clearing page-extents Date: Wed, 9 Jul 2025 17:59:25 -0700 Message-Id: <20250710005926.1159009-14-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250710005926.1159009-1-ankur.a.arora@oracle.com> References: <20250710005926.1159009-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0054.namprd04.prod.outlook.com (2603:10b6:303:6a::29) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|DS7PR10MB4832:EE_ X-MS-Office365-Filtering-Correlation-Id: 7f4cad7a-f4a4-4697-3a2b-08ddbf4d16ed X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?R6yEeZsEm5EfP6fnOhrzdPY0u2ljCPZT5gqa4QKRi6W+a6MmuTD4lYP2A1wD?= =?us-ascii?Q?+XvtK0H9YZ4yMHxP39YL+BPQ1GY+tWvEBKSdPTPAQ41fWJHx+rvaTE5/oSyF?= =?us-ascii?Q?7egdPjjaq3s/l4hY+xOHL9F3jlPxvElOTjQOivLmp+xpjczWzQCBv0z9YlI2?= =?us-ascii?Q?dz8njNiYjmeOHt9Su0o/ovDRQ87jceS7Af2LJbkzaH6Lj1N+v8Wgzq0O0JL8?= =?us-ascii?Q?TpQhpUphI49bLQCYv+ffu0HIGaEwPHHvMLTZ3kWb46aITtbQS5I2HvljRu5d?= =?us-ascii?Q?bunWRXx9kbggZErVpJxMODox9FE7jgORYGPq9A/c/KR0EqeV/dzmuQyreYFG?= =?us-ascii?Q?uIoVq2LfZfGqceSluYBzjngyCNVwLbrT0nSjTlaAGZ2dhMXYVVxqRaG/CUzT?= =?us-ascii?Q?HT+QTv5CW+D9NxrvnYUTvkdT5oWnT18aE3Bd495BVqj+cJXCCtyUsk2DblFz?= =?us-ascii?Q?7rkhxmi6nYxT8IEh9otvSbQE39b6By+bMCppLpTtzQIREDKdKJ6VhQAG8v3f?= =?us-ascii?Q?KFNbKUORoowd7WPHhtQ/z9Pjmul8V2zCaiuGtKc15wrHo1LxHlLLujQTt6p5?= =?us-ascii?Q?NrOH/9zMUzZTEei4w9exfCHAMBAPJinLtZh5GI1ZfStygnbaXaWydqEWL3hf?= =?us-ascii?Q?EjQGaCmaI5V/Q7uw8PYqNdgx7QxgUii0T8A0eAyipTkjdC34gugrlcARWOb8?= =?us-ascii?Q?DBpcJyOBGUzhtUXv6pms41GtQJo/663iKGdDODTaR0/QAICGkgvQg27hQMuO?= =?us-ascii?Q?C5YfYy0Ls3xxBeLyG0AKrc7jGIyZE0D78RBPEFsHwiFPg9TRODJKcnPNMe2O?= =?us-ascii?Q?Q8YROKM8efX5hWXSOOhRW1LoQYCDoK/+m6Woc7ViQwWcI/R6N1EP4KqPlwif?= =?us-ascii?Q?H7zu+g+equGnU0+s/EvIFuOWv1G9/kGvfMphrdu+TPyiCubUznq2twZ6R4IN?= =?us-ascii?Q?11WppjGM5ATAdFRfUlkkBFoMzIeDTG6Hwyf+7KS1WcM0qt4RMiwrUKcRJQNF?= =?us-ascii?Q?l/UT4UeKIGmSKJFYi/bdpboOw7SN/Mmxl6j4kESdVsy1gNwJvqUplKxu4FhC?= =?us-ascii?Q?ixb8ymFDShr8NLBqmL1oS2gQLzDZQY2sRRWuAGiE+6/NLu+F56/h6C5KxspR?= =?us-ascii?Q?Vz7oaS+pPzzZ4yftx0yp39R1NOaVWL7w1/SallxMvrcRfj9XjnPJ8fr7v0WR?= =?us-ascii?Q?jk7rtp1ZkAotXHxxYagW3BBhQFDZ8piC9dXyZh2gn3nOGbd40cmx5xmu70ES?= =?us-ascii?Q?wuhwzD3m2YtxYpwtN7v+k8bN4JnK4Obabr/RvGO1ZZhWeyou4nnjFWt8yyuW?= =?us-ascii?Q?SmH1HSiwsny3JDmQvqrU5Zk4u/wRnCTglTGQxeDp1ybakfUyjgF0tL5ehK+W?= =?us-ascii?Q?4bVnMaZrqST13fdK0peKjji//psP+Tthz6cBQr30Hacg7cXWDzepmrfgGA/e?= =?us-ascii?Q?h1xPH+caiSs=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?YcvpMUCfPHQv9EwQzICgwzFdxIplV6yNhBcDwj2W+9vY+GyfI6nUQbuLK7qL?= =?us-ascii?Q?Ya4HMUmGGY0/lVGH7jS+ke+GH5Xoob5t6T1vj0fUSRku72cM/dhgJnqcT4av?= =?us-ascii?Q?GbbGaUZGYQvNPXT1syT31ruZuw7k8L2VSbP0gvWXFzAaGfPr/n2hQ+qbUgG/?= =?us-ascii?Q?c058HEft83VODh5dOwD4vVImfUQwdi8nF2Kh13+XhbdlkCdOCeICmTaUQYa8?= =?us-ascii?Q?wQAZnZEx3RKTCsJQSWw+nIEBUhYQnibhAMxPlbI4nZlN07bBH2XrGe09sE5z?= =?us-ascii?Q?fMJiJMyIdaO5FGD0KvSwhJcbEEUSHBCKSODjMHlS1MoFb6s53GQXxFkTDpUp?= =?us-ascii?Q?R3YmfC0zbNORn0NZ09P+nuY2C/GvYyPFy5KGrRaNawgcB+TOR7shF9W4Mb53?= =?us-ascii?Q?d8ElqFxWYpvjA71zEi5tlq1oRginbUwGqKbh/qZf8jndHT23wzjYQ4AEATJy?= =?us-ascii?Q?jd4dP2KxA1yf53S3Llq9IavTWCX5iILrE+yptWx7qczeq9R1RvA4u1op/W4t?= =?us-ascii?Q?c6L3Ba1XsIdeByYydCvfvVC8b8fEnx4QnmKFNNpxVjJBKZJOIoDk3PX6Ly5Z?= =?us-ascii?Q?ZuN7llHr5yXxMw375okdJ9SSKVcpOD+wd4jXyle1diNyzzhtOImC6DnShPvN?= =?us-ascii?Q?+tOwqz3nJa+23ueA82dXxeYgFbkbILtGRBDf+fYccVeTEQlwDjyUSNEWQLcB?= =?us-ascii?Q?m9M52DMo6xWEZOVQRbcAL34/71SD/NN27AiACUuxvKEURUj/bPYEjJcTxlqW?= =?us-ascii?Q?fDq/G1AqYqluhnglnEA5og2y+jBXagq/ruHP5b0OVFSJQnWg3UxfM3im38tF?= =?us-ascii?Q?9zRs4iBGum64AKrQC199D8pk0pp0jpX8NEvr0TcMJtrfW0wOkY1AaVU8PxwN?= =?us-ascii?Q?HbGJgxVILmC2MmchsPK0Xa3jGI1QMd+57/sA1qxS/2ztrwyPkLiMCSNirTv3?= =?us-ascii?Q?Jo342PodIfmIzNE/WEUmFiGTWuGrP34+HkqBAKSm2DpxHkx5TDz371WmHJzK?= =?us-ascii?Q?vxRJZKtXIdkENL8ojz2KoYlP3mzSJwMiajSWfPZW31TIgQuw4mQEFKhsPYwq?= =?us-ascii?Q?Lmy0SZMfuvMFUWtvK82xi9qh+29niieoEUIAM9AgxV4tEOlZzVmGaunCDZSy?= =?us-ascii?Q?D4v2l2LWb+sZyoQwwgap8+YatCNaoh7Nx7X2cMTXl6MvsdcKASx6VDXI9P2x?= =?us-ascii?Q?6/W964P9RbUhQ/9ddjk5OeuNbgOkD9biB5b3QwMjwgZsbS5ZMM8q59Z6L5pe?= =?us-ascii?Q?giZ5Ddg0+zhERljv4aNJYDdPzwuJ8KZoPzYbGkCllQ7y3WnVeknh21km91/R?= =?us-ascii?Q?UGOA9UZxw+X6H7Sx6MO/WxXnBJ5qDsDpmRDP99nTd4utFVV42wljcWRfPkcb?= =?us-ascii?Q?Rek6t7ZlcUkHViC8gfBfdIlEpkP5UukNqaYI8knSe2oGAfEBuJCNUqTznpeQ?= =?us-ascii?Q?JjgXuPpO9fd9ztyB8CF/arrMHWXrw3UWguiALJ6PvX2+ZKMQc24WrWwnRxV0?= =?us-ascii?Q?vhFkob/42InBsOhB+KPW/uoB3K90QKg1YbzqmU78Ytk+ih8Lzi4wqs3Wnlg7?= =?us-ascii?Q?PURgMc6zyytPPEHErXbMPg2mAHCXcMwAlcBU1OoaggsUCvFu+wThmvB/ozk8?= =?us-ascii?Q?mw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: hh/ScSjWP2DyUFEN7bdYmYn8U2uZsEOezgWZckYOn2Hg1/OgIe9XjKHOdH8mqcBkkOaNMkrIzjGd9fzgWN27yB3hE6LR/+9w0WlfdplvYiVXeAWy3ZfXGxQV36rlU1blr5HERHEKHOp149Aww0nkUmuxP0Fof4OZpZg01IhxtGNCrCVAMbMvnJPcCUALIhILGNwS+460KHizlF8HLxxLw3wvrjeLBDQPPb74y3WnPPS3GLulsif+YBzBOu3t0cFGceEeZ21eiNVoF/Odkc24DAJ9oi3AeARit8kqcKiTxkqGCz79K3GYVF2gEDVebi5jXVlTkjz9I2YGB98pLkI48DfIdUeM0MloWQYnfJ/ydSR1B2wLEAopwO9NptAXiyjTUcIK2s//OArkgjja7x5BKUYR5XFAfiFFhQEteN83lFE6bl1yswTyjSS7zvzXA8fCdwfQEkJG30ESIXRzviMwwuXQIX206GFPipVpjx/lmQqpDzzmnhoOQR6VZXonjZGqivz+FKfOejmlSdI9WqcI0aAc0HG1DZpQpm5BOkGVhMf1mwwgMrpIc2i/7iX+33Lm/LyccX4+28Or9kqtZYmjnpIOmRf7HFUsFTKVI3LOsgw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7f4cad7a-f4a4-4697-3a2b-08ddbf4d16ed X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2025 00:59:57.5687 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IPqoHNpaUEAGMUFJQng3xoozQEAIezuFCjHsbjdG+kjXoCMzUZkan+A9eVwpw6XTvOA6nmBQQSPeGXufYyerV9MFP/7eDnVp+PQRnBxn690= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB4832 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-09_05,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2507100006 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzEwMDAwNiBTYWx0ZWRfXykU9HHgHsTwe ewY8qRgMjoC6rRTIUEnDQUKGTlmfCmmABgie68JqJlxUOOliMmjsPOuSBwyud6SIO+N6fXQvW5U qghxh7G9yfhRviscIagVaaIfB7b/Rev18eczHvVlijNTfMCUhx1k6GMM3Gu7CpAV3n4tZY/CbPA bdW7sT/WQRi9+TTWPTf3tgeZpRmANM0ZorHR97T5QdPObQmgVTpMPRJXalxyYSgNcYLD3a0Birr D+ma/uRYYExkcpYAeYjz8LoHf17EXNcda3csZEWEnjxTP66FBoNwPW0ctebw8f42ZBII9GyTVVu ZXk00+5XWGsFihX2fmBqAw+zbaVUVLNd/GKFmdtUMYNVH9etBawAoCZfsSY9bxHFhwjxTYXUZYo NH8DGF1jf79PBoLvJ7PPJ14h/wSzECA949i0ZZNjOuClFEpD8FvPOo9aMqAR9oXl888EGE4N X-Authority-Analysis: v=2.4 cv=BI6zrEQG c=1 sm=1 tr=0 ts=686f1090 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=Wb1JkmetP80A:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=ikw_7Nr-yr50B0xR4lgA:9 X-Proofpoint-GUID: AS_8F3hhv_C8grmbKTSYuGsoj2Pd0Ur8 X-Proofpoint-ORIG-GUID: AS_8F3hhv_C8grmbKTSYuGsoj2Pd0Ur8 Content-Type: text/plain; charset="utf-8" folio_zero_user() is constrained to clear in a page-at-a-time fashion because it supports CONFIG_HIGHMEM which means that kernel mappings for pages in a folio are not guaranteed to be contiguous. We don't have this problem when running under configurations with CONFIG_CLEAR_PAGE_EXTENT (implies !CONFIG_HIGHMEM), so zero in=20 longer page-extents. This is expected to be faster because the processor can now optimize the clearing based on the knowledge of the extent. However, clearing in larger chunks can have two other problems: - cache locality when clearing small folios (< MAX_ORDER_NR_PAGES) (larger folios don't have any expectation of cache locality). - preemption latency when clearing large folios. Handle the first by splitting the clearing in three parts: the faulting page and its immediate locality, its left and right regions; the local neighbourhood is cleared last. The second problem is relevant only when running under cooperative preemption models. Limit the worst case preemption latency by clearing in architecture specified ARCH_CLEAR_PAGE_EXTENT units. Signed-off-by: Ankur Arora --- mm/memory.c | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 85 insertions(+), 1 deletion(-) diff --git a/mm/memory.c b/mm/memory.c index b0cda5aab398..c52806270375 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -7034,6 +7034,7 @@ static inline int process_huge_page( return 0; } =20 +#ifndef CONFIG_CLEAR_PAGE_EXTENT static void clear_gigantic_page(struct folio *folio, unsigned long addr_hi= nt, unsigned int nr_pages) { @@ -7058,7 +7059,10 @@ static int clear_subpage(unsigned long addr, int idx= , void *arg) /** * folio_zero_user - Zero a folio which will be mapped to userspace. * @folio: The folio to zero. - * @addr_hint: The address will be accessed or the base address if uncelar. + * @addr_hint: The address accessed by the user or the base address. + * + * folio_zero_user() uses clear_gigantic_page() or process_huge_page() to + * do page-at-a-time zeroing because it needs to handle CONFIG_HIGHMEM. */ void folio_zero_user(struct folio *folio, unsigned long addr_hint) { @@ -7070,6 +7074,86 @@ void folio_zero_user(struct folio *folio, unsigned l= ong addr_hint) process_huge_page(addr_hint, nr_pages, clear_subpage, folio); } =20 +#else /* CONFIG_CLEAR_PAGE_EXTENT */ + +static void clear_pages_resched(void *addr, int npages) +{ + int i, remaining; + + if (preempt_model_preemptible()) { + clear_pages(addr, npages); + goto out; + } + + for (i =3D 0; i < npages/ARCH_CLEAR_PAGE_EXTENT; i++) { + clear_pages(addr + i * ARCH_CLEAR_PAGE_EXTENT * PAGE_SIZE, + ARCH_CLEAR_PAGE_EXTENT); + cond_resched(); + } + + remaining =3D npages % ARCH_CLEAR_PAGE_EXTENT; + + if (remaining) + clear_pages(addr + i * ARCH_CLEAR_PAGE_EXTENT * PAGE_SHIFT, + remaining); +out: + cond_resched(); +} + +/* + * folio_zero_user - Zero a folio which will be mapped to userspace. + * @folio: The folio to zero. + * @addr_hint: The address accessed by the user or the base address. + * + * Uses architectural support for clear_pages() to zero page extents + * instead of clearing page-at-a-time. + * + * Clearing of small folios (< MAX_ORDER_NR_PAGES) is split in three parts: + * pages in the immediate locality of the faulting page, and its left, rig= ht + * regions; the local neighbourhood cleared last in order to keep cache + * lines of the target region hot. + * + * For larger folios we assume that there is no expectation of cache local= ity + * and just do a straight zero. + */ +void folio_zero_user(struct folio *folio, unsigned long addr_hint) +{ + unsigned long base_addr =3D ALIGN_DOWN(addr_hint, folio_size(folio)); + const long fault_idx =3D (addr_hint - base_addr) / PAGE_SIZE; + const struct range pg =3D DEFINE_RANGE(0, folio_nr_pages(folio) - 1); + const int width =3D 2; /* number of pages cleared last on either side */ + struct range r[3]; + int i; + + if (folio_nr_pages(folio) > MAX_ORDER_NR_PAGES) { + clear_pages_resched(page_address(folio_page(folio, 0)), folio_nr_pages(f= olio)); + return; + } + + /* + * Faulting page and its immediate neighbourhood. Cleared at the end to + * ensure it sticks around in the cache. + */ + r[2] =3D DEFINE_RANGE(clamp_t(s64, fault_idx - width, pg.start, pg.end), + clamp_t(s64, fault_idx + width, pg.start, pg.end)); + + /* Region to the left of the fault */ + r[1] =3D DEFINE_RANGE(pg.start, + clamp_t(s64, r[2].start-1, pg.start-1, r[2].start)); + + /* Region to the right of the fault: always valid for the common fault_id= x=3D0 case. */ + r[0] =3D DEFINE_RANGE(clamp_t(s64, r[2].end+1, r[2].end, pg.end+1), + pg.end); + + for (i =3D 0; i <=3D 2; i++) { + int npages =3D range_len(&r[i]); + + if (npages > 0) + clear_pages_resched(page_address(folio_page(folio, r[i].start)), npages= ); + } +} +#endif /* CONFIG_CLEAR_PAGE_EXTENT */ + static int copy_user_gigantic_page(struct folio *dst, struct folio *src, unsigned long addr_hint, struct vm_area_struct *vma, --=20 2.43.5 From nobody Tue Dec 16 21:11:19 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 69843272E72 for ; Thu, 10 Jul 2025 01:00:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109233; cv=fail; b=eXeJd8O33xLDb6hC5qSWi6dNapVwpoZhcseULwpJJppiCseATieT41T8fjUJr8b0n0dR4hlGx3reQ3iBgeaoqzixzw1/gVKxSpF0N+RYBPSkdtgQl5Lp0U/t4LRJgmkaZqipxaI0PMvlYAo+ZsQOUDsWNoWVzWlqTj9jSG92cWg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752109233; c=relaxed/simple; bh=gQuyZAF4Ij4Y2/ja8vRTM7c2T4xHRRtpFF91ZFb7PuA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=qt8LYHpfPEQhM/JXEIeAbJ2TayL8ce23tKMEpNbD67vmPycKDzhG9JnxurO1Svshv0Pb4SCZXGeY9tZDIy0YU9/Hx5abJWVIlX5RF2zzEO6dvljLONED//LV8rt7TAZacwME8mb52CnocUHlrOtwrf0ZOSEtkSym7Y8/UGfDekY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=D56i7Odm; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=bFwDp39i; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="D56i7Odm"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="bFwDp39i" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56A0Mn6D030185; Thu, 10 Jul 2025 01:00:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=brUOVKSdWQ5XclxFBHQ2tJOX4ITr6gFe6rD/Ly8ZXGA=; b= D56i7OdmkSvwEvqjfHjHPkt8yTQJDSGPwVYwbNNomPg9XtERkihC97ZfZ0HsG/Jj b+Y7OlBlxairKU5uMK57boHi2hM4OpNu9ojuDEJuuYQTPBmUystNYpy+lbRK5iIS zffKm0YMLY+UvO2YUHrOELcPIeW9+8jUNs8Zss7ZbGJaEh2tRBwy+dAp9DCMLAU9 6hgbb1OUYiU+tLj6808lupVY21pyajJ5cdkR+43OOrQ71RGGoduAMkypEEM67pLs 0UUsNCxOez7qNL5wd86DYIqgQMhziewKHVnllP03By+vt4wBMiSHf3u6dmdZVoBg odgn6Xttk1YV8np28Rdaig== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47t2wn819y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 01:00:02 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 56A057IG023666; Thu, 10 Jul 2025 01:00:00 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10on2061.outbound.protection.outlook.com [40.107.94.61]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 47ptgbvxne-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 01:00:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qotcHzWvVZzVZtxf1z7DG2Pfc3zzlwwx4Ruvz12FhqGnpeW8yJ1k5NdJAtpnjW7jeJlcUcZdiSYMOkqyFr0DFtjZEgQ5bzmuvAYbnrvV05/RQfLR5dMAMxYmm4YygKvp+5MO+ywxX3wz0u1QllN/MiqaQxtlGzLmSCIX76n78EfAjFOOe1GuysdTsnDgqACvaPkgJBMS+CCYoF8+Tj7Wzb6IF4EouqJPPOo9/iM1UHjV2NbTh3RG9yWYQaRfxWX/Bex7qLDzUfZraN4D1Kai51YPlpQTGUeogfjzcw7t0BFZfcrxGUg6qj1FuVR3TSyiw3Vy11a53vis9atqm+7wiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=brUOVKSdWQ5XclxFBHQ2tJOX4ITr6gFe6rD/Ly8ZXGA=; b=hOUXvpK3ApeFn48MUxB+TwBQl0OUd2s2VBQ/x0JQOx6dOvtZkRn3njCvBjJhUdQS6Q+M5AOZZNQANhNjAuwqArQA6KDuH5OlvE4vLU1XzDaqWJ2SJePF+nqxMyyQviDNgq/gdohpKmFLgVlQqrF+VIRmQf7HB5NiOuI8vtb3gSkO1cLCYqGd/3yaABpcO0/3Aj7V5UNUvoWk+Ra301tBMSy2kF72P/UdAkIiopCfPG0EN2S6TI9bK/PFH9Ml61ixDvasF8D/zYpR8klxyLu3iA6wYRT1TQcuTCqiBT9XbCnmBncOkm+TM/nFyNapJPhDifQakew8yTQ7iCB5d7h5/Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=brUOVKSdWQ5XclxFBHQ2tJOX4ITr6gFe6rD/Ly8ZXGA=; b=bFwDp39iaVPFxbaYQNtJxBo53gdTIFPDiwxmm1bL4f8h3m1/M/ekSK1yaQLXyR5uXzIeB9EAzMs1FDqXnPtIkOu4/DNFhPY7M6Y+qYJim8Qmj4H6/zzii41zhUrwRVKiLIALfWGIEsosi72W6giciLpA0W3H0/sU6/igA9/X0b8= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS7PR10MB4832.namprd10.prod.outlook.com (2603:10b6:5:3a6::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.28; Thu, 10 Jul 2025 00:59:58 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.8901.028; Thu, 10 Jul 2025 00:59:58 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v5 14/14] x86/clear_pages: Support clearing of page-extents Date: Wed, 9 Jul 2025 17:59:26 -0700 Message-Id: <20250710005926.1159009-15-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250710005926.1159009-1-ankur.a.arora@oracle.com> References: <20250710005926.1159009-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0079.namprd03.prod.outlook.com (2603:10b6:303:b6::24) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|DS7PR10MB4832:EE_ X-MS-Office365-Filtering-Correlation-Id: a6ba13ad-6288-4017-a114-08ddbf4d179c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?pCknsoH1EW68Z8V/b2XsbeR1XQKFKDrz8ZWpvDlPo6E+35UFY3vPRIkQnBwQ?= =?us-ascii?Q?Wg48X1nIFNs611+Pjvx3T2uekJA61QFkAD9wZulxB25SrPB1VsNn9MAuXb3l?= =?us-ascii?Q?qSyVmLht3XAdf2NYAQxvR3XnbDDiKF5A0zR/HFmpGG9/P013MMlE4Ky4jbbs?= =?us-ascii?Q?KYMl/yARG9hZHrIz8VKTG1+8hGowU80b7DSMdlJWo3uE/V6saFnb1wF7R/Et?= =?us-ascii?Q?OLze2Ko5lUnYti4QYcOHJDsJSTHhCxi3tf5hUdR0h24etvWBWt/5c2xS1/KB?= =?us-ascii?Q?a8oe3923l2NXtij7cl8z6TGzIJAq1/gKwTJOrX5m2istAYEc4nzqXg8d5P7A?= =?us-ascii?Q?JrofoHry/J92Kag5YiWh3N4H+h4K0njrxZfKB9j5Zq3aYlaTN/xEaK6vAp7Q?= =?us-ascii?Q?7gndDfcCIfFKqvou8c9fX8jLEBKjUr5Tfd+R/EoXV4iz+5KGAyFh5X18ZqTK?= =?us-ascii?Q?iOOYzFUcddzcoXibZV6sRWj+/K78IyBlsNeV2pPZx1zKpoKP8czB3zNR4+ub?= =?us-ascii?Q?r4iR/sMyqYgnW2RhNAEMQnSsMJX/iqSeOxTC0qaIJGwM+M4ur8q/RfxsDTjt?= =?us-ascii?Q?7XzmMTWJhFHVoe+tV3ZGSMCeCtIEjPanebRB6ahQwyuoVv5Hb5aZHOUSSvWN?= =?us-ascii?Q?e6170Rl4/yh8TeOx9M3aLSM8DLj3CFMS7e9AvliM2etlnYyXAbdmKloGk9ut?= =?us-ascii?Q?PPb0mWMVZioZ631vg5Bf0+gfP9ndDDj3yeizEPhuAXk1iSzFhoincdZMbQy9?= =?us-ascii?Q?/W/icphcE62eqo5MVD2aEteVQwMLXrTpEMlI9f2EZ6MHdPjt1xVE7FOVlUW9?= =?us-ascii?Q?8y+/VlRGNmfcaKiYGUGvI0nAhPGgmD6odwboFdEN730X/rb7FK/ixy4Ji1+f?= =?us-ascii?Q?+3nZGaRFMWiWwdCgIw1GvnM5yH38M7CASTaNxlljauffE6aPnrrqvoccETXD?= =?us-ascii?Q?qwoJ9o/GUJW9IYKovYveyW3p+PTDsaPQpk1BKBjiV7BQhAVd3lbvuUwyG4BT?= =?us-ascii?Q?Eg7B934HVWvGYp0VAImK5ruRWGaDG9d2s3YDUNpoZo8sUAz8SzrGBoY4d16t?= =?us-ascii?Q?amUrJnU7F1QUps2mzzg+/jSMGMP72wmb6C0LcFw7MB0Le2OYdcFEK6wcUsEj?= =?us-ascii?Q?tHm0hikMPV+jwNjQcjvm7ckkobl5N0B46ivOoOEn4AYLcrRShLRM9IrrOuAX?= =?us-ascii?Q?mNtZCx9VltgMJr55v3B2BidXhN8ZPuHE/d2Ti9GmyGfPRH7WACbzk3MdqQ7w?= =?us-ascii?Q?4jSCg7bfZ3ABWlINFnfLvdyPnMHqzPkkpaZma3/tMheTxQwr6F/J2lRPw3XQ?= =?us-ascii?Q?/CWlNfiumGgxuZqLBNxSjFJ8QmuPBa82xxdSbOLVYlIXZfMOT+qBFczUKpYF?= =?us-ascii?Q?E2bgzeWCoIOYQJwJ8BCzmiHYrJk83bvEJjmV4jN3J1YqU363bMc/NVNpiQ5D?= =?us-ascii?Q?brJ66wHIDKY=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?nJ6Bx1eE+u3r/qsyFhEFGrIV+zaLBPviL2MSd7s12B9qosiJjJgtCFxhNRQa?= =?us-ascii?Q?GsV1OBMOPv6OmMLQpnLQqKu6mzvU/9+6yKoW71O9epyJ+xbUtnI0BVbgNvFo?= =?us-ascii?Q?MTTjCPzMmfaiakLyXs6S8+J2ohLEeyXbc9SUI4/eiPE3rMutDc0M8N7Y3DXP?= =?us-ascii?Q?YjvbRSrbdDmn3oqo0o/VxdeiCOUHqIVXbqErmpC/P+2Okdnikmw42aQLfIyG?= =?us-ascii?Q?46vUaIFL/nqxjvfucTf32RQPTG456i/TLJt5Mqskg5xAFJmefDeCJlaRMKw4?= =?us-ascii?Q?Ny2zBVq1mDYuQuyj4/mMPEJSYufnWAwdf93hIGrtEtQQy6ELxPqO1QqCrqDp?= =?us-ascii?Q?KhbzrDd4rVlldPiHhZue59g3YrNotqpfiyRXdRs+mYB6JjlqEmNFfsBjMNgz?= =?us-ascii?Q?ci+OUezh6GsNtGY//0GJ/kqaefFqBnZWHZRyJEjCszp8FCycSHE37JdQfhrq?= =?us-ascii?Q?J/Ae51YCNTSmOg+7IV7BAsl2hqfLvBgKJN7kSa2KhJ2boF8dRd3Qrpolkpke?= =?us-ascii?Q?5mICE4o0/292LkgOAtVHyGNg5ZjuEhU0K7TdVN9Rdwsst6u4yRCdWGRNxW2e?= =?us-ascii?Q?5RbdtwOSlOvu5MLKN9EYpGFrZQtHf2WG9ovUPkGU1amZVoKDXCZlBerK0YN3?= =?us-ascii?Q?IU88pV/sCPKGjnNw0p3az1ErNUJHlsAHNkpxespA18T3g5r6VF02bR/n8xj7?= =?us-ascii?Q?AX9mPqh1D5obxajTDPiyt4C2odbNCkkgIq4Ev6mOu+HmQZ4lu8U5aO/PVrbZ?= =?us-ascii?Q?XkOEYRwjnx5dwTDRQx9HqMnsPPIySQkhz7PSxmZTtOCBXZ1mBAoToZXvnSzV?= =?us-ascii?Q?l0c8TBNqEEFGE+lLBcMt+LOxUm1KsvR+GpLDiUl4IooPJOzqdERMICrdQoiF?= =?us-ascii?Q?zLaVNBppLUcXdc7jSeM3oSm4QEMiTAE7kbwnJf8/NM8WO0e+8pDBIpnSVsdW?= =?us-ascii?Q?O5aOF57m5afD9ooImt9lM5kO/9PBRNcX/dROOmZRtrigtl26+ChXPFfw17FL?= =?us-ascii?Q?whCQoPlXYrl+ZkAO70x+OM3ExPvA7wfpm+j2YyBBZGrRY73EfxVQt3aV3rJX?= =?us-ascii?Q?WJFEDfMY2+sBetKvjBCRP0098awspRSWwJu9Gmm/JZNiA+tt6vzylvzfqoSK?= =?us-ascii?Q?HnMgGU1TJFxAZBnudsvEVqG1b8V0IA3CT1xS+VSZrMGNv6LhBQjJRVsuHTLJ?= =?us-ascii?Q?38nnFibLhnw/hhqXxUhTee0kwQlUGdMwOlyiMASeaqhfDkqZEPMMfRYvod20?= =?us-ascii?Q?K7f6JRMPa/6gzlA5BJMvfUeMFuiaKQZk5HZDViFe3m+n1zFQXDKzYi3FOn8H?= =?us-ascii?Q?ipxENJ9Y33hUowJ/eTkOr06MiMUuxn/6ju5lEkfH1bz5PXg8jBIQobfoJ14t?= =?us-ascii?Q?Dgua92vTtTPqmkoj9mspfZZRF6Vn6tCmJkiykh0yZ49OkZ/MTrPreLrroJCB?= =?us-ascii?Q?cLoCdLgnu0iYEToq/MHUGcXxfoY07+z5qVHMHJ304t0EJCFpcw2UzyqU8mJa?= =?us-ascii?Q?Qn5zi9e1azigQYfgX9Z+i3rAGn93XxyNNg7qxE32oJySAuGtyRdCyo9xHA39?= =?us-ascii?Q?Ci0WRGSQK5k9+pbVZc6MmhBmcz4C4bZBA2RFA/qmYCekTew7xPh6mMzLZc6o?= =?us-ascii?Q?SA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: xcn1MkNPdf1NnhYL6OK34G+PfkGdpJnkcVZHYGqC6IqgDAvv1R1KnKOfSuYQUTeys0S2Jx0rJ4QcfQvJqACyKrP5TWwlDjRR5cgZlIcKZYqt4pnbK0VduXttgaRRwRARQq9eIvqxjqxM5jXa0W6QGdDY0RZxNn3O4g4scw+2m8whgy6BxWWOfhiRSdqcAtX0rz5ZevSATua7ZEKeKF3XZ36bw7mm0RdiJ+4wLflx0V3nwCqXZufwub/qFV10qCO4e5ityZhyfbB7khoaQ2ufRz+KJmoqJ2vH4SOlZy/cytVu+gDjB42YQIdmfLETqmWLO1xMyWRLQ6BsG/5hapnwuTIXfaiG72NiAv+C2XiwAF4KdEZVVnkkBdc2kNOzHCxr2pW7CBJAYWSoyl0hO1EQwGmNen2FBRq6qo8GgWUxzo7dYUOeqtAd+qTE4ykadfRao+2ImtwisjBufJSEFtI23T7MD8lox9msTRaqIFUCLHAZZN7iijydRZ74StE7kxg3Zni5NYbVT1pILQq5zd+T1n5RPup7rmAbbprv/DBoevG19sxDbhYMR+TcaAKI3JCbCAU1uF6mLltXWwm07q5iSgNTxLS0rclatV4q4bZ6c0Y= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a6ba13ad-6288-4017-a114-08ddbf4d179c X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2025 00:59:58.7239 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: eqKurtGZJP4ojRWeZZe+G45RvxMJ3aSGImosxV9+1sxqLIHbNlAaNrXiuCRkDp2hmczg6vSGgSnKf/v4riuHzJXNbOncH04LoiuGtF/UXTU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB4832 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-09_05,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2507100006 X-Authority-Analysis: v=2.4 cv=WtMrMcfv c=1 sm=1 tr=0 ts=686f1092 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=Wb1JkmetP80A:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=RmA6VkjFzPJuhqsbX-0A:9 X-Proofpoint-GUID: 78Vy77Bte5xWlXVuZKaoCPjOEBb9dfUP X-Proofpoint-ORIG-GUID: 78Vy77Bte5xWlXVuZKaoCPjOEBb9dfUP X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzEwMDAwNiBTYWx0ZWRfX87+p3+lp8mz3 nJsKLYEM6b7EDhZWCF78qebmKujdc1m31Ar20z0fSUMOKqJUgNI8CUNQMP+WbsjgqZSSQDANaxi 5blJwuslrEyiPvaLng6EDoEhKswySqveXMIa9LA0Rcnn7StZmN5aqe6DHbs8CdRqpvJH8AKXrNW qnMa3Oiv0Odg1hglTFyZUo1b9bmd/B6chJAP/Kk8GIOeoIxfoge5XlM81IHeh7TQCdt3zndthtH nFfJ4LKtZwDsMGZB076pqBMXmSzzmF6KXupSxlmKFRL4I6daFjw8IbrxDX6kb15uEmJ189bMXnY aYpIpBzuFUlvVYJXGGC8a3yvnmvCFliSE2bGFwHhRXW1AxRTD+WJ7WOh57X6HHjbDtglF220FWu zFPQd+YvHPt10T4+Kk6QQJeN6zl9GgeFRNJ5fHlFu8fo0GdCT7OdMJN54iHEYpxRNvLyLkrF Content-Type: text/plain; charset="utf-8" Define ARCH_HAS_CLEAR_PAGES so hugepage zeroing (via folio_zero_user()) can use clear_pages() to clear in page-extents. This allows the processor -- when using string instructions (REP; STOS) -- to optimize based on the extent size. Also define ARCH_CLEAR_PAGE_EXTENT which is used by folio_zero_user() to decide the maximum extent to be zeroed when running under cooperative preemption models. The resultant performance depends on the kinds of optimizations available to the uarch for the extent being cleared. Two class of optimizations: - clearing iteration costs can be amortized over a range larger that a single page. - cacheline allocation elision (seen only on AMD Zen models). A demand fault workload shows an improved baseline due to the first optimization and a larger improvement when the extent is large enough for the second one. AMD Milan (EPYC 7J13, boost=3D0, region=3D64GB on the local NUMA node): $ perf bench mem map -p $pg-sz -f demand -s 64GB -l 5 mm/folio_zero_user x86/folio_zero_user change (GB/s +- %stdev) (GB/s +- %stdev) pg-sz=3D2MB 11.82 +- 0.67% 16.48 +- 0.30% + 39.4% = preempt=3D* pg-sz=3D1GB 17.14 +- 1.39% 17.42 +- 0.98% [#] + 1.6% = preempt=3Dnone|voluntary pg-sz=3D1GB 17.51 +- 1.19% 43.23 +- 5.22% +146.8% = preempt=3Dfull|lazy [#] Milan uses a threshold of LLC-size (~32MB) for eliding cacheline allocation, which is higher than ARCH_CLEAR_PAGE_EXTENT, so preempt=3Dnone|voluntary sees no improvement on the pg-sz=3D1GB. The improvement due to the hardware eliding cacheline allocation for pg-sz=3D1GB can be seen in the reduced L1-dcache-loads: - 44,513,459,667 cycles # 2.420 GHz = ( +- 0.44% ) (35.71%) - 1,378,032,592 instructions # 0.03 insn p= er cycle - 11,224,288,082 L1-dcache-loads # 610.187 M/sec = ( +- 0.08% ) (35.72%) - 5,373,473,118 L1-dcache-load-misses # 47.87% of all= L1-dcache accesses ( +- 0.00% ) (35.71%) + 20,093,219,076 cycles # 2.421 GHz = ( +- 3.64% ) (35.69%) + 1,378,032,592 instructions # 0.03 insn p= er cycle + 186,525,095 L1-dcache-loads # 22.479 M/sec = ( +- 2.11% ) (35.74%) + 73,479,687 L1-dcache-load-misses # 39.39% of all= L1-dcache accesses ( +- 3.03% ) (35.74%) Also as mentioned earlier, the baseline improvement is not specific to AMD Zen*. Intel Icelakex (pg-sz=3D2MB|1GB) sees a similar improvement as the Milan pg-sz=3D2MB workload above (~35%). Signed-off-by: Ankur Arora --- arch/x86/Kconfig | 4 ++++ arch/x86/include/asm/page_64.h | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 71019b3b54ea..8a7ce6ab229b 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -395,6 +395,10 @@ config GENERIC_CALIBRATE_DELAY config ARCH_HAS_CPU_RELAX def_bool y =20 +config ARCH_HAS_CLEAR_PAGES + def_bool y + depends on X86_64 && !HIGHMEM + config ARCH_HIBERNATION_POSSIBLE def_bool y =20 diff --git a/arch/x86/include/asm/page_64.h b/arch/x86/include/asm/page_64.h index 5625d616bd00..221c7404fc3a 100644 --- a/arch/x86/include/asm/page_64.h +++ b/arch/x86/include/asm/page_64.h @@ -40,6 +40,13 @@ extern unsigned long __phys_addr_symbol(unsigned long); =20 #define __phys_reloc_hide(x) (x) =20 +/* + * When running under voluntary preemption models, limit the max extent + * to pages worth 8MB. With a clearing BW of ~10GBps, this should result + * in a worst case scheduling latency of ~1ms. + */ +#define ARCH_CLEAR_PAGE_EXTENT (8 << (20 - PAGE_SHIFT)) + void memzero_page_aligned_unrolled(void *addr, u64 len); =20 /* --=20 2.43.5