From nobody Fri Oct 10 02:41:51 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 3929C14A8E for ; Mon, 16 Jun 2025 05:23:20 +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=1750051401; cv=fail; b=ek3dug462cdIFNG2e5wrQUswUzt126nxcpdFqeYMS9M0Hmlg2mhyyZj1lBXeW+8zLG6NX1UYxUWUziqkDC5TWe0ySPjqiwphv57kLC2UTOMoKooq/5m3c5E6S6R0eGaZcmSmB5n+DMfO9K9igi4n2QvsD5AFhto0vtQhzmt5kXo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750051401; c=relaxed/simple; bh=VckwEa6aLF06wfxYMncZPmiAQrtuk/GPH2gFGSDXge0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=oTBor5KopFVhHCZFRbsZ6yxU3jd8dU7SkjRQRaQ5aavkpOQMKgRYaZTncHFY9kAGPxiCmWGZ0yDHBhNKJPmzdWrvjdZRklWROHUJEvynMdgacEFFi1iZHSgBwKesJsALKi4N55BSqK6JNaGa6Sw4eAr+7Xuxxr5Z0YOFLTJKfR8= 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=eVQs5rvD; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=pGJ01viJ; 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="eVQs5rvD"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="pGJ01viJ" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55FMsIHi002773; Mon, 16 Jun 2025 05:22:32 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=pXPN2VaZbQhMEPG26gIGxv6/1QPE/LMFoEIJk6AIj+s=; b= eVQs5rvD7th2nfM9OPRkZsLMrYPatimDcvn1s2Au1AOtV+HWxGHuS5Vf0nFp11m3 11FiuzDGVTHo0emH/WHlKBjgAVUZtj8b/65VTqIyWqXWSu6twvVj2TUCYwYzqGVJ iDlYJr4IzD3286DPPv3BAq+T0G811Clc88/bc9f6S+pTa08arwl3LOtOZ06ci6bw n/HlM2o51SilqH7uQQW/Fl8rSac97rd4vivTWdQgaWFLVGInSMft9QvMxKuJllXf 59eGqu/rabTqn6dTlwzLHagQ7iBTNK1qbteL+rTfEbmqEjNwwIUREPcf1a9UWbEU /US8gd1mPJo5qDTdWC2qNQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 478yp4hqrg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:31 +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 55G3PkvI036362; Mon, 16 Jun 2025 05:22:30 GMT Received: from ch5pr02cu005.outbound.protection.outlook.com (mail-northcentralusazon11012028.outbound.protection.outlook.com [40.107.200.28]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 478yhdxw7p-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vFmF/6KiF8oIb7FnhrV7+toYkEI3+C6O/To/3JuWT4+Q4Q2JDFlxLz9H/3p+PKaSzNJNyVWD3C4QyhML51RyCnG3ZVxYSDun7XQ60r83ZuiZ4DamCovZQr/xfDckn2m/i0++zco0Fv332oKErNFwuf8pqsektr9sMHbvaFzk4iPSQxEoBfojKWFbiMeWQmLSR8/mGEgGYRJJgUlXRtwKyIKyVZ2Qak0dvEnedJ+OCOxamcc4QI1iJTqsZT/tyg7Si1BwBRswVS9giPiR+bLdSOO5ATDOR+F2SEkvseLTxE2tcV2+xT6Ah65hZ/VomUKEF1s7OMgw/8hfdykcYV0eaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pXPN2VaZbQhMEPG26gIGxv6/1QPE/LMFoEIJk6AIj+s=; b=j1UV4djLeoGs44bLqy8jPzsZJ20p5hyBDPjCIpc+hH3YaXWXRZN4wgFY2Seucs4imyCswg5dy7cuxhfJReoBtC6opra71g2uenZ9ceUQAkppkABhvVGKUTxtCSwC1b8oxYoI7wyGF5AgmJebdpSdPZTuoBQf10+SEyGmOYhO4F20pbt3Y4b2GQNubOuoqH/bL1AjCHy1AlYqUJVacjskVflUQEuygiUzu8nb2B/vcZMbaBpQg1w+i94UpauCSgsLj4KHHEbvGY2rOd5kIWz2eOtSxrNjiKobcmSjB9TBOV1KdAYo9DGSnpM+ybHQqI21qJ7NBqGcjjd+BBxF/r6gRg== 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=pXPN2VaZbQhMEPG26gIGxv6/1QPE/LMFoEIJk6AIj+s=; b=pGJ01viJjGt5er46YzgJ8sgA39wtfWaJ/nDzjxawieX86qe7DxomtA8gzysAZ/bYWFBE5/upIiyzTlWu4MKJrAPtRMherQDk/hCJdUAiCoeL2YaqkL9y/O7a7DJuRxjRug4YxxqDoZBfUQflzY4q3f3Ihx28NCHhH7rWELd15WM= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA1PR10MB6389.namprd10.prod.outlook.com (2603:10b6:806:255::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.28; Mon, 16 Jun 2025 05:22:27 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e%6]) with mapi id 15.20.8678.028; Mon, 16 Jun 2025 05:22:27 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, 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, jon.grimm@amd.com, bharata@amd.com, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v4 01/13] perf bench mem: Remove repetition around time measurement Date: Sun, 15 Jun 2025 22:22:11 -0700 Message-Id: <20250616052223.723982-2-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250616052223.723982-1-ankur.a.arora@oracle.com> References: <20250616052223.723982-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4P222CA0010.NAMP222.PROD.OUTLOOK.COM (2603:10b6:303:114::15) 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_|SA1PR10MB6389:EE_ X-MS-Office365-Filtering-Correlation-Id: e5b65936-9ae1-465e-3efc-08ddac95c85b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|13003099007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?LKnBHWLLaYyxu6mdXP+Gb9/7y7wr+gJLpG30XIxz75oTNasDWKuR2DqJWnFD?= =?us-ascii?Q?sN2e23cW8YcenNF9LAMW/fVNamnY56N/FrlyH6ssdXYeDvwkZvhY2elnJef+?= =?us-ascii?Q?ZKI6clxNDVItCvtJMRx06T7SBLORwRf8QswJEy0AESb2HCqTUGEQXywCwH0w?= =?us-ascii?Q?8EwcO+S6xJs6F6f9TRDkkLenQ84A+N2RzU6+ogChFNjhxKvsMNovAhOiyElz?= =?us-ascii?Q?VQe3EYW6mfn8gZ7/OGqYmxfvUEau/Bclj+7yK66sRuF+A1BW4Ue68nsutQjh?= =?us-ascii?Q?GjwilbxHHmoP+iOErbTkipSwoKR68MdpJO2xoJcjlgIP3a238RPtQduy/Ibc?= =?us-ascii?Q?5Z49+HLEwPX/NuatyFu7g/6DVGP4CCKmV/Jajy4FVe7FKuy4WMZSgYW/FMci?= =?us-ascii?Q?bHc//HqSxIHHXc7sKgDTpIszGPG7hGfWh61eypgnNLnnmsi3yaKUw2Qm8jNy?= =?us-ascii?Q?beT8i5ghRhNcTQVv19IZDz7U/uKCNTr+tj9wIjlpIf3FWu1sF7bWW/oyCOs5?= =?us-ascii?Q?SW3T3XFv/qL9gYlkLgC0KFwMFOG0F4792lOdyvnM8NjxoFtgEq2yM/bZ74sA?= =?us-ascii?Q?aiP1ahLdPBUDYjmnCQrZJ58azgjVmXnahtdxeLc/1X+auuv55JQtI6y5ltyI?= =?us-ascii?Q?aM1Wagq5BW2OZAI1QbWGOQ5MeBjG7mNuGdO+SV+DzBWgFHxcWBWL3zsNZoNe?= =?us-ascii?Q?WIsomdXbt5lRmOIG4+pRTzDPiNt0cCzCEIiynZ66uya894wO+k4QRtYq4Dc5?= =?us-ascii?Q?tRDhu6Z9+Vy4W/EF4KWQhELzMvttH+5guUev7qZd8za29SVW/qgoaVaVZKLY?= =?us-ascii?Q?xhWebE8m6dRoGolshJVWyip3EZ2tukvIj8B+RgP8JiYqVjbracEcNTbxEx1k?= =?us-ascii?Q?YBDtAJDl0HDi60l0cpTYnhKYLJNen5TFc2nQgmxtKkxzmmlCR2Ky8r1VSTMx?= =?us-ascii?Q?TmRiThLUF9CrMGizeeTv9tJFluO8zurM/HAqOY/w17onF1GRioCfPJ+3eNQz?= =?us-ascii?Q?GJzVIJ8ZzS24wAZ2G4l7D1vA64rMbePAwBGB189JWSJKRXg9QrejkeON7+72?= =?us-ascii?Q?BAUrl47JBMO4/ZxM8Ls9XJgH57Dlo7V751B04wUGWqSzkAjziR4SH4OUAQsn?= =?us-ascii?Q?w16C+2krCpve80kspmJHa4kJHTwvsRdipLKpOzTRTSPrtZH3tmed0jt+2jbD?= =?us-ascii?Q?bYLWD+WQ3dcMc/94Sr129x8nmQTmtBrdnAEZrmGqCx1TVl8iqPWuGRSDRh+F?= =?us-ascii?Q?RFWMZYDak3/IDhTq3LLYL7eQLAyJlPyTC5iUxsJEx5wkc91urYtGXccoTevO?= =?us-ascii?Q?VY6wbU9sZ3AomBfxcNXjhWGh+dVEScuul/3uuodkK5Lx+zHBdkcYIlWwjnUS?= =?us-ascii?Q?oq6JC2Q=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)(366016)(1800799024)(7416014)(376014)(13003099007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?pkeEGW7PEc8PllVXPy6NRQgg15yG5mw3pr4wIi5UMmGasvjIh6YqVk8uIllh?= =?us-ascii?Q?ezW0fWfmp6k2pZ4svdwCATYXqkiCHJegQp+n9qNpFEDJE8kgMenrHSD70GSu?= =?us-ascii?Q?n3dEiI96M0A0UPWB6EBKCTkQkTQT95H7bJ9bwJDDU1zXC8zRP1hvIJkHEaUa?= =?us-ascii?Q?h5YvayKYqTHCndLSg5pJnogZfrdtpGZD8jWZjhnPNyzIvU3ZlZJOpHsBGFI8?= =?us-ascii?Q?8Q2O678QE1LjojOYxvHxCqxdOiUg5z6KVhJROSm/stukB52ZeI4trYwDl7/Q?= =?us-ascii?Q?e6cai72L8eRO7hBlD1dKGsieYE1olZi9amZJXLtSA0gcNKyq53oCYyH1YJB3?= =?us-ascii?Q?e56q1WJ1bZznyhMrMNlv+pzBtW0+4jv6NJHKbMSX6tTavWOZHCIAF4kfIjpp?= =?us-ascii?Q?oUqpFSXNUxiIEHfahqm0UQlHNOMgua0pgmroOJXJF7UKqs6uUYQ1vnRRxFgu?= =?us-ascii?Q?SOjeKxdNSnPGVX8Z935lO2jQmX6/2QlEslwlj1hW/7Voe01kmD/IflCSU5Er?= =?us-ascii?Q?el70Esy6LbwIkILeYJwTonD5rAiNtP/UYf5drUjRY0Ej7xJAtT7IpvGkqXvq?= =?us-ascii?Q?kAr5JM8yzcLTx3BK/KeoW5XwNeqsHLpLbthTd5IbzdiPk6jYIW7/8bP0fLMA?= =?us-ascii?Q?DAe5aTRXEpX7SNV7sYobYQFjz5/jGN4Bna3hN5ur2WDDkhL1v72v4wWkYlWz?= =?us-ascii?Q?13urOBsxAuRxeg+StBw8GWE8hFhldCzdvbL3RRT99apzoDIYxssx1AIZnmFt?= =?us-ascii?Q?QgeTUqH+oApZgQOPCXoZLGOATIuRNi0g+3ENbWgG/Kilr5b/zTOBL2fI8X41?= =?us-ascii?Q?rMZoI9VR7pcu1iMskuZlJnabKAMPkwsYbQW4VLA8HMuexqOLQHuLz/48I71V?= =?us-ascii?Q?Pw5eZOJu00my30bW/AvyN06TfOnMW7NlgyF+QUVUh68r+YZXFic5slU9lWZO?= =?us-ascii?Q?S8/DOJ7Ij4R4hPH5faK9lFlVndaNvsdA3Is45vzZTDXGDXubWmcoQfxUmYJj?= =?us-ascii?Q?6gYbLk2HvgxfPhXmrdaoN6z1RbGfhNxEEH+mJDCX6cr+spf0QHpG3SDAGHJM?= =?us-ascii?Q?EJ63ClC5CwAO/mUis3uAC+8b+0kHqifDppzwXktu7Dyg52+FMdjgVFYwYBnp?= =?us-ascii?Q?HPC/EvBJFkAJDhyERuIfqKThSMaSyeTy1eXcvyFx/dAaQNd4AargTIvCgllp?= =?us-ascii?Q?qMTPVi1RLg8cZhoZYGcWwd4kjck5onrPK8rLO6SeATjMnNfVghQaCwxuZP0W?= =?us-ascii?Q?Nlx8qcPAark2/PvFwsg1wXKX7Wz1TA8vbCow+/x1MejtnJXn5WBw0f95dFnz?= =?us-ascii?Q?x0fmP0VKu3RUcDeKvuhLpKKuoDJYS6Z41V/qqtRndUnkw2dTxmTH9WG56hhV?= =?us-ascii?Q?h2nCFkqRufC/FcYnosaY2f8Eg/O4xzFQrpOqWAQTSITpY9+cUJJfa4LKjYeF?= =?us-ascii?Q?PxbjLEBeCab6c4Km8PN0aC6InlhYB1x/IhRlz6oAVieQ1Js/+53Ymk/d4DTs?= =?us-ascii?Q?6zisRhnU4W8xFoiqY4838ZLkb7O9LoG6coyb2Saccf50rlNfTkc28BrdMx94?= =?us-ascii?Q?lROzh4UGVmKtAWTzZNfwpB5f4tD8K2Us3Xe4G6U2/xP5rdCrQGofU5WoZyhm?= =?us-ascii?Q?FQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: nm2SklzwdQPW0Ln7Q4V0rQke/ot642uurjRZnPUZNUsROxFH7Onp3Hy7iHpqQVFN9oBObC4Iq9LgJjLZahdyU1HQOVIXp+Skf7ECkx8IzJ+4ohpMTrnfx/pD496xhzSCAW7zxDnDilRm6RZzA557OqPKL8SbdSteqaUMP4Sbru1j2Bj8xgz5zUawU2OteAejvOQwI3QZOOKiKYv5oA168Ocxog8TgfWlaJsnJE1UlyzHOZduwHBlLWc5seoBbW521J/Irb/2RzdhzkRQ0Fn/VHYJ/56j8LagAJVb19Nu/DqoxbnDYaPMr4mMiC4EptF/2A9VSkRE4O3aF3TkR/wse8epRF6twd1M73JJE7k3ctiHkVHuJW/n/4CjPGcTbhVf3UghPOYTVD3x926+krV6xiyuL98DiuIuDbWwRDjWHH22LguRgKrTKUQ1Bnjo1t0K5xktPDXNXY+YaQ14T+MP0Pgf5KcVoxbcJW/TiZQRtszD/5CAWnsel2/GldWUMwJeyhqEmQqqWO3SLhCDRNepQIwyUYx+O9UI+Zy4aC4jELeCh2K09C3LOMKUdAcRiTc8l3oW3YeDA2s+0Ot/OIUALOjoIDJZgOskuMhqoGp/2eg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e5b65936-9ae1-465e-3efc-08ddac95c85b X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 05:22:26.8978 (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: iVbobJTT6LU7Qvh6BTIO7Yayc+W3GL6zy6EcPSiTYUL2ABC/VUloAuWLeudPxqcIE8wdY/+Q3DtCJx1QvgSEq0TbNxLdzilNw1Kn/hMi06M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB6389 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_02,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 malwarescore=0 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506160033 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDAzMyBTYWx0ZWRfX47B9nPdfK2Wm LRSxJdQbM9XYvsJQ1NACqdIklNgv99STOkUoH8AkCVuF8GCMG3XQl5LFj8XLUHqctSoroavNttf FW/F1YW9+0mFXjJ3/w46B4+1Ii6iMFAW9nFpKcFrznjSAm1bdBZOLvnMbkhLavCMZMMgtO+kk8P XV1bPCM3v4AsgrHsnqORripVTmqOvmLoRTf2VPEYZYwnctd3Cisy0wi4vErqPXgQFKV4As7updF k7W3o2uSZKhBA8R8gdHrMxULaxBoePgulUc/wu2SxICmLi1NnbGn6pqywDD1Wk8QC1ep+rq8Q7g ZqM+rMX5AfaWIsT4rNb36BHsFMPAmfVmOzbuw8qOKTN4bW7TsxVBYYnZcWzvYyEas+tOCawmscp qdHc+uT4cs4QHsnmrhaxklSRKM6xjxLr3u2jckrJ430K+FlddgSAwZ3SHShglARQLOs8idlq X-Authority-Analysis: v=2.4 cv=K5EiHzWI c=1 sm=1 tr=0 ts=684faa18 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=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=QzB8L1Xlpqjwh72o9DYA:9 cc=ntf awl=host:14714 X-Proofpoint-GUID: BAsH7u4doTuWmSQm1uVyaJfU-I3HXCNC X-Proofpoint-ORIG-GUID: BAsH7u4doTuWmSQm1uVyaJfU-I3HXCNC 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 --- 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.31.1 From nobody Fri Oct 10 02:41:51 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 392658F5E for ; Mon, 16 Jun 2025 05:23:20 +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=1750051402; cv=fail; b=GUOa/c4mTm3o+2c4zqrfXMhcaH2sESIYcf/0e/KkmKRiTRqpNRrlmyjfzyQJtOo9TNkmP6XRBp2EoykI1KxGagGpSfZmh85T1X2iMc3m+D6b5Q8DBzo+0NmAE3U4JescCeWtYJrXm9ZV2D1pj1MSr5MQptePDDkkVIj6T6wAHkc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750051402; c=relaxed/simple; bh=eYVh5doYsz962ZOoymhs6Gvo9Fg5Xr5wIV4ZuaRIvsY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=KbhzI6ZS1WL7hvSGW2f83qugnZHSpZih1GD1QYYfzz1uNLus7wRw0oD/i9VCPGM2/y/T+CplSPoV86+wlgPM7Z78af88FiQNI3+HAeInf7HCsguQDoUN3TurvjfvgVam4a5Il4cKu2rPL2tM+93k+BD0pBUiDUg5aQFuiuWtSZE= 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=BPlHBJ2P; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=mQ1GsgU7; 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="BPlHBJ2P"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="mQ1GsgU7" 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 55FNGQpw011543; Mon, 16 Jun 2025 05:22:32 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=lGPlvjbxGa5eTNQvjkrGOnQai7O0omSNPrzXAbeYg5A=; b= BPlHBJ2PsrphJZ0HtpUIvR3m4O1ij6l0Epdb9GczkdICYI730M1wl4ODYAiRmeuo LKbcZDw3I66vFcE6a95jgMVNBHHFMU4dgBGhv8k6y8VoQIjEsJ6ycmfnjYxQyoqR YQRCcoVWGprOQUjzSHEuYSKYwsKPsGO6ShD47KGn/o011I1a9cHOL69AZQH0vfDV XwjgPeWWyFqOVF6SABU0Ia2s4+oL2jpQRhhHqA4F9Co15ZAtlGg5R3DTmPe6DhF8 zcHB30sorQlwd3AEvwjXD7eadkBUarnPmVGl6EgbJOHPJ5D0LDcL0f+YHvH/CUK3 m7VS9328iOBC/T1BICA5Kg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47900esqtb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:32 +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 55G3PkvJ036362; Mon, 16 Jun 2025 05:22:31 GMT Received: from ch5pr02cu005.outbound.protection.outlook.com (mail-northcentralusazon11012028.outbound.protection.outlook.com [40.107.200.28]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 478yhdxw7p-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:31 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dNVnAbGaEJCIw4JKjXjXTYj2vS98S3IsnT+KaYzBYQbLX+H4qALuudbaE/CtWkh27Z7gxvEXiZftPmn4rXVCh5H1I1/8o33eFbVWyj2gSZ6VpB4AZfRm5OyrLG0p7BFTFcVOKFra3lGUWBRwS/qeiBklNnMI3Ra9v/n/2t+P4YHvzFqK9EF4YV0EoaU3H4+7crlydEsBnQbkT4pmWZC/8q4ACp6KUl2jG4mxFqsUOBfEoueZTKmpH1u5FgqPFsfdFh+D2fBUVkZc6ywJvKYHpC2jEZjUSfcLkRSPuR29cFZtcTF+QPayPVeq7nLdobAtTVHrNszXjuA9kYcnNubxbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=lGPlvjbxGa5eTNQvjkrGOnQai7O0omSNPrzXAbeYg5A=; b=eEOAqwB9QaR0IcR4gg0O3k/m3lO9iPn07h5RmFhjnBV/oUhjvh8fd9VINKHTACJk+iMLZVHeNFgUtrnEUfauUWyAn0yCTLi0ZjHHKwQqWGxfCIwVd9UwOOWhkzNQMddWhUW/DCd/4PuWfewwBz2d5DZQl4FwszpTWuncLc9+FO3UsVpoJjbHEOOxV8zszj9/mZ6JrsAl4LQRuub6pw5O0UNZ5BRZ0uOXR3VDLqeB9jhYWvmGPA0ff/fhAlVJrnJ4MlPa4PWoxCGlfWWu4sRActiQwlpbowKmgsNtG99gua27BhijDDZ/x+7EYrKzJkVY9R7eqHP//20X6PM2tN55VA== 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=lGPlvjbxGa5eTNQvjkrGOnQai7O0omSNPrzXAbeYg5A=; b=mQ1GsgU7s9DMgiPP8mf8UYWJQ4gHnyypGcOY7oR5AjpJCqyvBz99xWilm1JCXemVPHPpcezeSzgVhE/MkSsT4w6k98stLfmkVLRfSNmqvSeXsla8/DfRHvDtzreElqN0yXL3daRdwBhNfiuXFmKFHuUSbB6+aaJpndK1feCgu50= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA1PR10MB6389.namprd10.prod.outlook.com (2603:10b6:806:255::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.28; Mon, 16 Jun 2025 05:22:28 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e%6]) with mapi id 15.20.8678.028; Mon, 16 Jun 2025 05:22:28 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, 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, jon.grimm@amd.com, bharata@amd.com, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v4 02/13] perf bench mem: Defer type munging of size to float Date: Sun, 15 Jun 2025 22:22:12 -0700 Message-Id: <20250616052223.723982-3-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250616052223.723982-1-ankur.a.arora@oracle.com> References: <20250616052223.723982-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4P222CA0030.NAMP222.PROD.OUTLOOK.COM (2603:10b6:303:114::35) 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_|SA1PR10MB6389:EE_ X-MS-Office365-Filtering-Correlation-Id: 741e9123-df1a-4311-0360-08ddac95c91a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|13003099007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?e7w90ADhmZvVr9is1EZ3FW3+yiYqqU1T1DrKkuaqWRmY3iCwYKXY47TlzepD?= =?us-ascii?Q?/fhri5l9P6uUz1GJyQ2PNtBTjQrm43fPT34e/e6ze2t8BHHq7KEESNi/d4Za?= =?us-ascii?Q?AlOrtZuWgGOEkwBQ60QEfUWNiWnXfdzbG2f62JxakOnzowq0mILhky+vrDIx?= =?us-ascii?Q?lDkkZluzMxJC8JJUzIspUryDni5zXnWMNrcKBUixyr4ZOlBPutwnwBQTEFep?= =?us-ascii?Q?aOfj6GsqeRgf+iCOnbc7hsbzA69/mIgvBfEqJ/EABQYNIWBjF2II+WjgazWO?= =?us-ascii?Q?sziNqz26F6FxkDo0Ze8JlSThqQl+NmmayEKcnvLs4WDG1C6gGArfzRaJPFVf?= =?us-ascii?Q?z7pXhl2LZgoMIum//sl6ZH3JhRhUCbICvQycj/DtAYGkWt0GvgZiP2HeBmjf?= =?us-ascii?Q?RlL+vS+BVY69Gewi5vBmhG36VQB3eLAIz2wYkZFHIcwtElFBsOLATg2uuYSI?= =?us-ascii?Q?WNuCLGoMqYDYizZ77E+NZ5HiHpeiFSiv98+RItud4GaTcJm3XbdFgkd9odt7?= =?us-ascii?Q?yG9gJXIRtIMM8jFUniT98T2Pv49SQUSy57p4LLxQGRLXIEmb20nx7+1VbwRe?= =?us-ascii?Q?G9FNRhgGalMpre8/VQEVnrjcJmgPbP0qj/mHoii97wTFxmWaT9CO8oL7UXuI?= =?us-ascii?Q?J3YHuIpcV1mAUB0ebsvQktOfsO60BW74Oe560Mk0nMaYI5J2Uix2X/iHcBrq?= =?us-ascii?Q?R+zWgXqaMqip42+n6wcaGZj92q/vJspaalImyAA1rnyR5Ne6tMtvKHetV7jh?= =?us-ascii?Q?4kJ+Ze7wVP2OiZQOUC0R+iIDDUPVQfNMpYxU0V0NqwHYzsAA5GrGWcLTrCb3?= =?us-ascii?Q?h3JwMwiCK0fpOodTYdra04erOlvlX9hDlZEmjSic8G1qM5r5zEUfWaQS/gDb?= =?us-ascii?Q?fRVPeiPEBUzVQ3SS0l+k/VCgXcseyztQijSLmyKdj55aG9O91WJtx6E2LMgQ?= =?us-ascii?Q?YhkTmgaWZOqTafcGkghVDN+7EW/MjbAVPFsUgkxjnq7n4rMnO3Myxp+l/VGh?= =?us-ascii?Q?gYRVLuzpZ/co75nNAQhGm56071wX+dZYsA5lmc3wEubbF7CLzEWRUG2BddD8?= =?us-ascii?Q?/fy2AUcXW5OLt1XAYXZDcPFC2P1HlpZzZ0rFwTT8JwNyCJJSxIdb6do4Lt9q?= =?us-ascii?Q?fhWifg5b7tSGtE4XceKxYSiaiW1FgwhGA4SPSEpuRj5b2jy3VhgSMAYjVotM?= =?us-ascii?Q?Z5p20thcSYlZJTAMpnQSqw0kQ+d24SAfnTUAmwa15yGeQBKXPcbQ9zVM5mrA?= =?us-ascii?Q?kdZQINmiNRg+MtOD+miJWw/szlkjYx478CNXPSG4lIiDqsAL6sSrwCN8gnko?= =?us-ascii?Q?RjcIY0a0k1894lMdIKrKIfRU6rEJYyeVNipFcjumztHImeXqfX2D3+jEhG9H?= =?us-ascii?Q?pB0vfBQ=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)(366016)(1800799024)(7416014)(376014)(13003099007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?fqG/OwmnzTIXFS5UTbwgpL/JFleln9nDgGeBlbWxgYaIwV27WcpN1Quix92O?= =?us-ascii?Q?IW2Q5NF86RcB2BYv84J2MRHbfrIEomQnAlCIsLiKVZwLuUkwGSW8uqiDAzud?= =?us-ascii?Q?YAjdt1RhaiAr5h+8keyhIkpNnjiaWffc654r+iUeaHS2YtwrgP8U9bu1jjMy?= =?us-ascii?Q?XUZa/PQMWjFWrUejsgJswcGQaFd53g0jO0D8g8q66DIF5vD/ajMTbwtpjF3Z?= =?us-ascii?Q?Nkz4wBoUWSTwgqb7CHh2A5wE2+Vmte4t4ySHorzeLcZyhnlVePgrV5R3Fglv?= =?us-ascii?Q?uhNF9FfPIOvEtqUe3NUAFXougfeAS9/rq9/Idae0m5+ywSFBStlEzEoIdcDQ?= =?us-ascii?Q?XY6aR4jSisFMhqsVAVF7xX8xDCSfJtviWnQrfS48wdXHiTkg9KEEtxB4bBhs?= =?us-ascii?Q?pF0mfEXTayjkQBQV1f/YcA1AKL4SQOWaXT58bcZmSbFaZcciPEWKp4fhqmLf?= =?us-ascii?Q?Nn8pIXPDlQwFBPEY/ATyjH9oG3rzZrrSPNvw9V4U058Vo7oRxx5oSD6GUhJF?= =?us-ascii?Q?qXUE9qWDZXsgTayQ5nAwsMdYwsegbOJni72O2EbmK1V+FbcQ1xOnx2/IHy0P?= =?us-ascii?Q?df8jasppQ1/7poO9N1JnNyRgKOqRyzmbIimWqBsRfco2VMED1GC2g560F80R?= =?us-ascii?Q?XBraNHE9vGZAFbDAQur8l734HHgz+8Kl+uWBE5YdBFKtccq9wf/APgZlb8yT?= =?us-ascii?Q?RKDzrOvmYIgZAxxyfup+6hPaSTu56R8DEbQgPsGrl/tkOLMS88xzRMRrvXPX?= =?us-ascii?Q?+7l5Fqlc1mVtgiEPaPn99iJFDfjBfag0cilRQCcNNI93B36F2AXIvMeYPXmQ?= =?us-ascii?Q?KxkDVoFiPg2ckk3ts4yfNUdsRHQYryG2uN5V8qBEXoZ+Hb384OjL1WKVGFpC?= =?us-ascii?Q?yjYQYr4qN6IP5nnVR1zO1GIPoeZnLs8ZSsFHHyWDkuI/mS+9XUlc96Wa2TaZ?= =?us-ascii?Q?CO6cgB4v6joWU4ra/2f2aSpsTneWKiFqTcohv/Hb2mEnaOj1RUj3aDBQ8lQd?= =?us-ascii?Q?KcNUIog7PivKPnQNJMkCYbBZK1p0k6qt0uTS5fCo2ZY4cn+qQinPcJx9XJrc?= =?us-ascii?Q?k8DO0nrDLypGWlXPML1q/iH0a2UrcsIgacyQZ4kdBPa0D3/Ni1kJ/Dnehnn7?= =?us-ascii?Q?WDPktTQviFoLDZil5xIrEd4bk0FR5RixISxY1Oal+OI7tdUx9n0Y78aDtX9V?= =?us-ascii?Q?88URSFsV5B0ZYT3UzYjhR8S8nJi8dTxD89JLtMNTE+Ky7VM0qAqksUbOM+YY?= =?us-ascii?Q?TEWcpC9CzkXHfcfZ7Y1oWM1bMVzw048JmwpWeX3wGsI21ShLp5eYBlwYHxZT?= =?us-ascii?Q?6J2VY/9Mh4VAVg15wfo/6gcU8xEtnlE0o26ert3g+ZnHiI/7w3aJcIJ4ahZK?= =?us-ascii?Q?h4lv8FZDyyANWX57iS0ncproCVS3urJoolpewE2n5WSQPBm2TrdOQ60m9wlH?= =?us-ascii?Q?sn/sv/crNV1V2C5EHyJ1LfDra5dLrC3igaUJg9ciBjGP2UhrNEl+KTeeZyFn?= =?us-ascii?Q?TAmkPI1I9vNTD+okgdbsLg2B2i8YniHgdQrhHvgwks5PlLYzazFx/ZGwc/lV?= =?us-ascii?Q?2Bmzm20T6HwSLD3laORln1lXyCu/Q1MSI+RdfWCwvE4i3V7ClxEygiUxXtx3?= =?us-ascii?Q?lQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: hQZwEkDa1KNFIbly6uhOnIDkrSQi/U3ddn0fKqUo5j+flYgHbBOAngU8cFMVM1+siNhWVfbU3t8vSQiDKVG184/XXNB3CQSzhd+C0XHfrGfcasOh6cDPD15kOPKTCr0KwCO186kQDTVs9o3zVNuV4Gam1UaLmwR3LAFI7bUKPokLZX3jNn4HBZfzngn5dLNUIxpzk9JtpXq24ECU97L393/mbt26DzOWGIAnvKyQWX4M324wgkrGHlMVBefXpzPKZfghKTvkWqHghL9ZCh1SF/ubW2B3rjUoWAotuWW6cxCUmTFek65u5stDOqTgL39dqVKM2QZFby/N5DL1hm1+1YYV4f9ZJ1sbWlaXbgwgCRfOuIEmoH90J32Ttsy8d/ksEamdrNvhQg5ZMyTbmGM3L/ps/je2tA97J6N142QJRIn/vSlGXc4bj02A5Ujqf6GB0o8cJyHPN5P4c4MtuPZSH4WuidpkcnJijUWsKyVPo3lh6E72ZiCotietY11fDhBWPZ6EUFYUPtUgpiqmDnd0tMbB72Q/qyl7z6HDsqYP/AsL+D2PxHcs0/yljlLAnrCa1pJ17j64MG7lTnhsGrEf1IeWNXi2jnr/Ev8DANdhrMY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 741e9123-df1a-4311-0360-08ddac95c91a X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 05:22:28.1417 (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: ctgQj+3AV54cDpeI2pm/p64Hm4hPf7wCyzmGhVQt/26oiLHHd7vgI/0Ho4sHe10ocGwb5Or7CiG9xMhfiO0VAHHTMmOLBNewuc6h4GWbnuI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB6389 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_02,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 malwarescore=0 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506160033 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDAzMyBTYWx0ZWRfXyrlBcDJ+gSdA xQFuKussbSsoT9QX7J6LieOwd7E6y1NoY6ztJefb9tK/61wYtmd6/+fCNtrsjbcOO1f393bEudZ cvCLVERwTGb5U/LMRaEiMAbWqSIkQ9mS29pkyXjf0DrHUpLt0EGDoGA0tMsBKlezMo1P/nW36k7 3qgvxjxSSN9cDaqZV86Mj2JxuX17p23FOh1CK8g+W4GjX99koGjOlPbso7oBBWhgKy36+M9cPRB 57vQohvahGlEYpHq7Su7MJOkteDLXPRD0+iKKxgtEbY49y09r3cXT7++H6igi5IabLGWiDoedoJ RgIzr5t/OP7iT0YTc0SKM/w8gli0hHsZxu+BLF3Uim0SHTnmd3MsHBhQeQM2dOeuVHpgLGrQreu vLpbQFDGFCD8pmUXkdY0AqARhQLDxwQH5LNeNDzRzSURKhG1VePJ3FQKa2on6OeifT6YO5e4 X-Proofpoint-ORIG-GUID: SGkk7fAipHNYwNz_5P-1tAsHhC7fwuei X-Authority-Analysis: v=2.4 cv=X/5SKHTe c=1 sm=1 tr=0 ts=684faa18 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=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=X4Au_8HLBps5sezr5J8A:9 cc=ntf awl=host:14714 X-Proofpoint-GUID: SGkk7fAipHNYwNz_5P-1tAsHhC7fwuei Content-Type: text/plain; charset="utf-8" Do type conversion to double at the point of use. Signed-off-by: Ankur Arora --- 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.31.1 From nobody Fri Oct 10 02:41:51 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 A9B6F1C1F2F for ; Mon, 16 Jun 2025 05:23:20 +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=1750051403; cv=fail; b=HHwenI8Q/YqTf6OsAMo4yEn82Gx+5TzGB6Wx3c79rspmhpaoyT59slDgZgAW0OqM+LvjyHcQXMr8UDw+F1man9tMNiuENw9u+Xi/aNLJO/keZ8fyBfQUqrZ6YsJS1wGPHpwTf42G5uvsW3cr8JjV4WH4lB/AE0uHhMC47K7XDKo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750051403; c=relaxed/simple; bh=NqqYGfMJMAYm9SnENqg6t2b3xunBMZ6Ys2pzTc5QHCk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=pDzWrAA004fnRzZBRXlaOcCvQlLQxfCc6EIrs7Fdc3oiyKC8JvcuieIijglZuVvV1UOz8RfxieW5e6HPXCsxmLULtwmktyeIxwQ+r9g52aPMF9yNJuLs81rjYRVrNHZGBuwAiIYZjzLanzNsiXm8aOzwreY4sFPNSWKI9uzmjM8= 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=PbAGG67y; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=TurtwCKH; 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="PbAGG67y"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="TurtwCKH" 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 55FNP2jk014888; Mon, 16 Jun 2025 05:22:36 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=BLtj2DEAlnxGKa8Y6OktlMYpnu8htJq/wvAHLDvC6s0=; b= PbAGG67y/tzzoxTPvun8O/JDOyeshLih/kk4+u2GLM9gWtPpmNOEaxciw86+F2vf 1CczR6awAmWAa9JWrTirMJLmAH04YwCTKwVLjvvZMtVs6AuEe5C/KlatDfbkQoAw YK5uUFUBDmOhgMK285lTjiX0Llyc19fL5v1/wm5zV0A64O4wMEWgRDfuxljrGnHI CgcTUukzr8mVKCR2a+6bvyPsUeK6EM3Ju+RZegZZg+3d1hR9/36dq+ZEsM5FV1LE r6ECHobIRX5x1ERXURRkzY+JUL2cHmlQmSG5G+DomVTe4/4H2xuUklP2Lg/xEkrU 7THnJMfV+pNbTSbJnf4DIw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4790yd1p5m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:35 +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 55G451Xc036267; Mon, 16 Jun 2025 05:22:34 GMT Received: from ch5pr02cu005.outbound.protection.outlook.com (mail-northcentralusazon11012023.outbound.protection.outlook.com [40.107.200.23]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 478yhdxw9f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RulXiNAgLWd4Q6Oqd/5zRZ/lzKdyX9rKXqDaKrxr+9unmvseZE8Xd9sq4j4Gzb+7wWxD8e47C6mTJ2Q/nTNXR05WXPHVyxLaC9JezpB9zz9QSkYO0M3kmyx8AqVTz/vgDPB/Vo90V5YJmEqZt30yYPnDH6nPHzW9gaEVqKS3hpGtC+5+K2JYyE2bWYrixyCghEnAz6yZxve2Vbf7AiPq2649LaqXWwB1CkTmAI5dQFKz6q/MYaloN46IftLKrtwPDolTwfMVfaCIhmWvwIVhEyCSzdYOE1FNHE/hs4kM9ov8FpTiGNHm+zqcakVtGfKyW8Y3FfVAYxeONvjh/IHcUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BLtj2DEAlnxGKa8Y6OktlMYpnu8htJq/wvAHLDvC6s0=; b=jmAIUDQfP90O4hyqk27Bq1M1tx7ZsJtrB4eOPWUCur32OG+exqiJjd4fyXV+sFeK1Ku23z3uCatkpdovF1Z53PB3wqdNuHuo0f4vrGgzuE5lvmEwrPn5NWyxPhnXYkAhz8uBuegwzW2Sn3kIQd5T1gTSHs86IMmnFI/3Ftu/1+Hyxr86eI50/qtrhBYHNYyB5cCyOJQMIxFjjJ7iSh5dB09G+9wg0MvaWyQP4YNxTvfgxGdAy98oh1yhAmz8IsrVRhb9vG3BS3DLlFaG1EVAp1oDAyHvRupp7F6H9eeX3ojTqPpDmA+aNEgdLscV97I7l/9oRPHcp0b9MeiioUVZnw== 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=BLtj2DEAlnxGKa8Y6OktlMYpnu8htJq/wvAHLDvC6s0=; b=TurtwCKHptL8knZUqJ8a63QehPoP9miwCoSlXRjTnsKRU4rImfS4zNJCxKvi4p0stV4CdHJowaK/Qbo/FYWb32tZ8kA+knPyL2C8+PZsDL0l6/nwWeo/uHGQbbSmWbOFDR6itLjVcAExIC7QuNfSX0YjMxIzhX8oixTvXUQMK4g= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA1PR10MB6389.namprd10.prod.outlook.com (2603:10b6:806:255::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.28; Mon, 16 Jun 2025 05:22:32 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e%6]) with mapi id 15.20.8678.028; Mon, 16 Jun 2025 05:22:32 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, 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, jon.grimm@amd.com, bharata@amd.com, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v4 03/13] perf bench mem: Move mem op parameters into a structure Date: Sun, 15 Jun 2025 22:22:13 -0700 Message-Id: <20250616052223.723982-4-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250616052223.723982-1-ankur.a.arora@oracle.com> References: <20250616052223.723982-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4P221CA0023.NAMP221.PROD.OUTLOOK.COM (2603:10b6:303:8b::28) 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_|SA1PR10MB6389:EE_ X-MS-Office365-Filtering-Correlation-Id: cb407d0f-af5a-478e-1ab7-08ddac95cb88 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ZIfg65dZ+c8PoxgkD4YaKLN9FGGq71UL71QMHN9knbDdsJvRqyUc7bC7get5?= =?us-ascii?Q?gjVTYpeNRMmWVABjwjc8jRzrqtCJd/gZPE2XN9INeKI/+ThBAEygTSycAn/b?= =?us-ascii?Q?BoHpexhoh+REfQbmB47zY+4RGJM2s7BaJLpAcqSDqGnaoA9oGLlwQuhoGJFu?= =?us-ascii?Q?cyNz8QjSSyWE+QtKxeXstktgDvWCNSUXeriFtN8CCJjeA5+/mjJDTPQxs0q/?= =?us-ascii?Q?daciYZroh79ZzKRCKYWjlZx6g9OZgtYoqwdMpB41lR2CCunBM4kuxaWo0zZk?= =?us-ascii?Q?HtLkj3xqpjsB65+ricuYY+BPBkAs681E7xbA4getZL6YH+x4t+RIjtBbLEpe?= =?us-ascii?Q?AoVjUe+LSi0mrwHfk2eGgbQSq7DARAOarVHCFIrp6Cb8WRfxvrcJ8nn1z6nN?= =?us-ascii?Q?UdWbxfYxuTy2cmFke0k0oe9k0fJsU6MWnXAG0F3TTf+me6T06CZnWHXfQIxH?= =?us-ascii?Q?cPx41CXADkZMwNOV21RG+IOK4ScJEau3wNofG49gc1xU9RT7b6GO20ZFsb+Y?= =?us-ascii?Q?knuIq0zooWi/94WhcgEB/ZASpv6Y2+4R4Vl4JPUdwCoAG3dkl+tD3BIPSsuH?= =?us-ascii?Q?9sGyf0Zad2BoI0IVresAhHMh4vu4nRqMmQ0lij/nDkHExZ0sdZxT2BosdBzI?= =?us-ascii?Q?+8PFRqzP8ikK1E/kXgj4A40BohV1XtZjzXUfh6Uo+VHi+ZxPleUFQxcCtoci?= =?us-ascii?Q?jJU64PO+LKcfd1VndoJBu10xw9TKPYdd6b5iN0bt/6icafDewy0rJFo6B+Zd?= =?us-ascii?Q?UxaY5+mDEeHBoTKItlJgk+If2GX2ve4jodBSh/NaRuwpTKbBqKBRil6lUXmB?= =?us-ascii?Q?oBlpUCZHaFmt4Tn7KAEiVzfB6HyhvydF4oj8nKtoqxCp6pul5XexEOyVUaYB?= =?us-ascii?Q?18RjcwDbQUkepYSN2bZ0bhTa4L/+S13rgWhK/blv8U+erhpzdZqo1yXtk4Cn?= =?us-ascii?Q?0Aom4YAf8aZVsUO1TcuCZnDiFTwj0Pur67Z0ylpSVebm0argy4DbgLyB0n1d?= =?us-ascii?Q?m2Xn0dEDD/wIrjTJ7R30v6QpItcVOKWK2EZpXzg+5xm9n3jEWQl52C68b47W?= =?us-ascii?Q?EvwMhPBcsQug2m8XyFq7exXo1RnroeMs5Ir+vtnX9uASCFO0c0I59WA8qfac?= =?us-ascii?Q?G0pSoFihYXMaAetLG3zzyiZBE8QcG3W3iFejMov2a7AlJKF/lPKsGmckvTer?= =?us-ascii?Q?pT9erVTkjyPWoppICHWgSl+btQrmJ8a7wmBVAqH7ugfZS737WDoeaNYn92V1?= =?us-ascii?Q?b+qNeKQFf3S7iqliJsuT/ifdSauDXnaXhH6dXwfbi2NqZiLZLzFTu+Mrcm6V?= =?us-ascii?Q?IQm3LYTLrXUK0ODtFxVL3C0rEZbEgM2ughUg9nhpOlkOc+kyS1eo8ga202//?= =?us-ascii?Q?qYJTR9EWYnxGclDOLguRP+dAN2J3Tbdml+4SpDkVaDFlVf6+PQ=3D=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)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?M7QMvC6f0xd4jVT2usS37al14nU5pyXd+mQ7s5odCs3264meV7htHQmtVhhI?= =?us-ascii?Q?WHf/lM1AB4PNMOVQ8lZ3NlMniD8qzI7/IywDWEuJ5YLLxM+OwEP2SWbpq5o2?= =?us-ascii?Q?UPdwu1WW7SaKB3WHdqJ+SoX9bUM66deZEYGLAHbJo2UpfoYbXaG0C+nAJBv5?= =?us-ascii?Q?r8EYoMeMOzsScEZ+riLT8FdHjaNBZQ0TuudtLZsfiiU6PvcFJbkzbr4t7+6U?= =?us-ascii?Q?0M3XgGgx3XUNV8BoURWhYYfH3jpIZPc4OPZwKVZQB/Ug3zx1X+Bb1yitK0ZL?= =?us-ascii?Q?kQd2LAh91Ba54EvUAFS1rjVH6523tSLeeqkcgsZuMfzFGMkhI70ci+JX2wJi?= =?us-ascii?Q?j8/pNFxM446iDQuu9OaD5NIms2WI/GtYtlFW3n0iZQD8yYUBlIcijwUcO3CN?= =?us-ascii?Q?8EZc1YYHn0A34XehltJHWqDqO/xgkkgD0pdnsCwh9pxeTmJ+gVeLrGYAVW+9?= =?us-ascii?Q?jsL70iOWJWlaZqKX/nFwoAOZEcbVmNcwyOIYYqlfJ6Tg4lvxKVIPPExIz7qv?= =?us-ascii?Q?spj2kkcwTTuYucKchVKkewNSq2XxzrkW2rxXTD6o6ad3l6xZrPYQ0FAfRkuL?= =?us-ascii?Q?qBKML3R2HwUYXTBOzPig6ppN5vW4HZPkZAppU+Fm8XwF+Do6ZbYrBeaqJe1X?= =?us-ascii?Q?nhd1sZH5KiZoYQVrjOHAvGexcABqHl4WoDPLryK3p4H+qTznEbM6ixsHqsgL?= =?us-ascii?Q?PAbGvzGthDYslbb1Jf7mI0C201+J2tpUceol5PrIevWixGQU5XlQ+zn5BNNT?= =?us-ascii?Q?nCixGkaxyhyyrQtjDqvqTA16xacVLCL/hRe87JJHBC0UwaVnRQEsaJDBbtuQ?= =?us-ascii?Q?bHrQDMPWBPjeNMXH09R/Z4rsNesN9e0jw9LJMh+kHST0Tt1wUaOlRV5zRI8i?= =?us-ascii?Q?iKNmMv75LDhpjT048quLxPMFWgukj+6uLQ97RZx+rjtqB4gj0IXPKLmgU/t6?= =?us-ascii?Q?hnoirrQuibQDAXlEJN3WPQugNsw+9k2IjtAlxjM45WYrfiQOJRtzxOYx+YBe?= =?us-ascii?Q?isTak1xTqKabpG+1wwR2WDRmPYKMeZgZuYaTCjEuTKhUSpoQHjkzJmHhrvrZ?= =?us-ascii?Q?UIlxu/t9XETpzwFsW05e1pRU3YtzuC7YkzYMnidAELPbMGusalwuoXa52NUy?= =?us-ascii?Q?sj7srLm7Sm8hkGa1oIPMi2AFFZwUnwQ/Cot0sd3zUU+/0OZzVWr7nzMngLTL?= =?us-ascii?Q?Aw4gKoWHIGgY5MzS2+wRnq5ZFHqx7UCrQASMpIcRVxaodXH7BjoypJIj3B7E?= =?us-ascii?Q?WmXeREyL4/sh78aAgTTJfWXfXw0Q6QltbhutFCtFfmf5XTwiWVDYmawQ64hW?= =?us-ascii?Q?9ltYGlQmWTuC41SVmV/CEIOgt2djg//ybrXP4rE1vgcQy+aQoOMnDkPt6Ppx?= =?us-ascii?Q?N2I8gbrHfbIimP1HtpzmjmvHt7A85U7YalYMX/OdmsKF8OZevB3KeztoRlei?= =?us-ascii?Q?UaBfyxcvsBj+C6jk/FmnYbLKBdmeaysmTmQhZMmTFAHjXyT26tOJ0BsZ/okS?= =?us-ascii?Q?YIRfC+x4mPNgCeksxIkDWna/XPmU/n/27UR6v7HO9po3nWRNXorXieA96DVp?= =?us-ascii?Q?IZYFYdvs1uJ3h2FPM4V8Y24n6ANiG/dRlVO0ytD2V/Jh9HNaIOdi1nHlBMtC?= =?us-ascii?Q?Wg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: eq1oRmxRlUvFCZ4pB+7dVcAF2HbqjhUZOqUvB6BMuCIkQy6/qMRcX9bZw42LYqB3APbTXSB3ErXu1qgGtJW22S488s23jsPrL5O02pDOp8J6eFNX8VO0aP/wqknpDGaMDNnTacgU7K/rZDhHSG63HzYetyLE0NVPBwaeH3PQ1OzPH6xfkRjcZupzYPPEhCreSvpwysO2SZT+VV3fPYRGovnMqUy9EzjZKaDiHJAcLPJ2TnYcRsHmKgl2JJctZYp98w17aEFYm+wTAown9kHv1cBF4WpqlM88IezWqbUBF060T+gFf+2fvsOb+LSx2IkmG2TR7Tos4T01Q32GDtuaakJG8zO/ejt7Q0hcli2BM12EXEQ/U6c3RXDiFx1AzHTmn0JyG55L7bCmsxyI2dAn6fbTdDp0OvBjDUoJ4A1aqWSAuXGP/hDycBMzGH+FU6A2TUpR+rciouUrLWvS6Hj7zru+qxkuBd42ANm2hmy/QUVgC6NL5MCmD+2P+YJCOVfoQnpNrim7jJk1nzC1mqyPpbyld6p49RVEHnD7TCDZvYNNn7tCQYXOduc418DgmLp9xR/dKuvuUuHgzvqtIDCRmFmNajLqdySeNdN9BS4KsCY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: cb407d0f-af5a-478e-1ab7-08ddac95cb88 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 05:22:32.2478 (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: tYwZTL37cEkWNC/1tyrEiOlnpXv6kUXLBGPnxMMLG9YV0DERkTYQUh2rb6YgWG9p0d+/2yH2klLlEBjBDH4juciF2MeGALkLGUKGUkZYi9w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB6389 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_02,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 malwarescore=0 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506160033 X-Proofpoint-GUID: X4dbj25eNj_01FzTyNVb06tiArLG-ugI X-Proofpoint-ORIG-GUID: X4dbj25eNj_01FzTyNVb06tiArLG-ugI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDAzMyBTYWx0ZWRfX0Azg5dVS+miv I+kj80Grvr7xQlqdS10izIN3hgE/hF92yni+NvcnUc30oeDopdlHq7WwW8zjPVtzJ8h7mm1VbuH 3SzEweaUVBNz7sz8sZXNGUtyBRtgf1vmDM6CfyYpp2sf1w32UqMZr9G+K+Eprj9FpgSrYsH2JE1 MphFGKWzVc2Vcrg6q22PLza5GxmDGR5kjNjigyVd7FawNeyhc4mKGYJQD6MP36kcN/Aec68BJlc rsTV/T+cBbve9/Mo5LCfG+Kl7yECcxIKwnpyPI5PIQ8e/D/1P8DcaLFg5aaQsUqVB0XW3OsjVoa fkPctzAFFMV9cFI3w/yFfGfP4BHhfkDu962UJSjnQR3Y0qY19XmuUBqFXeLqtopa5QsrCr0EQPB 2nukHPtVfOrolaO76G6xxeoQ7thtbMyjF1yu1rx5k5ax1EekSg+kXfIc9k7zspJNoyKRE8ax X-Authority-Analysis: v=2.4 cv=XZGJzJ55 c=1 sm=1 tr=0 ts=684faa1b 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=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=_WLpKjk4XQ775Vi3V00A:9 cc=ntf awl=host:14714 Content-Type: text/plain; charset="utf-8" Move benchmark function parameters inside struct bench_params. Signed-off-by: Ankur Arora --- 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.31.1 From nobody Fri Oct 10 02:41:51 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 C083D1D5170 for ; Mon, 16 Jun 2025 05:23:22 +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=1750051404; cv=fail; b=i2vGhuAiblEvKJoR5kwF0ay1NUrWmfeA7LW8HIlW+7+9F+M1OSIFEOO3DQdS4EN+ZvwNoHOmIKdiD0J/MWOm4tg1eilCiGcq/r0/OWU/wjUiKWFkfSC0w4DuUzdaoHKCHNdpUKy1E9waV2MBjLIFRw++BKUkfFmbjg2xYjNsTjg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750051404; c=relaxed/simple; bh=8/CHcg0/hTJBTx+kT9mJAhZ6tENMvz/lpnfkzC4tMYY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Nrq9FjVU1F6iuIUAgglw1FJhu/NS/bSchuqo1GWvP7Zllcy4SAnirBvgl15kNkHlmmSr93vjSqwJC7b6YzyZ+HpdOC17qLMRxgUNG+bShl3duUMnYmAXvEOxc1AvILYZLZXoMjb+DMIangrGcFRitUqf0McAnvXmoSK1wsZJc9k= 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=jLHBEdlg; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=NGnB67Uf; 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="jLHBEdlg"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="NGnB67Uf" Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55FNcUMb016915; Mon, 16 Jun 2025 05:22:39 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=KjietmktbsMhZBgvNSUEiDvNza5sYb9DSBoSut45yuk=; b= jLHBEdlglmTj0Yfdax/n5/1yd/IWTnTBSrN7+GzzenqXpvUiIEvYwUisYg9WRsiv ECHUEJJJP0W/cliRAMEdGX7twIaursE2rKuQZ2deGiDA23CzNd2kyfQYBP/G12ro tjZstqchGhfuv4BupDfOuurXbPMnj5uuxvCi3tkLbeyy3mly+C97jEZLWw+NgvIf 08AxA0Qvfskmc9f1Zh8CVA7hJMokLSO+2R2dWLiM0QFSt1LXzEAIjGKn3N8nhBcT c9nWTpf5MjUZg5GJ3jCilYinDtBgtst0juaPJw/6lwQnjH19qRQ3CHHaFX22D8OW SYQZ3Bv9SC8+cqEhVWOF4Q== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47914ehp53-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:39 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 55G3A3eS034385; Mon, 16 Jun 2025 05:22:38 GMT Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazon11010007.outbound.protection.outlook.com [52.101.61.7]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 478yh777be-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HhTJpexBXpqI+mj5TfuZ+iGZO16tCdhdkxgsB1gN0kkd6FWE16YrXvzTGrZc1WeYYASY9cuI8C0m7iiBJKpqCtReRGkhi3jNlGyuL9oAuk1Y5LiEQ6FbMp+PEHSoHMo5UJUMhodhwIbVvAnqiWnOkJrCbeHeBAS+Q3H01LbnVoefRm0zjVwX/LmCpabqhcRd3kLMzW3tsGT1zySxjb3FFrjGL2hZCPTpnVJRuacMb95XvKRYHr92ZFiYrtpw25E5gKS3G10FDZpAOrP5euz/5eXybjR2JmbmwApmYyykwiShTcmEVlsyyoQ5kN5wlHEHpSbWcF/infpBlyfivTJIpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KjietmktbsMhZBgvNSUEiDvNza5sYb9DSBoSut45yuk=; b=CPGgFfvmF9+C4IBVw/Zg/t+V2OlZd0trsmTv3HrGib7hHDlUe2LKHKkpiC9JDpsGrDWhFuhVjNjVYH7QyKAEnb0FSHLH5z7h7Gy7OPNlmF4dx9IW8ZQXJLEbNYOulk4n5VY9iEgiD2Lpr2+5boJ9GEX98ZWJ6lrwup/hQ2nEiBYHRAZYBNRX/dW31rfKlkhv0cBTq4BarzYZEVOMf/eGEcVAFeYtK3c91PWBIU+ZVZifWtTVq69dIBIkcQeaVuoIKGnzpI8iznOFBScvxSXW9vYDnGKn4gR22FD9KzoaXUat3ewmukIs9zHKQuzV6zwoGLfKpoa43tWT9VbQJ7VmnA== 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=KjietmktbsMhZBgvNSUEiDvNza5sYb9DSBoSut45yuk=; b=NGnB67Uf33iJxxvKJ5nC/eVitXmUdFzWMTQhrC+haUPmFSg4bM9FQysZAy7M/0ypnu+ZbchX3F7b8PPfCEuMXMAiYbqW214V10ybORuuIOvZy6R55870RwqI1PxkaWfWwtUaZY0E9eswWmDll5zhG+1w8DCdkJjnI61AmN9WKmc= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA1PR10MB6389.namprd10.prod.outlook.com (2603:10b6:806:255::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.28; Mon, 16 Jun 2025 05:22:33 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e%6]) with mapi id 15.20.8678.028; Mon, 16 Jun 2025 05:22:33 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, 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, jon.grimm@amd.com, bharata@amd.com, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v4 04/13] perf bench mem: Pull out init/fini logic Date: Sun, 15 Jun 2025 22:22:14 -0700 Message-Id: <20250616052223.723982-5-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250616052223.723982-1-ankur.a.arora@oracle.com> References: <20250616052223.723982-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4P223CA0029.NAMP223.PROD.OUTLOOK.COM (2603:10b6:303:80::34) 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_|SA1PR10MB6389:EE_ X-MS-Office365-Filtering-Correlation-Id: 28afbe1b-b06e-4a4e-22ec-08ddac95cc73 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?6Lj0QYddUfvdqf+1FHenuNfCAU4fCsJF/M+v29MPCrwGgDk+2mP3n8RaMjXr?= =?us-ascii?Q?aC1VE3pCspTxn3bEme44iyi5hbIfX0E3ELlMOvI5R7kI5F+WQQBpGjnUYbYo?= =?us-ascii?Q?1qDn/l040GCY3yG31N+xCJYcCR6P7I87VtZhmxuSt2VEMIT2Ye603et2Km+A?= =?us-ascii?Q?AxrPGGuGbZm82RvJ1+jOSIfNEMkLRvbtd7U0XYwaHvBDhuEsbbNUezIfGVBZ?= =?us-ascii?Q?wkY70QYkanNix58G4dzxhP4rbHlQNTjGlrndGKURlPSujeH+N0OPh+oCepfF?= =?us-ascii?Q?29lybpIhSJZqpU3m1zHZ9hVyJXeNdySeHpjWIAuPtOqU4C//Dvo6dT9dMSJC?= =?us-ascii?Q?b1hMySYB2h09WRy1h/5XjHKKrX6Vf+EYQrhzlMRw1jrGejX0i8oQppLjIUGs?= =?us-ascii?Q?Dkpxw4TB0AhN5KhG4ReuSar5A4gEWbZjcB9577Z14GzM+VpBoANaD1mT27UQ?= =?us-ascii?Q?dfaG9+H7Ttf53e+mnr35nxYr+o2bwshNSaKfJ+zAyXj3jXt2NYuwywKVf9iz?= =?us-ascii?Q?GrzvJwwUJCoNMKlJMV2oEkP+ne5wPJf0p4Cn4qZxGtNq9AFBIYbMFfOlDp9m?= =?us-ascii?Q?N42VIIZ5RaFVDzAXVqrfdjOz14NP7/CaAr5w2Fruu4SdkQlMfax0JoU59lC6?= =?us-ascii?Q?uafN+r6dL5ORp8swWq+rE25qgXXRjLCLwGbocsM+2hMLhIEXJ7x4UUahsaWu?= =?us-ascii?Q?qHgqgPU5OvEjhvvfk6+6s83WFPwt57MDioOTLCaO0kcBkhABpplxyEFiUSA1?= =?us-ascii?Q?6EJaq5gXnMuaEz5ujO4PvGGaCPCHdZT1F4qhgB1WLwamzoSvJff55GydQQXb?= =?us-ascii?Q?M42gkukUI32PAOACxKXHEriNS1R4F6QXPMmc1p10ns1Sdaji15mlvu1cVqB+?= =?us-ascii?Q?OnycAgES6tlI8zAEBhkjra1DX5tGFoK1tToVdpgVsvYG/NhT2ugojCQSzjv+?= =?us-ascii?Q?HAX2k0WERx8oWVQbE8yoGzyxHl6m0In52UhwNNCEehdADsWIYIa/l9RDe/ol?= =?us-ascii?Q?bwSXILJC0uO5tqiZmijCKRa2lH9KkcpBJTS6q7sWbQQ0fRxRN2hjwPXqTLAs?= =?us-ascii?Q?vGb+xEWMNz+Tg6Te69GJpBUb9GlCEs4ikI87R/P+J67SfhzzpdcjIwMphWVo?= =?us-ascii?Q?8hprL3kN9PPv/sjXIVvG6XjBM5XRlAIV65jgx7BlLgbsQkHeBVF2zJnzQ6SL?= =?us-ascii?Q?zlrbYp5ykGpsiXa7QlVN9B16JTwpWURkMoFA9c2Q6hZjntRc7kBTkkPoSGFC?= =?us-ascii?Q?6UeaAvfMvgyQv2+VDkS8DCJSujluIGi/Anzi+8B9ylzXY/bqNQdxTKrfWZSR?= =?us-ascii?Q?1UzUNK2EY95E7aVCLlJ9JyJChTmScp+lmFHnCWWJhjxTqbMXjp0XRz3RG0E8?= =?us-ascii?Q?U6BXs+lSf0OkaTzZEVXF9qCERhJaQYjkfzBzzYcbktw2e/Pu0oDIee/4ejSa?= =?us-ascii?Q?eHCxs0opaXibL/TBsIe1JKnnUG/UWKvT+N6/UsDjPwDtcqQOyRQg/sjkUhdS?= =?us-ascii?Q?wCGSE2BJ50vwGoxhB/V7rBRaMlqtPyo4oMLdM/oulNBSe5EvA1bmJKxzu4D3?= =?us-ascii?Q?vULoqVios0f8DJXXCcV5Qe/4mXuRz40wy1z8y7lfaonQtyg5siQRRL5mMEpf?= =?us-ascii?Q?JXkyQxNbjnU7elN+caHXXQ2DsosL+z4AfwDrTckDYDdJ8riPEN+qgKOEMFo+?= =?us-ascii?Q?EpJUYzK+Bd+OSSZcCCOOUTMgHrH1PLSgwx5RQd2FPGv49ppv?= 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)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?cNG9S51PjY1/dGi6ZCHkqSE69Husq+QS5MI6G/DJyPLOIoPG9og+/z+Dsp1T?= =?us-ascii?Q?pHeaRtR+GL8VWxQ4nJ0Kxho1XiBAf3hTkLJPKkNADdV6ZQK7fQiWthIYq7xE?= =?us-ascii?Q?ilwr415NSok7DcHkeDfVm1Y7htTNfL/QKqJJu4iV1HfBOBxga/lNmC3kdxFS?= =?us-ascii?Q?6F7lhXfFKGiJ5ODR3LSBlziAvo0ynbJjgsjmrpTNqw2NGZuuRVvt7ROH68Vu?= =?us-ascii?Q?iU1tAJNCQb2XWumqz9/cAPNyt66U402gsG7G6/Uojy141S9dVBOIFqrJDAyu?= =?us-ascii?Q?Q0jMugeUzSwCRHYWCaP04Bhdlc2RRtZ4vSVKFAFLDwhifTI+OswivVO5EPEB?= =?us-ascii?Q?5TH5BKVIXM8m9J9WTBRdzK+FT+PfzkmVqomN6wCTCCKYm104znb85U+HTDqO?= =?us-ascii?Q?PzDuL7SNedhBw5zzu7ABxw4WVUTZhTdF2luK9dsmSqH3tLd/J9VxUPwpTbAm?= =?us-ascii?Q?DSSnMSVeIcN+6uPn8gzQSD7Ag7Ii/uQdKJATYw11ijmtc54iAPNR8zFO+UBl?= =?us-ascii?Q?2M5Y0mHfSMBNdVb9rDeZP77vSG/4WKHP+QeipAVlFzlW5mNs1pnErYnZOutW?= =?us-ascii?Q?Z15fzh8oS+RQF4yuwOaWsDxp2gakZiCP+XRmxX2WQcTYpUhuKMSkBYwuiiyB?= =?us-ascii?Q?rvIGgH05mB58MI3bmapj1ERR9F7QteWaKwnXYQqLXSnl1whcXB93Y8xi3XHu?= =?us-ascii?Q?K89n3CE1pb6H7objQuB9VKm98dtAjojCMbOQ9XDhc8j9udYUp4Kkc4XKMPIH?= =?us-ascii?Q?ewEWH2Gc0lDYtCsyLJVq/9sHO8SrlRmjZrd/t/YTDkSt8hNLrXc8puf/PLzW?= =?us-ascii?Q?jxRPDDXElxD94BdGAxOiSWETAoogWHIFFOsBgRCGEuS1aBcRcbwBscWf6QRj?= =?us-ascii?Q?Obda+6XbT2bBCzvfVcTyVnAaSs2b+fjIi0WI7VZryrS4CvfFGi8mcNf/kpLG?= =?us-ascii?Q?J/5RYFXz9sp8imecUYfmzAEb2dTm4yhjJUVop74lwySUP/WY9z0vkKhEK7u5?= =?us-ascii?Q?i+sdoYpBNhqwzEW7w32zJ/DRWc1e9aKDQJRphHEUOGwAmBxWseDrFvqehcZb?= =?us-ascii?Q?shNUItnUDgQJXP//kTBHahn2MjG4K+1pcdvav2PvNC0BiocMH52mPPNiAxo6?= =?us-ascii?Q?BWEeXoAM8Rt6lNnesCfqCn1LCwxQ1J/vYc1mas4CUGwEzigMXeE94yoTKAEv?= =?us-ascii?Q?Kh+DbKArRDX27PAXHUHbasCTdo/08a1HztP7DEl+n5AyScpp22oUm8hIrSiE?= =?us-ascii?Q?LX+fm21MRKTSj4pTh1ohE4IeQFz56ewWyY5Sd86VsIdZKs1ZqaamkDTYqbK4?= =?us-ascii?Q?sGzPZnJ+MSSfttczQJwU6KncinoNMZiMaDmskisFyaAIdZAFMVp+LmI3YwXC?= =?us-ascii?Q?EXZqX3VqpOWSHG1nCLrGJ3iUaD0nDtSoUUKHsXvRht4LxT+J2jnPn7C9gX+y?= =?us-ascii?Q?wqVnZ94u/2LNRhdD9fgXgItbFVaUrrcnNz90dj59Sbw9nSsbvy9ZMHjq3C+P?= =?us-ascii?Q?y2/H1ok9WsoEcsN7Abbca9Rt0CvKtHAf8iAoOf2F3+t7gsLVW905mKKJdj0U?= =?us-ascii?Q?UP0qtVqR4l5GC64/dJvIDSSWPLg4vSE1xhvIb68n3aJfd4e7HgX+QtcqBem2?= =?us-ascii?Q?yw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: r3TsxDeK0Afay/ol/pDw0RUKuA62Fr/ky7+7vy7PhSV25F2iAxFuhh6ZH4PkS42qlliLcLeCUS5hWZRMcn69bIgQjXTB/nqDBDIBEXPjTi3PlFLtsNBUubBt/2rHTpzsHBf1UINuzAwKfBaXuNrpEN0aMrluED3P3q6SNKmxlrO1HhJLbfhbkbf8z5ZblgF7Wu9ScRykZAp46AYb4wGnlYtDXFYJzWByNdrmhU2iX9z7YmNHUVpk5GuRwKUsjrYw2oAsUMNdP9s67K2US+N4cMZZwnhpJqsZ9KI8qAB0dRjuwJuCvW+i38VQlKiGT0eFhsVpI5D+gxXm/G6Ys11R2LHZ8fNca5tfTb5ivUUUPMce1mGUQZIJ/8LJJl0rxM3kRSzOMiWkmzW8j3kvzPJXLVD83+7w5mWWSgikgbfHhKhGXw0PtjOuYC4puLnxovwizgNel+NhmJYEPc3+EC+jZNKMu9zChObABk2oNpvk954Drc2v2ISIBMtfeB1CBj82wLkfOqbL1A75PV0d7GYbfaRT6J4qXqMEqXiddLQAilIClR0VEvDA9PjeHOR6UR5jDpDXdOqo2C40DHvopees3iwDBTf0I+3rLN2sbO0aWGk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 28afbe1b-b06e-4a4e-22ec-08ddac95cc73 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 05:22:33.7636 (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: /dvGES9AZzaLKrAa2+Hqxh5TH8eaHaZa1q5lENX0JXYRY0dgHGN7J2GUM41RplaYLjBI2r0ZfidRXzCVIMPZZRsFcVgr8HSPl+jtzleIXlM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB6389 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_02,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 spamscore=0 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506160033 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDAzMyBTYWx0ZWRfX10E2wUUCLd7t BeKnBxF0tUYvABdRjRLHczGbevMh/w4LuDaJHCVQC8bYE3wHPolNGYXDUU0YIPo4RhkR2iDKtxb k2CTCnCN4JdDxLKra4rOxyLsYu2xi54iApwkMt/xHgsMIPK1HalljeqeX3kpFpDjYrPBOOiVHiw 4DV3w8ZKNKTH9KVt/z/ZP5WYxjKkXwnIYbvSJEaInjBL0OQFHPwgc7y1v/bXZ5+xO6HmXhvR30m o711AmC7WAMjLFGuKhq8Grehv4ir8RFTHr98cHfQ/VS5Lqn+cYMD+tSmeAu7EjOrelQkZW0q24F zmqEw2YvLc65CaPbWPRjgN5pg7JEWttE0KnT8A8lDoGcoRIM8G15te5Ppbyu9qIEzAeG/xnDu+o mXC6VJyyNNlQrooDJTjbOO/c+YPPzyOUMJMJLlbxshvL694jpUKCDMBCiMH9/z77fQMyq0jB X-Authority-Analysis: v=2.4 cv=U4CSDfru c=1 sm=1 tr=0 ts=684faa1f cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=TbKJQeBsitzCtKh9844A:9 X-Proofpoint-GUID: hBf01fPJl4BzSTJMqZmgwpUJ3YpiaOQW X-Proofpoint-ORIG-GUID: hBf01fPJl4BzSTJMqZmgwpUJ3YpiaOQW Content-Type: text/plain; charset="utf-8" No functional change. Signed-off-by: Ankur Arora --- 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.31.1 From nobody Fri Oct 10 02:41:51 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 B41D61C5F14 for ; Mon, 16 Jun 2025 05:23:20 +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=1750051403; cv=fail; b=JJvfwz0exBUMouV5hUviIpJBG63RgGhZzKzuSwWB62T6wfjEU/aERLHpHLMCJEUJBZ+eW7vbXa9J943gsq10lsoBZRGXyGsAB0WS2ic1qb1VBxBzlerTHjeCltfsTN87RnFDTvSd2hJHxWWWZDlX89mvovynwLi+AhukR3d7Fic= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750051403; c=relaxed/simple; bh=jZqpjWTXucMbuehADeJWoIUu0agOBD6xC6tkW6p64yA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=sEGMjgFt5yk6D1yhYS/gjdfnPYtLIOGOfWuGFRQx9o+OaZ32PbEl4Th1BBaqIqg917RpWyycD/HMuoSJdOdnDvTwg+UT/ztgXKSkEWV3/AkfttNwF/7izlGO1pEYngoi0QQhox7JkUgXDdxcQ07gUUs7AFU+UPkqRIAKZ2P7dow= 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=HRy7RqVd; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=T+liLB3j; 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="HRy7RqVd"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="T+liLB3j" 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 55FNKtba009840; Mon, 16 Jun 2025 05:22: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=liFSurFzbf6KkfM+zT3JPUTcKm9ufYeytyUW8dW9EW0=; b= HRy7RqVd+YivGmdelUXO+s+lUOmDF8Hb109SSymnHEDxjTxDxFzDpTF+w0AUxxkF 7/6VAEafnh/3BLas/Hgz1wkvMrbDj7oMR+NDJG9peK890URlys+LrTL3jax1JqAv LDo3h4GM4UBfPCb0O9ucLIqKtcIlRuwafqNaQ98Q1bG7THHQMSZ7TjD3kYS1ns7Q QddfLbsruXDGSPrJyw7RE8uF7Y5jwfNyNiIG9uSPoTCQYjdOCU7jZJZm7kMM3842 uR0PgAqpg+3Hz7SehAEIyebRxcvEkDg/DA+tMPHMqrwdUlhfTmyHB3RcCfw4iOBd 0SU4goRw4OSSH9FVhrfvNQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4790yd1p5p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:39 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 55G3A3eT034385; Mon, 16 Jun 2025 05:22:38 GMT Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazon11010007.outbound.protection.outlook.com [52.101.61.7]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 478yh777be-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=il2A6NoPzwXWOAmndLN1aDFPHHbenQjIaCI/mXMbz9MvGapHPg8meY0lBCTF+W7BGGHQs+ZJqw065PMvW47rimL8HBeCKCbxU6LHy868uS7ELoS9a3WxXrSMkrbB0abpLRhOe7xuCUcnv1f+k1qtdM8J63aZ3IdlzKwlJMw9fO0Rg/BW287dpobray26CeCRE3LnS0ahcdMj1cruzsAFxnHSp2XkggnaPg66AIJMFeIFq+33PO1fV5K+Z+rCUSJ0RLnGVSCJdEk5H5XHWi6cbL+unmT0knk661ISB0JC9WT00ZHzHLFdbF+LznvhdQt5mYZY6hgeDcvuS5dvR017xA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=liFSurFzbf6KkfM+zT3JPUTcKm9ufYeytyUW8dW9EW0=; b=CbJIcIEviJ/YODG2k57lA7L7n324hCAkdAwE5ZDIJXez09AsVn/F/MKiHr+5D+q7aN/NgcFlape4XyvEEPsoD+qnu/IEDbSQVWM9kURPr0sSsgodWq+IxFyCLclLGhdeqCHOHeBN6KIxT+hLhM71FCOTKjdZnY2yOsZ2MnN/dCzXbs+KczmpmCRK4qC4ebJ9FD1Yfx6JdFIXYO8r9dRAsxduH0R6a4Vjgk0PBLGSGu+eRPdlBnnxk27dQlHN/giV73bRGdDrLe9lTS9ZYiN5dCCfRYMFpodI9fzEYrBxr/RfbA0GXe7EIl+T9aTm1qTVyH+nYaRitEJUlgEHzalSyw== 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=liFSurFzbf6KkfM+zT3JPUTcKm9ufYeytyUW8dW9EW0=; b=T+liLB3jE7Rjlpoa23cHDoB84EVHblw5GdcqFnIPiQ/o54st2qOWvsQV2Io778SRf3GlWFiGlIJtxeO1oZBfSBSXOtZXLFTxVC7gmwyEbXpGWUc+Stw7uX4QG2Jh7DzJdBhAmJXe+N6/PrOt+IeBCVDLCDkXBCQd/aFgRfeKLEw= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA1PR10MB6389.namprd10.prod.outlook.com (2603:10b6:806:255::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.28; Mon, 16 Jun 2025 05:22:35 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e%6]) with mapi id 15.20.8678.028; Mon, 16 Jun 2025 05:22:35 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, 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, jon.grimm@amd.com, bharata@amd.com, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v4 05/13] perf bench mem: Switch from zalloc() to mmap() Date: Sun, 15 Jun 2025 22:22:15 -0700 Message-Id: <20250616052223.723982-6-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250616052223.723982-1-ankur.a.arora@oracle.com> References: <20250616052223.723982-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4P223CA0017.NAMP223.PROD.OUTLOOK.COM (2603:10b6:303:80::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_|SA1PR10MB6389:EE_ X-MS-Office365-Filtering-Correlation-Id: ba2c58d4-d845-45c7-cc24-08ddac95cd3f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?rLTUQVmJ4Drg3TL9v5iVtwAFti1HFOdKgLIf/YbYcRtBD7DEM20Z/ZKgQbUj?= =?us-ascii?Q?L+olcIGmYT6ciOJ/TYBxfpEXoylHfwJGL4rHbP7B9ROZ6Qll+mqgbciWp50d?= =?us-ascii?Q?Sf70wkZPV8zdSNPdxWMgRA1XuBg/WnrVyomFZKx3cFFxuNq9sYdv+F4clvSI?= =?us-ascii?Q?BevKLztq7WjSs46RN/Qf92OoAPw/9wDguC1wdsUbsCL2CMIG67R1pLNLzyWJ?= =?us-ascii?Q?M5VBjS7MjMD1jg2W73mLGe6fx1GB8NStLjBZv+WM1mi59rZihdksp/jyojzP?= =?us-ascii?Q?zjF5D8crRg6FxFcPdLX/x/x68bhjFXxKlCrCXhuktE2eG5pZFRf1VpjkuQHn?= =?us-ascii?Q?I/z5VQc1RMGHJCZigHFVOMU0dNrC7A7130vZlsisI72YX7bHCDMVeRNCgoSa?= =?us-ascii?Q?bwW8Gw1ruLHkyPEWhR5Cz8XoJHdy3J2NB1lHgMxOPNyB4t53+TXeiPAi4RG5?= =?us-ascii?Q?oVmTK+CLUYjoedD8UtpxkrbHw7BPoqzbnKEjfuHWgccJIO+pIGMhJVIEn2py?= =?us-ascii?Q?AgsyM1wdMdpsJPVpOUxm6rA5paHDwXM2DkYLrkdrT+aohYxfG6MeUXNrF+zb?= =?us-ascii?Q?YqTmLMl7vmrC4uqlMcooiy6Ade/Vh34zLfolL1ry6OuOPm6XAtTM7rfG/jgj?= =?us-ascii?Q?Gbu46QOOB3OpgtjT12cJjq4ozV+ZG8JlbKocEJZOe9w9j7hEYsV9EhMAgDlF?= =?us-ascii?Q?AdfWCVRu+VKSKv3dkZTWzjslEvDYylshUeRsg7/O7DICuHN30F1FtuA5dPSo?= =?us-ascii?Q?OttZ0rs+N5uXQqCPEbAhcb/dVodLeI6xzzxM8rnmTsQi8yPxigZZQ42Kh73W?= =?us-ascii?Q?3PpvftR7SroxAbSmqFmr97FF5a+KT1NJdEqTE7CZ9DIZBzvD35JDI3NAIVm9?= =?us-ascii?Q?E3WguwL2RUd08P828eg2H5zqapnlaxqw7TK+7DrWYtnTE1W6whxUJAds7yi5?= =?us-ascii?Q?9M2uhddBjK3/OmUVvMhtwzW2shRA8mrXPJg0SdmlaahtprG49KW1/KgNxthL?= =?us-ascii?Q?nHBCU/aL0V/NaIWJ8uyZe26UhHp2q9qNqpGSbP8xmaaBF3M3iWmo7xp5JykM?= =?us-ascii?Q?geQMRKfmJ00QWUsVZRfx1gdJKqnV397hvVYAWijeDAS2uu/sqgTeJJcmoe9A?= =?us-ascii?Q?7jLILqSeh2jQlbwNr5hjzedONxHamR3serU51Z5tNNY0N7lRO57CpoDSUtwY?= =?us-ascii?Q?16rF/UupNw0YsL84DmbpEbIClkGZe3xLo68m3Wu0yOPfVOxM/3kv5MgFCW22?= =?us-ascii?Q?WtTs64KronkJv5MBRXoNCjkRWkWTBpa72q8KPcQnQkJbt0bjOUPkViYwDYvs?= =?us-ascii?Q?HkmUXW5mv7IL/ySywVVMfjsz5y1fRKz2ezKyEioQ/dgHSSZCK4H6a3ncEq8y?= =?us-ascii?Q?1RebD+HVeyTqgMMrDm5kfH1EM8BmkYLsq0uNf8rmwHUERlFUJgiuoKWbwtgL?= =?us-ascii?Q?7KilkWCsekQ=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)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?t+sTw0L0QZmHHsIzejNzYOIxFgpdb4i5Z9yMIDeqEEKOgNmNjYl29CoUBx5v?= =?us-ascii?Q?e2UGgm+n52FQ9IGM2TC/pSkyuKQYLdcj+4tJkaudXQzIqVvRAGWngvAIFcPF?= =?us-ascii?Q?wOLA5UzTFlAKHknDk8kgBayfykQadqkFSXuGIwWMPlD8LjkYBwlW0DhVmgz8?= =?us-ascii?Q?GrtJeqNiES6UcgTwjTDPPcKUnofHP/hexbjayz7/9k3VdG/iMkX/9gv63aBK?= =?us-ascii?Q?Icutkch/WzrpCF6AR95TzMYV309VkiH03m7R9M0G7TmF4teyqa09lmI9UQmQ?= =?us-ascii?Q?UxWsa9JVapafCXczabaIr6709qCvORjSoBXbAGZ8zyUiXu84gnM2B+fVP3QW?= =?us-ascii?Q?1M4J/Euy4VEO2opjnwSk38YfZGtzVtBbJ/md13H9cLt7d/SRZCyT01zkp/Ij?= =?us-ascii?Q?nXhZa4TVAiU+WeWnUhbal4Cq8OC7KJoDStVVgKxw2R8SwcUPpVzkjR/7u3iF?= =?us-ascii?Q?/JpPgzwQG7l5OJwlS8ZZVBy4s3xRe0yPrvdU8S1ucaqaPMdBsGkCFEZqCYtF?= =?us-ascii?Q?b1DZc63EB5t5mTlSRS/06DWRc9vySrYFZWnZBAuOvN/OD32Pq2q7f9dBdUk9?= =?us-ascii?Q?GIcDiSEjmMU2JIElACV4n659kLnbWLox22evbeVfFEFYaK3W8q0Frz7H6dQ/?= =?us-ascii?Q?SwbsMd+gRHOs6n1PBeYy9mhYfW2pfoPjvl2HOg/P09CC+4x2hxcEFdmQ1+iu?= =?us-ascii?Q?g2wDDfnJSQ0B3uQMA+b95NUAz6d0dljevczNYjVjXEGHlyIauJRh8n3N2qZM?= =?us-ascii?Q?73uxMNP9fsTz5CZ/ij01i0gIS0ttfuWLDfuYSvEGqlWCCmcKOWiOiNgKPzYr?= =?us-ascii?Q?XZD6JnWs3J0xuBk8RmD8DNO1HTGKLm9Woud6R/F8KBXUYywSaw8Kv721x+Yn?= =?us-ascii?Q?YZKhd1DE6SDArD2hm8HFTXIzqtDHNj8+tD3XC3bJFkFrggfDEudWu9Jf9WgG?= =?us-ascii?Q?mpc64QtbSm8ow/S6BzNr9eURA6w5MDa/mszrGAKMk8Y3mtQ5rz7HkCvwmnwJ?= =?us-ascii?Q?3iNsbwF8PNoGzwBZ1eXbQygYJxwVmtb2/6YlMapmcY/RWOh0+Y/0yxh60UnZ?= =?us-ascii?Q?uvlrvUAQN3ggdvW7JNT7IDPzTsfeXVI/l78EvjlQR3ru7f/g5AXwOnLrfEYI?= =?us-ascii?Q?vW6aPyzuXa2p+OUA49eFIhdpF17ra4pSgqVqhiBMwugJi+5IfgIfJ7fNCUhv?= =?us-ascii?Q?L5n+Njs9uF9zKbVcMiaIRHYfnak86YU5+r17R3OC0QR93yII+UK2ehRY9hGf?= =?us-ascii?Q?mNvuJuZF9bMMt9XLicgo0y5l7weH1F2HbOJMGlUAt50SiwgyBWIPte4uUfDl?= =?us-ascii?Q?TtVMEHa1oFjEHCZHt2KctPtYBuUllrloGmRu9F/psrHMXmZL7pkApFHRmdec?= =?us-ascii?Q?0eiFgoM2ijFepIEBK7yQy6yMpMqbHpV1TpWB5JOiXVCZ2CKWyunhgO/vWLf/?= =?us-ascii?Q?j+6XuAdOTylJmMpp2EzG8jd9RRxMbA5uTCXY3cgWtgDXZ9tVEFx8SOMTkO4W?= =?us-ascii?Q?GlRy9KuztOx1K7MCeRSyZLJ7IU4lkgGAsFzDJLMQD77p+/VpVmREW7MaUXCp?= =?us-ascii?Q?//a8L3MeY2pIxzZTMRdIqZrX7+k3pjF4dRU+Aq8U57k/G1s/Nu6X2cKpPtiQ?= =?us-ascii?Q?aQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 5oDbbjvG8ypUuo3s8tv6jOJg6uQMd2Ra0e9xBAH3MWw0qh/TI+jmfTgfhRQfr0Z1SqitsgXipyDfoyno8tVMI2UNHZ3f7tC0JBUtV22aPiRjLpyr0u2/cOKR/mRWGk3Q2qrhvB66QVEcmMB57AlSJdccj3WMm0eFsvQa89vsOtQS4Ywccn3YllgiVs/QjfckvQBqoYs0QC0/5iYzC1bvRBNR0Htzg/eKdCQC5wRo0+fPAy4zrMU/ejktOuK6Ay7DVB/Fhk9V1kF8G5xht14D8b92/Iji4DLw3K2sgalYhszLhPkVNNAJSsAGhB8eB4YDUrboUl4WQu4lPqaFKOVBnPVFNZFJl22feZcY/xPtMzgjMYiVvkqJRpPEfCi0irMMjdBy5O/0pHnm55a5n5oz16DxmU4JMIH7xpNoc1kMFkwZtHVKB4fWGtk4K48KN2+jQBg+VBFrkUT/Gybj1dRuTUpaBywL7ZLEOlc3k7LQxzHJdWf5hyrWww3or7kEqOD4JQB7TkwBreKT+glqWHmx4mck1oMWomiD5ZoP7+QMeSnP39rzemclTk3KMWTGUO3xomVt0ymmROK60h2MZSiskzhopnT4tu9HW74AUmzwDAs= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ba2c58d4-d845-45c7-cc24-08ddac95cd3f X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 05:22:35.1027 (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: 8ylWx/zuq9/QAoAPJcsEieeqjjIC0KeSPnvukDQisrWINshz20DJV1Wy4fI4QcyBMhtQ2Lg6b3Fww86m5xNis0i1ZPvlqFgE4nTqXYCC7sI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB6389 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_02,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 spamscore=0 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506160033 X-Proofpoint-GUID: ZaKjIIJJyLh7w4SDtDqr58nYz8rKdD1E X-Proofpoint-ORIG-GUID: ZaKjIIJJyLh7w4SDtDqr58nYz8rKdD1E X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDAzMyBTYWx0ZWRfX29H/0wdy4ZIL NOTJzcFZFCPI5WCQZxJXewDPZheZliFIyZzg2bd+SwjwFxHnyGFBaT0h7UNRfJpMaB9+ofUzSKf oUu+2uXLOOQ6RUG0gHelYw82L0NpJmq4bE2/3IiqyRYjPnvMtPojAgmjqCsriWVAYJcKBZrwD4p utvc+Sfupryo72s5g8QqgQLL64ewOnwjEXk8fSBOQNoGIr4+crzi7rBaAPYtpKxUSHRI/0QBcOv PFvzp6g/alkXCRLsGVgHMYyz03syCgvpKRfe8K0TmjRWmyu2s/kBvC8WFFeosN54+dZwJkSBOJY sR/bwycxZ18YeLsy5cF3fCIYTgtV/7NBhsEuqtHKFVKxoLg1Ut8eArZL/4kLI7iX2ghMLUDWLLN KaROhJuYxkhB9Yo6Hka93WVSzmVi9GDBAsMRVJ0IrK7h6REdqikAJ/tMORdfb7fga7iFSaC9 X-Authority-Analysis: v=2.4 cv=XZGJzJ55 c=1 sm=1 tr=0 ts=684faa1f cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=cBhH-oFK0cR11e0Nsv0A:9 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 --- 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.31.1 From nobody Fri Oct 10 02:41:51 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 016A91E8337 for ; Mon, 16 Jun 2025 05:23:29 +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=1750051411; cv=fail; b=D+QunVnexWro4Ef1HTTZCgS0diV0badgpu4nGPGqslPy6327zJFrsoVwfdP2qaIdBnZxHdce3uc2IPUBGVAX6KkgJKBJIOmQQ38z4TnhicjX0TB8/PIfEvpiXNr4vnBLkVwsl14tgvaMQ1XfP3JYDWkN4DIVFqyATVTSoON01Dc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750051411; c=relaxed/simple; bh=GNE+k2HxzjpLoak97g9Qzz8e9y5Autjc6EIr1Rr/Ows=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=t2zoeCv7ARF8UlxZq9QUAQkQUaXJ5hObZ8spKcJyGbjxoXfG6254pjPsRiKGYlL+70j8Kllnl+w3n17d/2j7QU0doWoN5hGPoVogudxAoqwZSRlbSDtoMcm05B+T9k2Lw/dlcMQCYVBZe0goMTgjWLKZvD4hD4T19J2Ij93HPWw= 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=aaCeT6aI; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=fHtrwSO8; 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="aaCeT6aI"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="fHtrwSO8" Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55FNv8lx010468; Mon, 16 Jun 2025 05:22:44 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=8SoyGJVOqklQa0HZ0nfoXgzivBuxZod2NOUpkl/xEYk=; b= aaCeT6aIWbM/gmc3qana6geLeyOA3x0Lf0lEH4dLD1lMRw/iOOM6RUJiwDoLMAX2 tBQkYj7q3igncvLimt5pWRWwGSd43+DqZR40KAFQKof7makTtOhQXInoY3mcCG34 fdF3720SvpX86p0DmHrSY/KUd5JkGjljdfIiwDi1/FP5JvkQ+aXjUTXDXk2Ixh9n yZAFHMmSAahqkEnGHefyeqa1T0sPGRdW3ckN+05l7nhLassnuJbrVFtog0tKU5jc 4riD6VZC9gUNhgHQKAusmmKvKeaY+tI/EioL3+3eJRKE3Gtx6bkrB4edWhrCnagZ 0NCaocTmeBdTD/Vl38G67A== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47914ehp55-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:43 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 55G45IGL034394; Mon, 16 Jun 2025 05:22:43 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013038.outbound.protection.outlook.com [40.107.201.38]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 478yh777cn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=E9JHVZlrWeyvSFUfIAUKnmv+c4+byq5QB2EKLBy0cLbkUuZza/ny+nVCzUWOGT3OjbYAiTrA9lREkbfhQwrvFBV2Cs2K6yVXFkGTFCRhUn3A5L9MxKA3IlysDFZzB5s653n1t8CwH/YVSB2uRHsQcgxeypUhlvhTOgsjyZJrU/Bt0aSXmWLfEXAHOK0Pjtz1189nHhjwSXSB+vEoknsvjb+7j9Fmm5aVUDHmVzk4w1tp6+QRK4hgModIzLQilqqQW9KeonkvYbiWvNnh2/s6TlfQiOyWOMXETffM786ASzX9Gqf6sOGJYEMK+c0otKekFCSBtpQ01XDgYBKDXd16JQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=8SoyGJVOqklQa0HZ0nfoXgzivBuxZod2NOUpkl/xEYk=; b=bIzK7xmRC6UU1AuYejWMyrVfKY5YXCk7LJ2NNevZeoeHOkY5ZUZimTGVFdqfkJWszS+uIRXdpGDFhAbxZ4fJjw7WhbLj5XU1oYuvILKCCLgjBJaLlj4lTHpyhQAXS5UTHlpicqt+XSl2a55OqzO2ksyDwZunQpwJpedhgNDHDnsGXV+ATbro+P07Ii5qtGKXHYru9yX+wQ7oz+mmvGduInCIgNo0L0AhzcRMYyVtMxqzxCQZ4mQcZdGUWsGzhlj6M137hL7/0SwK2hXuZYyW0Vmkspv8nv0kzF0cFHQGav4R0Fco0N1+vTIG3Nm4YPPoLFpjChWNNm+Zky8/AwHyHA== 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=8SoyGJVOqklQa0HZ0nfoXgzivBuxZod2NOUpkl/xEYk=; b=fHtrwSO8hbUhfAAGzBdrOrB8Csr3OiYc6jTu09A+9pSMi5rDsEenIUJ9/PGM/hYFRUmrSevCBOpc8WvHi3FSIEvwRbMxD0gxzyQocRzJ8QN31j8CyxT8r9xiGQV080PKsrb7G9+H3qxKt3zl+SYUBgWnNCWealI5RvE33xaVhlw= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA1PR10MB6389.namprd10.prod.outlook.com (2603:10b6:806:255::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.28; Mon, 16 Jun 2025 05:22:39 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e%6]) with mapi id 15.20.8678.028; Mon, 16 Jun 2025 05:22:39 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, 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, jon.grimm@amd.com, bharata@amd.com, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v4 06/13] perf bench mem: Allow mapping of hugepages Date: Sun, 15 Jun 2025 22:22:16 -0700 Message-Id: <20250616052223.723982-7-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250616052223.723982-1-ankur.a.arora@oracle.com> References: <20250616052223.723982-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0062.namprd04.prod.outlook.com (2603:10b6:303:6b::7) 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_|SA1PR10MB6389:EE_ X-MS-Office365-Filtering-Correlation-Id: 81aaf856-8d24-44d7-c59f-08ddac95cfdd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ZTS1PCYqZ5egO8M/nIHHrF5OlyJLGy4Qs+Lv5jXh5x/HqYut0zaCCDepfRPn?= =?us-ascii?Q?uW4u+OOgntqexZCXjhNUBA2G7AlfAI8jghtPGH/Yws+T0GG6qOQyjGqlYoLr?= =?us-ascii?Q?2LW/mf0FEGE0a2PcPgAwYlSEuKCgHWua2z4mBLLu5VHsqkVgMvTSNjKKWSZ7?= =?us-ascii?Q?HwzXciKQsvP0qg+yS4ivxKn6M3jmEz30NL/kybKeKP8wODFP2vE1owrUBxQQ?= =?us-ascii?Q?vJDZfSZAiCYKfWLZsbWCcuGsHHp0AGmKDR+EfJFncg13oV4VCdLP88W4LPdG?= =?us-ascii?Q?ai4/RAAX+LgG9i95/MaHDf8ieDyOFSSW/j881vkB/P9A0hVnBJEbtvz/VPXb?= =?us-ascii?Q?v3xbYHGdTdHNV1DkvkFnaAUrnaRAe+Vnhvkau9nmK6OMxPysheIx8jZib6R2?= =?us-ascii?Q?MYnDnQkQg65aAiRR3/JWHw2b3OQnJwKSFYcZ8DvaSwGdXBw2Bc6eCCxGcaH4?= =?us-ascii?Q?RxdNUd5+eWa7yUKRQqFD99yVDuu0LjxQnmdZ34qtv8Z5FnhUuqkuyjqnUXxr?= =?us-ascii?Q?uuQPKZq8rLv6vYUPLW9Szl+loKrkfNadWrEY4iETB7m2bseuvk/JZEQkFJGj?= =?us-ascii?Q?aQoeLvc/VykCsYFAEhMSAb+PvG6onFxdO0dY3+oB+t6B6tN/6uGOu5pZr2x2?= =?us-ascii?Q?H2BNKXYYZKY/wq/jrnM+pfs4ysKQ1LzjTh0ASDIH4qbxxCw5kIFRbJ7aAHKK?= =?us-ascii?Q?FRPzL6NiHLaIcpvIWrtajl0cPX6IfnAPCgJDP9w3HqRVi9kwg6FHaPK8xNjl?= =?us-ascii?Q?LGj60tgno55awzf9Mm9yo8KJP9XvX5O8BFAdTmhG6W411BC+QFcvm9sH9D4Y?= =?us-ascii?Q?BQyFVfCylkbA12yHTUv89elJX8zaiLQMRWFA7FfH4QzdO2sR3eVZcZ+5OS1C?= =?us-ascii?Q?DjV44ENGtuMmQEkMJAKJMkxEL/NIbj3o/9AGYLzTiqYOQbAdQhtd9Cdz567/?= =?us-ascii?Q?j6Tr+bIStNCLzSbgKTOdANWrvarbvz/yHDA+PuvBIw/XX+DqhWy/JrY9ckSY?= =?us-ascii?Q?U/R5CIChj1w5Qcyyud4MAuVBFR2tKGjaf1IubQn4jAIR6J30tjtHHSCIuOur?= =?us-ascii?Q?+LFKNBVA1l0khrlKBv6nAUYhuvsbqmVRsrL0z/WZIIeMzS/1Q9VDFiM7Ko7q?= =?us-ascii?Q?OkYsJw/TwZUkH+POtO3ZA9Bd0at8evTM0BqioCQihG9YcVYR901mzFV6F4r0?= =?us-ascii?Q?8HH/GYULm+IbwWsOkrM+Gm5hN0t/A2MqqWBHjX3aMd6FTJ6ElVZWkJ1EYqRX?= =?us-ascii?Q?pgoG1/RWTN85MU6Ezorrpiurb2aE9pJ4VejiP9xU9TLCTdlYbTXBHtJN30cu?= =?us-ascii?Q?39wrtkZBh8nHdm01NOvGrXGVWXLUZvoT6z/WoAmiiK/fQCrgo+7+MYCnVFWY?= =?us-ascii?Q?B2W1HW4uNfAetTRCcZvLhzEj+NUtytZbggz5/MXWciwTVEL+yg=3D=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)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7sIwyFdH0bNuoFxMMs6Yrf1yrQyCio6meOBeIFJhYnPKx3N7vj9zan9MzeGV?= =?us-ascii?Q?0O2Nb53y/jw9A8t0lFUvwcsh11ZTiVKuqxj35IBY4bdJBO65g2TB5PCE83gf?= =?us-ascii?Q?CsKuqOklTReKZvwV5HMa1c4xMOdxQDGzY5mQyeFRrpMImrhQvG4QNCSpmmhD?= =?us-ascii?Q?Gcu7D1iMw3nNjaYwYAQx2KCJn+jrz1tZKe5+DVY/swH6NWqFEDfTyexwMZak?= =?us-ascii?Q?TrRAuedfBOfEdVanaXU3zdiSE/yk94GZaDCzYJwJxZH/cQ0XActjBIi71T+l?= =?us-ascii?Q?lhD3Ot2DxLYddfvYgIkw+OXw6086seDGwB3xckDuBsqTR2lG8hUhWLCeunhv?= =?us-ascii?Q?VpckkmBBKblb/qDmOr7ingdwFpyS6Uiug8z5k9wB3HTQF9iuL+iBEHGxHt+h?= =?us-ascii?Q?A52xlpWFemOzJLx1WXiKd45BLxtbXDhCxSVVGx5cNekqoDCK2omK+FO4tcPN?= =?us-ascii?Q?bO+BXmvQqe8Q94ejYMe3kofThgiW3nNkJLuQkZyQH/mPLwEuL/3s6iVrLP5Y?= =?us-ascii?Q?HdmNb0kUrqtVs7AUW/9e8I5l+YCxPvUN3AsvFt3aT/x/SgsSQ78P2sk5iioS?= =?us-ascii?Q?MzSHnQGCm+FIWk8rzJlC/79ijHHmOzJRNVeRzsZg748QeUrgFtc86K8j1ded?= =?us-ascii?Q?AbJZbr60QHCCvH6aCh2CMhlDaWU+IYDKjXMpsBStzwHZRie0Tci6kQ+JEkJ9?= =?us-ascii?Q?ijGQIbkziSkrETVqABxAPJh5549/97lTnv1sgm5j3blKz33WWOHAd4Gta02p?= =?us-ascii?Q?kkSKA/vaoql7GGQnqmM9dVkP0UUgPlmZQmjm/ZgS7HZEdRspzGh96ymkmTQo?= =?us-ascii?Q?1pVzgIdSWR5WJzXqdiLGeaO9tQaefflLl2CeZMmQI6hYlB26a21GhPnSlWEe?= =?us-ascii?Q?B/5aZ0S4234/dmXZhaqRme+vQGLuDkJWv67tWPOMoKhZRPk6QqlKgqukmDjc?= =?us-ascii?Q?PT25ZG4HqofwWzgmZuJLzU9lkIG4WW9BbYxRKHDDgOTEN1wxro0cYcDeCfJe?= =?us-ascii?Q?jEM6Nr/Upb1PvY6+357dH2mdRcUyWUS8xHrJ4kgR9O2jOAjl45K3AIDCGVhP?= =?us-ascii?Q?6j5/lf+Ah2dCh8IlciLlZQGqvllLJor8jrBQpQHPFnFJCpAD1tS2bxQ7U473?= =?us-ascii?Q?3IArYKy5UO965MDiJLuktRfzPocleLWlmfPDUn1HWAFsOrZcIpsmHKvWVCdw?= =?us-ascii?Q?KX0ecVMB/esOut1wCoLAxrw3MhXuMdde8ETscDirgUhbDhs9uHdAxqluzfju?= =?us-ascii?Q?MmXTGuGSWZ1I0vLY3tVvu4hnGnu+5AAsH8Y2sW1Fz30C5m9DXFuvzK3JJfbW?= =?us-ascii?Q?1nFz4ScC3HJv6CrllaXBBe4o1nZE/ZHBiXm79te/6JnkNkOo7aTH59jNDf6Z?= =?us-ascii?Q?w5WhIOW6rUGNsrCj9IKSll1ndm4QSuhbjZwKYixT7GYcJw3O+M8LO39qmOZl?= =?us-ascii?Q?AuhH3KF65b9RHwY+qTWj+xyIvXKWCm3O1cUitor6PzHUKFfgzGWFTNTd6wyH?= =?us-ascii?Q?wp1a/xzuH5DKjELrLjU7Pzpq+bhZLQoNI1Z42g/he6WZBBXGJ1q95JpCIZhF?= =?us-ascii?Q?dHrP8sFe58TjdWboWP2O3pVNiL1QTXe3/WFt6ANewkqR9dkol80qLzAzCfQe?= =?us-ascii?Q?6w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: deeOVgTV1ye7BHTShu2evRSXgG5WkwmFkYx6fY5+vF18HcyrEYEq6ydLfMR0lraGMKabfADRO9mTE7dZkPTIdsV7p6QzmljLKJ8tV5J+6kf+6N7GteeMsBKk8esb6HrY8HPhS50Umia7zfw8OwmzblYBJKT222p4Lsk9GjRr6xcsZlcKChY3/48X3DFAMEgzy6K4Kd8i1+YlYZvUZ4vdNgF/ouGdOh42Cbli+IED0t/JN/oX53Tjoi2KUfzzLyIobuyDZU6byhu1OmYK/Gma6Sy0r38iAPH3glehHPPZuxiyK3jNVUocHlu9lyzJjAnZ3dmHiGH7pyVVeonubRBv0ej7PCv4XVrZbctZ6alJKuN2qbx3RkJRNgyZPo/yubBVPN8QACDbe2zUYVF+1D+HJF6DBpbgiRwWDpihCVxU1iTVqDnkRAfCD/DXGtrhYFYj5RRkISrNmcJViQvOPx8g5rmnjXPVY4xSQRnrKTMffaALngD5Nyo3Ng3eIFljxmhrmENxARA9dQgxkHLpr32+op7FY93jaPrWMmcL9PM3qfKMX/CBkIrwse51SDyieUCQT2Iv1JPUZtbWMYxoQHML1L+hafGbRKrniPLN6YX4yV0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 81aaf856-8d24-44d7-c59f-08ddac95cfdd X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 05:22:39.5073 (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: ljPohdSN8U+QlcJiHytuyqnIeryw9M6h8HPehvnPFj4oQZhakx+JvHAfYsiNDCpmAEWCdZvNnpF1u8XNdd0uGvZSN2F0H+fCNRn1HkggZK8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB6389 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_02,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 spamscore=0 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506160033 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDAzMyBTYWx0ZWRfX+wdx9/ZP2GQ2 4PUok9vBH2sydhybM3yCK/t+3ZvMm+tL5OGDM39Da01zgwUYE3csuUWCzmR3olBRW8KldwEgKAc vX/VNDXBeBB0nBcdVIX7Qo/lRlzfSmvTfRkSd63xneaQIQW0matCydQ/gEzFP6adXN5SntWk6gq 8XYPTUAYF+aA6uCItPbWc4yXqo0xBhtFxUub1X7Z9Av0CZv6V8EAjFA6zS89N9/HgRTAot7qBGp 1GT47nqMHcuTGC9sX2ULhAhQCNjUsMY4aQ0K/WLiUcB3GztxfWJueZBoKbssWejN0mfa/G1icqA H4Z7tUnb5noi9I3Xj75yLYzZqqY6iT+hyq9lE4hK1T8eXEASqVlvoO4zENb8KlTdpjLZQFSmfjJ mz5Mtw8e9bSRKvfCF1vsywooaFB6NrRnZ1NA2yJqs8RxJhQ2DTvzjiqmMvdsNqJeOe6jLyz8 X-Authority-Analysis: v=2.4 cv=U4CSDfru c=1 sm=1 tr=0 ts=684faa24 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=2txnUkrh-zOa5si45iAA:9 X-Proofpoint-GUID: OkYLj0arew8tsuLvOZZhRyxxnVxPCg5o X-Proofpoint-ORIG-GUID: OkYLj0arew8tsuLvOZZhRyxxnVxPCg5o 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.31.1 From nobody Fri Oct 10 02:41:51 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 C08981D54EE for ; Mon, 16 Jun 2025 05:23:22 +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=1750051404; cv=fail; b=lsIhCGFYYj0aYxJaiD+YKR5UVh7CKq2ljYgCvquXCPeZghK+Upc5MNEfaEH6x5uhOwYRj4eK8KyfwwqHn3kiKktbZCNcEuFNdmDpsiQ0DuxJHAuOMcClbQ63usmnZIcF6vVeVxsow7aAIWnBVSDY7bz3h4gxEx9eqArPV81RHHg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750051404; c=relaxed/simple; bh=wYH8lUQz1U+IstbKnPLIUG25qhzzf3r2rk6GI3KrQVI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=lB2gbQImH1hZBQ7mmI7ob/vdrP4dBn2j04CEMtyl84Ck7OCRuz9Fq0Om6t7k7mT3dVNrvyoEn9VuGJQJCzGp8zDeEGWqDuwFNr5CgmhqmEdykI2xhoJ1ditysJME40/aQ8bBgsnQeVVdCLNHJqPZ3byM4wIeRlI9r99ECkWV6kc= 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=TO+Gw/kV; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=q5eyftMn; 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="TO+Gw/kV"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="q5eyftMn" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55FNNDEK029207; Mon, 16 Jun 2025 05:22:45 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=Kj3nDr1iasp/1BbvXitpPyRMblHVmINj0Yu24Jn6PVo=; b= TO+Gw/kV6pGM5vwF5oaffiSbbyxXGBA1+UMQWLVE8xzayGs+PDL+OUkz2KiS1AN/ I9xsB6cF+NYv5JRk/5CBTNU0Mvp+S0+G22W0AlICw+tLW9dh4Sz9ijNFxmawQJVB OcYKb8Mr04nL+9SrllZ0OewIVZjLo/mULmIyf8dfisbNmpB8f3uWBq2+wPRcncMc agqB+poQfpbpiVBPrXZWHAY6CQFCruFQBRQg32JyDQJatCZU75pm7Og2S0apndqW 97LBPNZQ/2yatpggDx0Vu3jKWotiBC+770D8aUGvY/kfUPwQ7s8SajJ1ocqNmJf8 vi0+cORJVjile8wS9FTcmg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 479q8r0v17-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:44 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 55G45IGM034394; Mon, 16 Jun 2025 05:22:43 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013038.outbound.protection.outlook.com [40.107.201.38]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 478yh777cn-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kNDbXRgb7UvT9RvPnAa0FP/Ubtjy2qepxy4F7d2SQr07E9Hzjp3kO3qxCYb9FE312dKhYyCGQrlxv27idPXsLBdgRzVmA34OUCU0vXo3eYvXMb1EOfB/a21rYZGnkZERa6+TFADDwETmYozJRKKI385mQyWzKKhu15mXK0ZTXmJMYndhd9CHdDeepyLqFnpKodH7PIYwLkn7DRJrXZRdTKUWV5VMgHk+GKjGDhBdcd6LPNylChARrcrFwcoWOMI0xh1NOiAxQC/GqYwtnfLBybl+rWjiO1oVF2ZuGN3Pg65tKD8/08rFIbg4VpunYKJfACLKTZoTy24M1VF7D0JmPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Kj3nDr1iasp/1BbvXitpPyRMblHVmINj0Yu24Jn6PVo=; b=AiLR5j8m984mLStX7UrAABgF4IC/TdERv+FgOvADNniSHajs/NHBJVnEpbYgriYqodkdfbV1lB+xNzuVY5744A0AneHkAVxKAfyArQGrXu6VRPe0fgh8nypnGnr85nqJyznVhPjYHIL89uf66ncA1GvZsoBUiu9VQFMyljnMZqwzXKWkzxqadfiVpxqN39vfHBq4yGjhFXrJgKR+K+oerBkuH7/kFaWOKofDRA25UerJBh6SeyS7F61/DeQ4+OR8N+ZeBNx2jhmUXKBshP9mvcKL4g8dpTUDN63PkbFiFRrlNR+xVcNIeHUalJH5jqmRrK05qionZ451tfnQaFP1DQ== 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=Kj3nDr1iasp/1BbvXitpPyRMblHVmINj0Yu24Jn6PVo=; b=q5eyftMnnn0ZV6PyQQ4YBE8WwgtpDb9y00cghFcdmrKbJVxxuTzS6OfjYJUnS56F3zlC9wsNlRfMvIH406MVT0pXcnub1V3ow0CksKg3Ub9YVpcqiUORdgKrKx4sKnjPpiQTJVm52h3dHB2xFawSRx5Hxp7lvWd8y+v0ovi50G0= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA1PR10MB6389.namprd10.prod.outlook.com (2603:10b6:806:255::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.28; Mon, 16 Jun 2025 05:22:40 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e%6]) with mapi id 15.20.8678.028; Mon, 16 Jun 2025 05:22:40 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, 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, jon.grimm@amd.com, bharata@amd.com, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v4 07/13] perf bench mem: Allow chunking on a memory region Date: Sun, 15 Jun 2025 22:22:17 -0700 Message-Id: <20250616052223.723982-8-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250616052223.723982-1-ankur.a.arora@oracle.com> References: <20250616052223.723982-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW3PR06CA0025.namprd06.prod.outlook.com (2603:10b6:303:2a::30) 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_|SA1PR10MB6389:EE_ X-MS-Office365-Filtering-Correlation-Id: 964d3084-df68-4ec3-7bd5-08ddac95d089 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?dm8AvX16bearaYeDNaqVpAvLjxBR2KMfc1tgbZSEGv2vC2YzljK7EL7r/gah?= =?us-ascii?Q?arvwiaYqzSU07z1Gz2/NATjCvWIXud5/Q6gV/sm7hAUOuc1ZN8IwMqQ7CuOv?= =?us-ascii?Q?c3a1V1T/RIer+8qk8DEWFnXYInLlrQbni/R6+dLwZUxvAXUx5E6Yp7ToJrLZ?= =?us-ascii?Q?WDfp9P+X74HcVCzqbEkc3lF8PHtSdde61UCoyMD/wJfD1MEuHvW+t7hL9Ltn?= =?us-ascii?Q?uJIvkypBuk5gFDZfDrTh3vcTxaaLyPlwCg10zwi83H/77RGidmli/3UREQAR?= =?us-ascii?Q?inZfReZ4i8jR3S2iu2QHESsX3xPwI7DWhi9Tcv83iZh/C/8BD2MbIM1Kl1jA?= =?us-ascii?Q?FnWdFyrpZeCkpJak5GUnqSP+kpGzmJk0Piwlk7fMUiEyCuyQTdwvzQwcpNep?= =?us-ascii?Q?QfCcnu9wcB/X9GyZnIKx8Ij/0OXixSY3Up6+yjZf6pryvs33JmzebyCaH1aO?= =?us-ascii?Q?XrosymzxxlcWpPANsGDGNtbDlAER9dSynI9zOuEjjuIlLyUiMVIZJSuLFQ2X?= =?us-ascii?Q?NZnQssve2dvV6xg0OyWk5aJ8k4DvoCpdsX3SJOzWhNUbdK3cop4x1ttDk9b0?= =?us-ascii?Q?j7BMLf6tqxaYoMj01ixL4xr7gvK9D9wDoVyAHoJQblsxH7xJE2NjKpXUzLSn?= =?us-ascii?Q?Eyw9+Ke56ZaffADZS3/dCEswlrVn3jgldD363xCs8n28Wvm/Cf0XDSHtcqd7?= =?us-ascii?Q?RpNReSwKXJ74u8CQ/rFfYgZ5bSnZBJ6kX4rq0580yF9Mso+jVYXcMF1w2uCg?= =?us-ascii?Q?tXYUqAyWnUUHeS2KjShnLPqz1DretHWspKeqawuuVJicuRxEQuU0DcmEyEjV?= =?us-ascii?Q?a9oQBwQRL2jDhXSdCtZILCQfzHfBDBPUNeVWW98nl6Et3lSsRwjaq/8BbgBc?= =?us-ascii?Q?s48YlX7MsmvFcxI4Ignt6RBNVJD5jFGk7cSw29jucJNbL77wNndUy4hYcz/k?= =?us-ascii?Q?RyJvZRRL6zGbauWNiwXf4njZd9kurWqfgwrMbGfrPacuCWZdyP0iT5gUjV0L?= =?us-ascii?Q?Y2H7qaUTPBLjklY+ZhsD78V6rPPZs0zgSHrLPyYl/Ga21lYTe/ZV65D2pKJD?= =?us-ascii?Q?I2TrZqjtBz8RB+msinGCfjnRxUQAN+6e8ZHVWMtsTyXMescSLqg7f5D3MjMQ?= =?us-ascii?Q?CnRdUGkwJLC2fflm5+Mprwjy4ZPL/2LBFGb6ptX/DgDh4F7jhvLHEmGfJi1u?= =?us-ascii?Q?wkPrR2VmyvtNviXn533+R4VNKDEVPzsY3ZBbY1zFEjZysDFzBZZ0hC5V3GRa?= =?us-ascii?Q?cxKAsLwrZ0KnBMiqyAD1ekNB5Sf1AsPIbCbx45epeIdYMkKcqodzEKjieet7?= =?us-ascii?Q?yEgi/v1E68xKC1acF+IeeTeIn8S9dgn80cN6pr83VKEs69vx0Q2Q+aEFelqI?= =?us-ascii?Q?1A/3st0PCXlNUllhLxIt7SdCx8MQNm2qCRzN/ABUIJ6CoxGjJQ=3D=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)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?f99YXOMmBpZ85bWy2RvdNvXVp/pwl54ES6AJRwQ4lcEXFXGGP8Lj0EvR7vsc?= =?us-ascii?Q?+lUkMDz97wFkAmx8oV0sz/NkeG24LVbPd+oKWOWXZFu8jhbdXFiNofqRJf30?= =?us-ascii?Q?BqrOOUmd03BTrH21i0C/elxZr5NusKdOsOZn0pRyg/AtAqOhdhjAgAz6Av6P?= =?us-ascii?Q?UKLGkNMGZwkaFSqX27BwxJg+SQmO/y6WcsxFu588yXfcN6n5F0qMo2bJa+L7?= =?us-ascii?Q?3a+jTDsoMNQWR/2CkyMoCCmP9nAyzqh76SvujvHUjVVPdpmt01chRPuRwidn?= =?us-ascii?Q?fo+L1KTv/30j5Ylxf+ODtQTcI3HcTMcSU82VBzXWaQCIuH0smnVtb1HCMfKc?= =?us-ascii?Q?7zamTdBF/Soy+bs0D5Qb/UkzCCi4YrZ26aOKxp4PHIf9xjV4n26HUuULTFWF?= =?us-ascii?Q?zHdOUafHjKyZ/KCEk3NPWCYNt273Ii/94KgtX6wz5wthFps3HzxTQlOjgiCF?= =?us-ascii?Q?BAm1sMIFo4UODyFXCmR0UveirwxqOOLfvfCjiMVVouwS0TzynK+MSQQdlh20?= =?us-ascii?Q?AM3+X8PREQZMdcD5CZC4oTebGz/CNUFnyyfXaR8tX/DILSm4uFrdbZ1htEe9?= =?us-ascii?Q?M8qczdgsCVtxVJNvPihJghGmgYNMZV27HyTwWiHKOYaZ0DAU7zWyutVaOoyt?= =?us-ascii?Q?Q4rTVOxyT49sjdlQnDyPfj3KU0hXI7FyHP3acVYj7HmrdHUs38mKdG/HPncM?= =?us-ascii?Q?uMORUmT/7w1GnePgEO/Ql3JHFmwzyZwlfQ2ppimEEIgx5CTcE8OV258n20Go?= =?us-ascii?Q?mvEgTxYX9j8U2HvhPhtInn/2uaGcBNfPy/TSjXvvWA+ZDYpqFxRvwQ+nL1Bj?= =?us-ascii?Q?HPgzzcsSvXCINjnLiyflJBooTN4AYkP6tdWgywGPwlURPwjlym4byVqmJtHC?= =?us-ascii?Q?JRqeEZdZjtmvpz2zwNrtIJhE2A2HR4+QqM+MPchab2AUKSVzWxIhCgBluCo8?= =?us-ascii?Q?P69Wxg6NSl+GdLsWIxRdsUcHmPReNE11ZGYWDWZYvaGr6L1nbRg9cDlQSYQ5?= =?us-ascii?Q?e7dyNveVWmj76kcbYTzUfxa4hUtEoWG3Xfpc56+C0LUA0jG5y6KpyohhbEJU?= =?us-ascii?Q?dmIhPaD3aLRE+pznqQ/drOtE4M0oVDO5s2jiMjYfVtw2oUJDZHob7bf28iQx?= =?us-ascii?Q?HCivPsqZXNR+Va3vJZn/ql7XEKHIEczzaVErbsYKRapZ2RmgWYuEuJXHc3/A?= =?us-ascii?Q?pDuzIZOGViQFyItql+BDHStKb42VboRBREtMUTlDcqRq6tVINhqcg1j4cZhw?= =?us-ascii?Q?xuhp25ehh8gDuJGccmoB3dNtq2kEUt+lZdvtWzaJjx8/0eJapr5T5US9utPA?= =?us-ascii?Q?VoETDAAvb6PsUi8LHmn095wi3Bv8hb6H3tfqJ2uOdYgVR1+F/tszeLkQT8SP?= =?us-ascii?Q?UNi4iTOXfIVo5n+Xk8jzBDYIE1HWkFA9yRgtCj8YMK4uKm8M9W9tUBFzDgia?= =?us-ascii?Q?JRcBTdA/dUTPS8cXb/2i3irCHhSA90k2Dw2J3dCheyvzU5ZyGt7JHiP51hKe?= =?us-ascii?Q?niARjQu+rxdkRZHSWQGx7NdNfoAPgDU5ftib//kZDBgTU11JoIrVZ/GUgM4F?= =?us-ascii?Q?RVYGzIDShNcQ29IwqZBN9v3y+u03TfiU8YuXz+THU2YmIkJBxziWhHH39r3i?= =?us-ascii?Q?1w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: gbtcbSAcm61+HcC7CglSq5n6oHcB1MucuyHrf7h+sgw2dtzWWSyUFlpzIt3WsTc60jpBUdTsvsdYv8z1gb8y7xsILu9Xxl9JVbTkjOlnViIYxNPnV9MBgVjCFuwUrOT2ZpbYMT0rSJ7+so3Lp5eDDBOk5RIrlnIFNzpqj3jYCZW+7vZyVUTVXrix2r5v8IO1Vyy8IZUHctrM/ldXpU6LJwtD2rGLSXg/xW7EEzhoEPHSnuR3CpbhZ41hkJLvmtDM4eLKlYQ8YFVkzFJJq3hH/0HRhAFCvoQJ0AFzPd7Cw9ZW9ZN+wkEtQINJE2wE52VFF3o/Wj8wBrXPDF+Uv5hRdLPqftw/2pwmsPr7/i+RxrIn65nHYEiuELfNQseg9109m9AGEihDzFZJ01xR23RKE8+88/BvQ0J3It0vh4h+IABT1m2CCbnUFs537Te6P6zzAXsewWaARg33zTwZDP29EtY+Qp4BKvCeR2duRLwViuAEUEbiOieiRSGEFfuO/OC43iqqGChduz0/hLLiudstQ84N3R+JJiZsodgw+fs27uYHxm876a03uU1eJ5gHefYFt8xj3oJMq1nF7DZBdaXsNVGE5WgQONl0JpvjdaKMZ/Y= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 964d3084-df68-4ec3-7bd5-08ddac95d089 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 05:22:40.6319 (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: pM0SBJw1xVxz53Bj0OSJQ+GvgbBv/KmR2Wz8YbF/3LCRfGBcaWx+cSt7AyyKWLrB5e6g7b9EtSVuKCw3RFM1wwO1cwHeYLRRwTG3PcB4f4g= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB6389 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_02,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 spamscore=0 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506160033 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDAzMyBTYWx0ZWRfX0PXlQfYvrIJI FPcoklUzKbprHDDaBohyXeykhDZ8vYF9/HHsqBOPQ5AHyw/3gDbBmDsjZhn5dhY8+ShjzC8g5Py bZlxz0I1XWm1dDJYTd/aPdyIf8uGAQHkPxrp2KcaWXd7HdvX/h3p51GmUBJpqofycA+K8RJKTeh 6f+HcBj/kQHZKExiK0qmhUc68JAPKbdfcTMEZacWGqatFJmuyAg6tgsF6xyPkO/N4CzOWW1TWXg zDdv259El9FEVTHuxmnl+tpQ9nIpGCFHeu0RboA8X2h0bs/6j7pJVDtG8kbldqySxfHQmD4rK/m x9BiWIP9ezu3+ThlRjFgZPqDvf1hZX0q4kn4baEp6V0bsyMZ5883SAAPeSpSQnNt6kdIcOAGg2v mmQ4MUbbofRCkpSOT6zVpvQMWr6wKrf3CgXL+GdNeTKYiuVwNRlZefw34R5CJ7vbwZzvqQm4 X-Proofpoint-GUID: tx4k9s1uUPgWhPQNefTnl0SMQmkFWnNU X-Proofpoint-ORIG-GUID: tx4k9s1uUPgWhPQNefTnl0SMQmkFWnNU X-Authority-Analysis: v=2.4 cv=dvLbC0g4 c=1 sm=1 tr=0 ts=684faa24 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=j3Oc6Xy6ULSXj8zZAogA:9 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 --- 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.31.1 From nobody Fri Oct 10 02:41:51 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 B2EBD1CAA6C for ; Mon, 16 Jun 2025 05:23:29 +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=1750051411; cv=fail; b=ujCdM2baRizbTlIqEuzKkGxZgCm8CBObrcMX4lAfYvBM1uiY6Kwj+Gn22OB+O1+mHKfgC6yWN6zqu6TnZvZ0gDhG4Hs2X0yFs6F0C0zwOEWuMxWaaLpPOXJvRAcMEVJoFXrIq1S1MT2C8al7uM6k2tnBHPUAY6NxsaZ5pMfgPM8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750051411; c=relaxed/simple; bh=rIB6IkN9wC6SZqW/Mf32kkhNdqI9yNCYzQi1RSqBTNc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=JJvmx7Y4dRNE3/UCMxl7Jg+d74lp7CoXhbXpCgGK5RShsWQFPqPaeGc1M34SA8V7jTrAVhYkPbIWW8PNb5ZvrnIiU21DQIOBcKreW0UM4cxGpaDVY/Two3tcB0emvy/nAgISBtxXQzGiQ4fB1YgAvyANG8yBejDVb5tAxpZ+mLc= 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=FD5zkUet; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=LOfAtEfG; 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="FD5zkUet"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="LOfAtEfG" 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 55FNQQUq015526; Mon, 16 Jun 2025 05:22:45 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=CcoRze4gD1KQ8pWom/njA92ZrFAqJrt5sVWFVOEv4Uw=; b= FD5zkUetc/fgm4smFuI98oZ1psGyJdFjAK0r/0rPjkmJRTawxhpTklNIGME/Q8Rq Ama0TRfNS9dB9RAI5JhmzUcHCTbA7E7tO/JJWe/7iCgajJKjagyYxD092R04j8Li oG78qR3CxmIW8l5cvcyekYEfRah4tvSG1OvTVb0hsS/V/lpgxVBVICpfLZwQRkkX hBTn2y2OdzSDGw8Fji3M56sTIMi8P794sRQq2KMkk1ESFwmWxeJTXrsMMF9l1+iW CedrPla8XJ7QhwwXdwEK5iY6SRKjDRQD9RJf2TKgsUM1+KGT4Tqqg3ccQC21WRz/ jQc+H2K44LhEweJVLgS2Ww== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 478yv51pnw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:45 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 55G45IGN034394; Mon, 16 Jun 2025 05:22:44 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013038.outbound.protection.outlook.com [40.107.201.38]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 478yh777cn-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uN3Z+pSxXoDt6wM8AmuZwRUTh+g0gmofRmzXeyGcvpWja/6oQAHyhaK6LC68hQsGu4/ZHP9hEzqZrGJjvBnNA2iD8ZWLdFf8IpV927TrsDJDoi34gxpTQX7vBC9JPyVJW1UWhE8P1VKnb1/VgnLgbxV66W3JIWv3hlhYW0pE2vuo8t5KhWmetZQHZmZFhrYQtMb6/+C3ZgErSQGXIMh770RmWD8Iy8LdKt5ziQS/fnR1niVhpIF95inELfMIZa5FXu0JwIyTxPwSiDO1j4vd/09ee+nIfdCuWOUgA+zj0fvowuL8PtZnXi2z34iOv5i2FbrAZDFSCssY1HOPs6QaKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=CcoRze4gD1KQ8pWom/njA92ZrFAqJrt5sVWFVOEv4Uw=; b=wpgjbiuwMGByscns9gZBRGHlzaRogC4BJuduJ2yWjjCjim3wPtvyx9OAOzvrbWoymsK71dVn4rAoxpQA154mPEIVFBiqNmWC23UID28xn1S7Z5YG8f3YAVJTMZjIur9njGswcRNP0xAF5ZQNoIc2PrU4CFBFaAE20JxOIJqw8bBsDKIVFbR6L/4mJrs7yZqrQG1OQSdmIo4MpSB71IX0ZfnHwur+v7dT0JFh7L2bRUMaD0G51kRLeXG4KQcPumDfSPnlrkI5kGKsOBW0zZnn8pGfr2+zWqT47xtg9GoK6seBIcCrJdfHEq4/NNLVNDkcVNnwKToJUgmjja2i7o/tJw== 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=CcoRze4gD1KQ8pWom/njA92ZrFAqJrt5sVWFVOEv4Uw=; b=LOfAtEfGfKanUGwUHvMhxYbMxR0nmw9nyryk+hhXTNT+UAWBpb2z3tSbJZhnSLPvuuLxQ4aIOL9NJNN6RqfTq6N1jHoOXu6EHxhIOc8MJs6ZoqbDHEF6z09jFtwrjXbDPFuVE4cODRNkN9JLI2RSNXJP7YnG6uf/Rh7ivaBrV/k= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA1PR10MB6389.namprd10.prod.outlook.com (2603:10b6:806:255::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.28; Mon, 16 Jun 2025 05:22:41 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e%6]) with mapi id 15.20.8678.028; Mon, 16 Jun 2025 05:22:41 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, 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, jon.grimm@amd.com, bharata@amd.com, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v4 08/13] perf bench mem: Refactor mem_options Date: Sun, 15 Jun 2025 22:22:18 -0700 Message-Id: <20250616052223.723982-9-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250616052223.723982-1-ankur.a.arora@oracle.com> References: <20250616052223.723982-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW3PR06CA0017.namprd06.prod.outlook.com (2603:10b6:303:2a::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_|SA1PR10MB6389:EE_ X-MS-Office365-Filtering-Correlation-Id: 6ad9e963-5164-4f28-3b8b-08ddac95d147 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Havn+APrZslkojxhJ0PQa+M1IsBnGZk5x5HkSEExTHofPibkUlK7qAGSlbBK?= =?us-ascii?Q?ONdrWyn7UKHzhM4ctmVsiPc1vGPQYknJqiC+LLnWeGQrchQBxyWbO2cHEX4m?= =?us-ascii?Q?Qe5BOpL+KEx6a+xOzqnv5jh7QCAjyxC/Q9uf9LgC1usGBWEpH1Dq1BwODse8?= =?us-ascii?Q?EcY8N8KHzOxVx4M9mM+yzvzKuD6y8cmg6V1M+u18tsUQaEWXEoOBpHnlFs7w?= =?us-ascii?Q?+M+FodPsEk1/GXF5lP/kQd5an6Fn7de9PblInTaKkPFvQHaes71B/73QoqI8?= =?us-ascii?Q?xyJZmilyV/nC6vjvRTmZxIg6p0NgtGA6N2OVqir1iy1Xl5hoOdpOn4zhGx/E?= =?us-ascii?Q?NT7msKJNbiu3uIKuarF4c1r2Dg0WIYrMBvv1mMGf2f+mdYtaPB/qnEAMf6NK?= =?us-ascii?Q?PLPIGJq8jWBMr9S15ZMLpLUUw1b6ykUJWfYynOipkAgPpvaDMv1vwKo+hjPu?= =?us-ascii?Q?sgNFquMpxX07YiB0ECoqSeD7vzpkqWdIiCnmNe0dM4tzMSmUfZQF0bxpQvF2?= =?us-ascii?Q?7kfglAWb25TGkQOE70noIoebYv5wxPhCuwDSwrAdb2Oudtyp5ts4Nsjo3Zi4?= =?us-ascii?Q?7STXsckgUyVnlLTSdnpLunMU9z3KbdjrUs7X9w4Ljj606PcW6zXYWcJUbuS5?= =?us-ascii?Q?7+0lzKyurN6KHOVhB++HC4/T71t17Yqwx4V0v0oeWOfbPz7VboVe7u34oSyV?= =?us-ascii?Q?MMTMv9kNRB5fvpRP5u1Z/2ouNAVYNY9tIzRyiHSZ4lv2ophUl3KYBKJBUUxI?= =?us-ascii?Q?CeyEIytUH/nRwz+3nTt9B0S2S3LBiGvVKufvs53earArN4iJa+2GKlSm/OuB?= =?us-ascii?Q?ACLSdUC3NZ5Kb+iPW3AwLZo7i0J0cFlXNP6AM8n3a+hM7538FNZJ4hIdI7Ns?= =?us-ascii?Q?PXVLuMH7Ixt40y36aJxPhCbNkMOyS8gBekJWEFpTrRMiWOhGnJDuCHLJNDhn?= =?us-ascii?Q?m8cyJ3alaB1FOQ51KA6H3BtqFufzR4MKxk2VsFjMv7eB8NKFX4e0HpySm3uM?= =?us-ascii?Q?bf7dZ5G8h3eLshQNeQvUswbpl0f7Q9JHv8SRkdJ8Zv77XM301hNLCLWSDUdS?= =?us-ascii?Q?mObygfOPoBGaBHcuhA5GZX2LyWySQzhLEUIX3A40t+9xzxP+QjipXDdvgJk1?= =?us-ascii?Q?vZOx5/XmOZ6v4FOujQgK4fvz3UafSqJ/e2xztOJEbuO48NiuJLrEj46LTeqy?= =?us-ascii?Q?hA+dFzFhnYlG4Z1DH180Lu+D15BslXtq3/H+qIVf1JPsHe7gpX3svsuxrDoF?= =?us-ascii?Q?Y1FpMxo1mp9eMHqxE+Y3IsQzX89/evoq+WZlgW3K0up5LntqRfz1DQpqnnXq?= =?us-ascii?Q?cPIWzO+Vxb4WLudP81+yoHpfbrszS0x4pypjRJdjVmxbxEI3dFA2PsAlNdDk?= =?us-ascii?Q?DD57WCajvge/YFV4loanUBE9ZdIh3NqVG8ZFS7UE3R0U6/TvCw=3D=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)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?gt5lw0U8vy12vQVKBxTv1+mhJdH0UnWccSv352frtTOirY4gm3d6cWiZH6+J?= =?us-ascii?Q?XoTX41CpJyjceFtBS4ACISmJsJHp3EiNV1lYtW+tipYKdrAKB7RVYFAYNp8+?= =?us-ascii?Q?ObZK/gDcZrqSNZs+mn6+8UMLtOw6MpsEpfIYwYws7lAQhZDSf4CJoxjz4K5E?= =?us-ascii?Q?vf7y6EzVOkSx1Am2dWUXnY2cI5dxRCnJ/2lPYEJYN/jQsN8z2SSWLQYMHpQN?= =?us-ascii?Q?Ac7D6sVT9P7yn+LlXCLuG2OgesjYFXVkc5PVmZhCAkYEKsy/LW0POFtJLnmS?= =?us-ascii?Q?bS4LkyBFxx35b8DTHO21pBkab7mNF0tgbtEGjgjkHwxvGY3c6FL17QSKpyCG?= =?us-ascii?Q?VbsTnJpEtm+AP1tYgRaoPf7+q9cusdDpvhP78UPe5m5CIk8wzBgknjKXkjqY?= =?us-ascii?Q?OWqVPBFB6/iFX2Q/2swMaoI+xlUO2Lbhh7p7iGPnZNApzQo/6NigFLQulPYc?= =?us-ascii?Q?aMfTcZTl5pb1P9RoGyMgB6qZVXOV7cPe/NO9g7SQg1sPVRmZcXoQQULYsVlb?= =?us-ascii?Q?qAy9sKm7uOCwhxbaZ82AtgnxrRHGNHuAYXP/O5NBLUHMFoS6ny+vYLpi7GCC?= =?us-ascii?Q?/xUpT7MAw9eQ0k7jrWw0qxTH4/lOLkCH1qHRhN09CCxBJw2kHkQ1erPQxiHU?= =?us-ascii?Q?/JHxWkgSF1G6LjLmNkVL8XmQQUK/agvisrf1xK/u6YPYmS9xYLN2YYlBNO+w?= =?us-ascii?Q?eoxT75IbENVckF56NfPa9P9oyjd7HnS0nFDHvr2eMCj68IhBxF5V5KUsWaeZ?= =?us-ascii?Q?OHVmJCozyvRx1Y6Iq4PV95qTt1ncOJQ1BwG6AeFY2k2rA/e4nT9PDj0JXhMK?= =?us-ascii?Q?tWePOBEOgxGheWHQPoYc93ZpUVIKuXlw+K7HxiStGvrLsQx+cyHf5aa4UGSw?= =?us-ascii?Q?XJCYDt9mjeEPwI5C4YSGrEJPV6+w2WRmskp73kKIAUuxxCpjHPTORgjZ2eRv?= =?us-ascii?Q?S5yzLJ1RyTVlIZ/NsxPSH9dekd2OFmN04Qr0HsNs5gslQQ2WBfrxBRBxDwAp?= =?us-ascii?Q?ocVlfIgXVbckWRbNdyP+hqvIQd/DyRev5iS0UaJn8EYHrQ3xNMyDsn60IBdI?= =?us-ascii?Q?QBmGr1C8uoc+45xdSJGgQMFydDUZFihSFArfQdXF0Wouo3RlP/0I3lbgZ5fk?= =?us-ascii?Q?8MSIa7ioDt+lPumFVvzXLlxaDplpkjjy+K3SZgo9vSCoEogdDjoavZwWYLsg?= =?us-ascii?Q?0vog9hi5dCXk6beudkSdnQANRq6XACOb2auITZ/2FIamqOWhxs6D3XNd0aAM?= =?us-ascii?Q?QGp75O0cdRoNu56vxeFgImxpHoWv4vtbNCGE2qNHwfwGNNdxwXiF8lgZkei3?= =?us-ascii?Q?brTOieTUmVo65nfeAjgMwKqGPdQWIFhkQBUnimZXFRdxDaMkS6aTA64PhscZ?= =?us-ascii?Q?rg9dZLo+FsojlQ1YxDohQOefFuJVqpyHFDduLowEEXEua639TI14r4erW2Dx?= =?us-ascii?Q?P7yE7b/lF3IhMZ4FUMxGPnMnh2td7xPiIZYFCdpFfvow08dh1FmATfM4yhIK?= =?us-ascii?Q?9rtHGAOntiikAsocO0oqSlN8angEcgRIEcYQ3ZJXnLNFYaZUUOEoZIcXjbek?= =?us-ascii?Q?3EDDQKqcRmku/UmF8t0f5C+bIIbL28jkADjJ9Ek/yREgQvQDchOpZKKcnC/L?= =?us-ascii?Q?Fg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Irtx9KRqNeKGuU1rqXJUquY3a3r2To6PXELCMMsIcNQ+Ts0IJiB1xIAGkVPfvzTWTYlaaNvCT3Sp0pbaR535ipZK7Y6vqpxinePWAmr3GbiAWRXsfcHtZnvtA4wo3ZpWe9dd1/FgcvLbTrJpg7LAHH2Xmb6CKJ3UFDq+7uZ87LHTFuUeE+MB+rMbyiw7+YcFN8vTkLYgTJI/0NEnNxmd0e6tjAeGWqXocM7ggDDlygXjCSaF9M0gQcuNZcEiJrMqps844pWelBUwIP458gJjQ15vhVUQkkRYmdU5cUdDTOOhDKTdFemMM1+rrIIRi/P3Ovws10q8rdTIOqgRhBuYYE+nI31df6WUttnIN4IPHWyY4KdK3p5DTdO3Z3ddMD4wPY0cwkI2vGTtDehlkrJpn529ImPgkuh7LMjKgxi7KDgeUOEqCyuHeOrxIxR1dqNZH/PUq4pCc3Xm9N2gpKjH4DLDedwIYT65HdCvcXGABqx0dmf9Mf1EV8Q+O+0PPX3H1mqaz8XoG+W0Zcc+9Cv/J/e6D3qPZVa0vkl4q286eDuMPcm1G7YaaG7bmvH8Af005/KLL54HDYTSbejva5M+luFf2/oyyu6wVqoRWSDZras= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6ad9e963-5164-4f28-3b8b-08ddac95d147 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 05:22:41.8617 (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: aZv/eiqVq9FEaYNcIUulykuy6U5Rx2zArwQY6APQXwm+loxMgA2YVDZ2BN+tel3csQRpny0qaEMyy4qlAac+VZrnX3+yoY4kG/NJ5W1LOos= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB6389 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_02,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 spamscore=0 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506160033 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDAzMyBTYWx0ZWRfX4GP6vFxfxEFg 5OW5+VEvCGNsUKn1fi1l34mpaNvc4oGB/Dh9Obx+feW/5matAiQJ7h77ISJZ1wPWLla5v6rkgTp nBkvJBrPrSR7G//Op1msDMO8OYnj58t8uRILj8RsvJv5WSpMHESAWqyZHeJimwi2Qtaiqy+epqH LbydieW2vCrXG1VQMPNTStyi3fQK8wVLzfe0h2FZSgfTyy26ePo7WpPk2lIRuzFdXK1jUPaz8fm ZOAEycs2cshD35Zb/cyWJUyDC8Ip3uJzohbXygRvDr3W93ZQsh3sMYEcV26AchY25rBNc9J5Clb n2IlgCm305HJSGraopvYDGve348vsooBn8CoEwfH4jaP1j07CQmiTL7DJg2cOMfAj8jYeGAl5Ex lbjWQQtTxTKkBiAlg5yQzd9mVjt1gZpdCvbVpw4y1QyGngZbEmQAxjIaaGf1UReGsc3J9Eqk X-Proofpoint-GUID: jnjJ8-ktpLYh722Q3xkMWJArJpIUSj1M X-Proofpoint-ORIG-GUID: jnjJ8-ktpLYh722Q3xkMWJArJpIUSj1M X-Authority-Analysis: v=2.4 cv=W9c4VQWk c=1 sm=1 tr=0 ts=684faa25 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=_oAs_-Zd7h5Ft3cs7ucA:9 Content-Type: text/plain; charset="utf-8" Split mem benchmark options into common and memset/memcpy specific. Signed-off-by: Ankur Arora --- 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.31.1 From nobody Fri Oct 10 02:41:51 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 5A2F01DF26A for ; Mon, 16 Jun 2025 05:23:26 +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=1750051408; cv=fail; b=f9gU1OQA+ylMWNGwZhHYn3K5MvHVSdpkDIt09eMUtf4YbITzLZew0uqNBaYUsVPbH2Ym8cJIym3SS3XjC8uSbMRWzPq1qO6Mjg729HYhmV6kHEVhULqAukkJxjdZhxWpuQmgryuI3s8vZJJUGmRkN8b7VhJdQC4hJbYRg4UORt4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750051408; c=relaxed/simple; bh=lRUbZ6X5Uc7cJR3AA6qGfCSNMkcRrznTV6AJX62/idw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=FyW+X26zh02WrXDII7y1vfYyCUyD8qPa1JJ5o5o2wPEhqZ1RM6PsEhPrN01Ywu8KjWP9b8vHT0gNmcbUOWzRKH/ESXL47acDBFW9bMPIOxnnTe73J4er8Ich7os+N/PG3zzLylBleWbXurWe9a+oVqrnboBjysdF6YVYvXzV3Ew= 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=ErsBkWHj; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=nvqoA4AE; 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="ErsBkWHj"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="nvqoA4AE" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55FNdKS8029927; Mon, 16 Jun 2025 05:22: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=br6tihzUs8C95vLYDjsGvrwC3Zby1q7EAS0AkXiUWbU=; b= ErsBkWHj88KUF1LfV5ZZG1BnjnJlzS4n0qrIBshujXgv6L0lU8JmB3XE7ZDyDqrF E8O+2E/L1sFbucsUrFDpA8YZUrbMpDeBVNaw8a1kV6cDA1QoEC0HDXJPcpFg4Sup /1pdnpv8es4jZZ7e3h5HxhCi9zbE2Ld/RKeZWYy3pjqE+X6hbwxS+afGhB0G8jv7 RmD83lNN864lUdmFzVbdHaAopzBNFZDvaYmhMLo1lWalfRikp286W435vNKYX+vo VBQHy/0kd1ll+hcsxCmrnVvENF/iVtOlwl2frXJFn/2/hng52IAw+cpFG0XzMv7Q 7hiYity2UsKiV3NAkR7LYg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 478yp4hqru-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:49 +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 55G34JEr032159; Mon, 16 Jun 2025 05:22:48 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013061.outbound.protection.outlook.com [40.107.201.61]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 478yh7f18v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BZkDKfiIZU82khyzLaQZWALx5owaajrE4S3TgS0UelWSZWafhoK625p8p4DxM64yqNHIo+vVoQNPVWedc7SjNR02DWMaLnTt1LZLN/i5UaYsSkiA7EzFVS9ZEvV3UqQi/yC98CCpelpHLLrQmL5BnC6+OsG5XP8MkOtSKZWtNZU4+TO9tuHqUILoR+OOv+ajzqDuo24rlUYDvca0dRfEtt7wgDWCl/fTJsKaTUVtaFoqkxL2ClUxTQnykOkrxCOxRUXZPTg7R/IjN/kIPTTWNqVOjgveV8DwEnX/1ZTy1mpQ4xmZhtbI6V+2YTpG7xLTL0QXZGpA82AEj9evBCqKOQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=br6tihzUs8C95vLYDjsGvrwC3Zby1q7EAS0AkXiUWbU=; b=okkr1GVLUhGkhOhuHb/s9SGq/XuVaYZiltx2SFlDidmD1v6dudP7s/SVWoqp7EqUN6uZHNHAhQao/d+KWCzG8hgfyqrWh5FLqTaxjGwSqKBBkcCPl+WMbKJHjGfzxJ3UTjqftOxSsSgvbev3RWRzOTCJA5uH4cm1BceqOKZVwjDxPRgMC0mLAU4CqVIsuue5ZF49CZ5N6FrkXMJH9J8/8LEWWVcVl+vZzdMr+bnqx/NuYP+eSvOISqQPyCzqetVgv0Ti9zbhzIWT5FxJZpsAOi79g3JCkt3ec5SExdcofPwOKA6IWAVe+YxeOVjUQli4iQLPck3xbRHPlC9KXG8W5A== 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=br6tihzUs8C95vLYDjsGvrwC3Zby1q7EAS0AkXiUWbU=; b=nvqoA4AE/1xz+PioM271QRzTVmg6uBrkp0Wo+uft3OTaJZfqbCbM6QmvMjEhZKsa4IyOPKAfemaoONYEcFH4+jU4Jcf+lRFZT2O2XFWwtr6K4e8ehrQSKMz4RkXSyJKd1qmY5w4cdHaZ94M+N+3s6sLXMofXPbcbOxfF7zd4XkI= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by BN0PR10MB4903.namprd10.prod.outlook.com (2603:10b6:408:122::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.28; Mon, 16 Jun 2025 05:22:46 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e%6]) with mapi id 15.20.8678.028; Mon, 16 Jun 2025 05:22:46 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, 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, jon.grimm@amd.com, bharata@amd.com, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v4 09/13] perf bench mem: Add mmap() workloads Date: Sun, 15 Jun 2025 22:22:19 -0700 Message-Id: <20250616052223.723982-10-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250616052223.723982-1-ankur.a.arora@oracle.com> References: <20250616052223.723982-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW3PR06CA0022.namprd06.prod.outlook.com (2603:10b6:303:2a::27) 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_|BN0PR10MB4903:EE_ X-MS-Office365-Filtering-Correlation-Id: 60d169ff-cc48-41f7-2a7d-08ddac95d3b5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?bdo43Uw5ff7G0iXBg18d9rTJ8u9aWWY1bmn1XNXR6+LjE+MjPucK/tAPSCPL?= =?us-ascii?Q?ShhuEF4eZyhilAjAD8md0InDWRMvoRmOv2cr9v2iLE2ig5Ziigk55TrApT3g?= =?us-ascii?Q?ItwZmnRGMjZC4OSU/U34pBUW6JpZbdEdVGyC4Jm1ZRqQtfYahO7Zwkdn111u?= =?us-ascii?Q?u9tOM5ijiQOHmFvGEEOTmHKegvNBdK4xgQMT4UqEmoFnqrTCPEA4yqSEm7VQ?= =?us-ascii?Q?Qu764hRM+Ys4sAVR6ol+yZf17KfyPrUmT9V5d8ytDBVSOpCTUQSQaQfoYvOF?= =?us-ascii?Q?u/WpXpB5brLnX8oWjE4gT9ylsZISd/U/X7UQX4NrH48bm9BAxZnJ3ewnDq+h?= =?us-ascii?Q?bA/S00qh4OozL01IO0aA290XhwSI61v22HqxE4U5bHv8wtlMPRG48UZleBmV?= =?us-ascii?Q?Kie9fWsqBGlBBickJVYLBzAFAevBWpScnxpeylv6wf5KYm8+TWDE2JlY6sCh?= =?us-ascii?Q?dpgTWIi7iTscXV074/JWM+1Gyj/C+PCR/U6Sq4VFMPY3/w51iSzuHfPvGa6l?= =?us-ascii?Q?FDny4ov9N44e5l+XbKg57eeTQtqzAhKEeVinD/CzK4D6DQJAFckngC0EJj/+?= =?us-ascii?Q?XHEudHQpRFBhWCHhobVPXuikqn6hW0EariwWYn6hCWxsazOgXjXtru2Z5Jca?= =?us-ascii?Q?ZpSBDWosAQhjQQknvmHwKZJId8sTzERU8afG680IfH9D85q5wNv+OMnbHb4Z?= =?us-ascii?Q?MgmEjJ+4OFT5msZHKm2ejV4Cmn+JTaOVndCq4+RX5pITbuznrWSkoL4t/PXI?= =?us-ascii?Q?XVNXHlJd/7h/A85QdFz1e4FKhy8r3Wid+ePjvkNDZOIdtNvQajLUAk+QYmg6?= =?us-ascii?Q?gfIS6PFGS0sAwPB7eleuSkTxS2looOZjfx9EC/yXYiU+lx10byyegp8cnrDh?= =?us-ascii?Q?x2TlH9GY4/Vuvv4KftDkaFIqMmIeFwFNX7tluOZVlVXfEd31B1rbUo9J8nKk?= =?us-ascii?Q?MvcJ/sIUeKFfHhKdGm8FrQf/RtMnH/5xFWPG8hCf12kZLKQpES72QxLvlCDZ?= =?us-ascii?Q?rhrUo33uBSjwiGl/oaO2/uJpP3o32lzpWo9icQSYMpZC5AC5JZ9Xso0Jt8K8?= =?us-ascii?Q?cJld1cJ9WhOlrqx4snokqPjVc3cozizafyy/phCwBnRiGr4VA/MiD7fINLzF?= =?us-ascii?Q?U+dglXU65m3+CRBaUqQrnjZZvrOCEa7CVD3YYeVoNexXdZ5IedH8k+DI5IPO?= =?us-ascii?Q?c0t4k3HsSopXUBypDTSqhD13QP1wN8wsqxtOKIP2xXKU4Cao2qJJwV/RcMl7?= =?us-ascii?Q?mZ2NqzKCK1w5k6iHc+YzrEnoP0yfxbuci4t1xOz1KqNWdcLovMz8ieOleBjI?= =?us-ascii?Q?8RhvOwofg/KWaSh5XycKptqeutwk+ifZavfUI2tzzvbBVWedl1Yz2tI4veyW?= =?us-ascii?Q?Q+FcnF71v2ZT13r+pMRoq3sw5FIwd6K53kRdC+9bSpWARN6reudfNoxSlbKB?= =?us-ascii?Q?54JHp+EYs1U=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)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?1ZnXlI2ONAy3tK9h4+Vc36DmRjARzR7nIDL/J4w6ZxPe4Gu42rWSqoGKF4Yo?= =?us-ascii?Q?0UCP/2lVohiigR66AG2kG+SrSbAGVJINXO5T0zpXZEx1J6r42V4RzSM1lBO0?= =?us-ascii?Q?DnM7LxC4F8Q57yafq7yQ2+3nDW+PSmmEREXizi+MvBAq1TAJR0+X2pZfK40m?= =?us-ascii?Q?epTCqe+9jma+5OnT+4kYYGsJ819TEvEr2y4ISTfnrBmO97P5mFKXHe9Su38C?= =?us-ascii?Q?SLX7j8o3G8WdJSRsGtDYeHowTUxRjRSyuGqvrmLBpm7Uc5DFbQmpvFiPoDsK?= =?us-ascii?Q?sSg7Z2YYbP1yblAhrwdCRB6IQ+6S2oJMDh4u3pOFoTezfBOA4OGVcfll/F4N?= =?us-ascii?Q?NtGIpV7kQAkakj6ICiU9dPBcpkhjmiDDWm959FPy5Cq1nk3/5BBqw6+pCd73?= =?us-ascii?Q?N1s7gd4Q67tCntfYTKxTTgAqyUMAfROGFSje4PXeM4U/A2NBuo/+EyLKJ49c?= =?us-ascii?Q?p8zxGPIdRSL3n0Bho9/g68rQZd8IpxdPp1OpqvBbKGNzsVX0pzi95z9Uhr1a?= =?us-ascii?Q?mva2LbsWqaaC2AgykJTRtPFuUeaByGRxuZKoBwWpwiVxXsx4Y2vZygwYLWHR?= =?us-ascii?Q?pzfO0Ywl8/HD5vMkf6KK8dC6v0NGxX/4imLMtWRqykWYVzFXxGJMKVuykEVN?= =?us-ascii?Q?NyHq4rW7aGBoQOMPWu2GmZKeJcSdeS/AmCPgDYY+hMHAnY3Xsr+Rauuxvx+O?= =?us-ascii?Q?xJtU/cY3aNzpcFRhszsL/c7dizL8gZ0HIF+9rvNR6uxAwai94x9O6OrKLHSo?= =?us-ascii?Q?M812ZeriGQ/pA/zhGkA04Y+ssSj6ZJRivBlhB24dsqB3Y6RqShbo2mNm/HED?= =?us-ascii?Q?KHvtZM4LHg/tOLvqg+7b9v/VSiJpID6tZFzC9iBPIeXPtc3RhEUCDrmcfXFq?= =?us-ascii?Q?b+RJP3eAE+HTgDq6q+Cf+EzBhNZKu8QcNLeTPLh4W2+UJVvLFuF9iNzTKMK2?= =?us-ascii?Q?OuwSUinvz2ltY4xBMfm+dXVhFiD8oYAvJ0WT2xyCb2XrvgKCBYtxxX5mxJSX?= =?us-ascii?Q?MEVFndrYIC7QHkU+IRouQfczPxkwWa7lX0ODa/cFZBzfUUIfSrDQLEum2hm5?= =?us-ascii?Q?PjUdoiufHg8cV+hNl4pkeo8M+t9wz72yw8WH37Jm6Op4jQpq7JKrbp2bP0sL?= =?us-ascii?Q?6zQTAxB6WWKeqHMgcSzHVk15FSOrAMXbSMd47+aeXdl0qBxSdJrmsr/mhT2y?= =?us-ascii?Q?GG0zl+Z4f4OflrBzF7FRtqDNtdVtC4bF9qtfAeomyHOhvMSPCZXsEclzy/z4?= =?us-ascii?Q?fFXOv5liPX4SCjqWk1FzprSxLqmJguOc7Nlq1vQ83vLcumBCisI93KdZY3PH?= =?us-ascii?Q?TEmQs42Z71nDb/kOusgBRV9aHGdflkhAnJR7w+H9kVLUVwueiPNmc2ZUNxS4?= =?us-ascii?Q?l11UJsvlW6mO+JpOHwYq5yXJai01cTchWx+OkJLFtwNYTC7csE76LsZwVAGU?= =?us-ascii?Q?sHm8JGNUXlNKDfUSu7kgWwSI07ULqXUZw4T8iwH01J/iDcH6Cw+cGHGrLEnZ?= =?us-ascii?Q?xGb77JIVqyOI8/zp7vA8MUV7/c8Z6z2V7McPhpeqzfYpMr9b+N6efvO0Caej?= =?us-ascii?Q?UERU5qd3B2eE5BeTmbhrIOI02zk9HRLgaIU3lOnlFseh6nxMWtVOEVBGcDmq?= =?us-ascii?Q?Bw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: N7RxOZc3uxGPJWKBDpVZnk7fdTexGt7GGndqwsD4wcvef+F+lsipMyXo/cbx3K0KjtTi/CshEYvZ5lkoDByTIMfuEEiFgqCH+c6jfjlT/gouBDfNP57enxZV3nQ6dSsjtUXz2x1+aXOEJUbI1cirfXefgXBOum8NeW7TtXcgy037miMGCxturvcNkQ2zvGpXZ4x9TlxEqHBipGXsUnEK256dZvx9JmS3r4cjc55cqTVXeh7PRdYsMwvc/1tH5qnzbCy4u4JoLpGJfI03/lUGQzDDqS2Q/xjZ7226HHPBnfc+8Tqmn9/YNGnQSYjB9ukTFG0CE4sAkJwzP0feliPk/G7nT+Gp0o44othmdZ/j8K3umXHSkc4jFeVViEvSDij5NZSGxLvbNGujlXaqRvtwCINJhVb4Q6Odq/ehzqO77WA/hMeozJJmiIrQvmHiD7QoJuXow6PSra6eBpUUExnjtLRj6/nECCfDqEeMv1P06SYOUq2D2PWLCqwvnP4AFm0g4JFKlArFQWzfbF5Lc/HKqeoUTAHX4V31wgF3HUUd2lTlF/pOE5vkFOQm0X7vGKV0lAND7iGfj4Z6uEoTu3CLzOluxlCgzp6XQSde4I70Ru4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 60d169ff-cc48-41f7-2a7d-08ddac95d3b5 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 05:22:45.9708 (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: jdrxcOKS4Pr6039hlu2w6Rxarzyu8KnmeQ/GJ8hwPeRafJKPRZY5kPkg/j6nQLoj7/GqKP6ifeWlI197cOZRead4aVz1P+vqTzO9S9NIQS8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR10MB4903 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_02,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506160033 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDAzMyBTYWx0ZWRfX21W7NiHWGg3J H3MbDoP4WR0N+RX16Oo7g8sJKQCTlTssjMhQ4wq86xfW6O3Dd1o0O6OSG5n5epdrm0DG7yMQWm/ JMPpKrfnsLDX3S0V5JgnVh1xuAVi3apVSzEC6htpFm1g4N8K1rQs8U5bgPeYI5n83EvZR6SGoR3 W5lGKixXrspTJYL5RXsBEf3H339njEkmACXL2MB2KBvvDxK8QEk4V5lw5UAp5C73yzIsBYfm/6K g3ktJ4DT+zlxHjhgNE9/1OoSRsLqRbg06XhAZIl+9dLUhw0uhqP7TBxhfXMDE0ZXpJ+qQIWv7I+ 5nLneL6/pDdjnQiDOp/6hLs4Pc3d1rs+TAFjSdTPAqmezG30oNIDFcM+z2xzUwmRLafwFJNOptc YAldnQlto+hsWk8Ot1alNjix2yk+q9ukWJ6+sX67A6nZGFto9uqnLRo114wg9sejkYacukBE X-Authority-Analysis: v=2.4 cv=K5EiHzWI c=1 sm=1 tr=0 ts=684faa29 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=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=l6V3Glt4oJD2QoyZdxQA:9 X-Proofpoint-GUID: W0o2iU1MEDpkjFfJ3ZklEug_SmuA9yca X-Proofpoint-ORIG-GUID: W0o2iU1MEDpkjFfJ3ZklEug_SmuA9yca 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.31.1 From nobody Fri Oct 10 02:41:51 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 3D0271FA272 for ; Mon, 16 Jun 2025 05:23:34 +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=1750051416; cv=fail; b=mhmhGdGLSmG1gCWkcXKsnnG5XQsiUOpIP4rmuITRXQfBjSDUlCf8nY6BIIVVdJ8qwXNj51VKKYzLb25ORQRHvZMiCIh+9rMF/HLuGmIJCFUTOscHshOQ182ons3p6DNLUnOzxRLB57LuPkiM++83fe5x/5Wrc7pKGWzDCsGtPJA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750051416; c=relaxed/simple; bh=6nd1FrcvUKZhjO83etyLjx+XXv/56/XU+CmHc1gEY9E=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=e6gCYWshHxobgJM2hSRy38IUrCkY+D5QSwqAuKcpQTSuNhD+z8GPa9pXfxnhGEJaNJmrXDgOnTin9G1Mz5vq9rp3fD/3IwnwReHMESYW+mDH3dIdfHYzMmrj3i4dLjjP5DkZoNlI9by5ZojiTorIn1U7o29T14smCCXZcPWITX8= 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=eY858j2u; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=b5B+Q9dG; 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="eY858j2u"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="b5B+Q9dG" 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 55FMeqb3020337; Mon, 16 Jun 2025 05:22: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=cMqOtHSYrLGRrlyG04n1xHKE1AT+r2UHz1zDbx4n61A=; b= eY858j2ulJolhuGv31iVz37trBGn6EQMyLMF3yrAKc9HX0QdE7j29pxfLuEll7vu Q9nyrPRQS0yE1IoWzHzwNnr/FbxnQMonHZE7ATh7ySt+zWUtFlahjMEStL4qcBP9 g6vOEXw1qkCCATZlic2SxRCuVukm6yg2K7UAu8B/xpc4qj5u4fIGh0IKYwGLffp3 JVSAKcPydHo5rK+kO51o6EhmMUky4AchbdLN6u1U1fAEvdsxpukwh1flq9ei0ZoM k/jQxGu55T980xiQIZ7B25y46LxUe6406u8qSs7H/R9IqS61zUm+C1i8dJ9kBUsn GVmrE9mjcAgC/aEOJmy2fw== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 478yv51pny-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:50 +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 55G34JEs032159; Mon, 16 Jun 2025 05:22:49 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013061.outbound.protection.outlook.com [40.107.201.61]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 478yh7f18v-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bXkkv9lAW9l8sz1PMUlNAbYw9q9xwSnwWdkVbXMTP4QeH+daAmllnjGbsLy3oukY+q9it/in/t4f7GzOKDFUh2p5tdpCJLIRzTy6kkjDlUL6n3xy4oSqwbdnnea9wmdA216iPPhiw+3cIlgTwErA/ndgz8V3xNsm3gYKW5H9zuNhqfNLOKEzqJXlrcBiOheZ8faF/oHfn93tzB0udw3TBtHsakJMnYIGSnqdUwmYU8DZpbC8CgUjw7xARsfJpqdwATBN5tYAor/10ySKwwDqazAEfUm6Vk0GHWWXumAVcp/hpNS17KequsIp+IkHB1ufgvubd/ilAMg6dI24DERUnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=cMqOtHSYrLGRrlyG04n1xHKE1AT+r2UHz1zDbx4n61A=; b=sfgNOp7bM1tzgGq04VK03TFEoZh4jNvjvDCB0rPYc3cl/AvWG9wnLYoeK7vNmPS0dFIg3peS0Gr7byOdYEZ0AQNHQ6ENohnjIKzRG2Wuo5S4L2Xfbp8qwoLryDzZVFIMQ4N0c0rJ4/lsQhuXTwXRQ7PzaRjdKu9zjQgIwFFmXXFWrq4BTRqJRZcWIieJTRuTz8nkyKP3Cy5Q9cRM9v6Qb4Vloi5KeoYBzQjMqQxiKwFctpv9pF0EmUgcNq/KK3nRDlVMwA8GVWvetRdtA8gJ/hcCsJsEjAO+mXzIFICNgLduBO1M9Gw2ijJOGRcfPTkKUwwku03BlPCJh5/4TKkhlA== 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=cMqOtHSYrLGRrlyG04n1xHKE1AT+r2UHz1zDbx4n61A=; b=b5B+Q9dGMqoRwYVeCercWphAgxT5Ba53FOwA76vw0FHgCBjrNgtX5o25S0uraRfsvB3+MGwrOed+BDg7K2qAL66NzNBGHMzM8cGlpok+9BAqNktG6HgRLSAwoMJIS3RLigLQhL3VRDgtDp5xcqix+V5hMjE9/Ymh4NMw3c6sI60= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by BN0PR10MB4903.namprd10.prod.outlook.com (2603:10b6:408:122::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.28; Mon, 16 Jun 2025 05:22:47 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e%6]) with mapi id 15.20.8678.028; Mon, 16 Jun 2025 05:22:47 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, 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, jon.grimm@amd.com, bharata@amd.com, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v4 10/13] x86/mm: Simplify clear_page_* Date: Sun, 15 Jun 2025 22:22:20 -0700 Message-Id: <20250616052223.723982-11-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250616052223.723982-1-ankur.a.arora@oracle.com> References: <20250616052223.723982-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW3PR06CA0014.namprd06.prod.outlook.com (2603:10b6:303:2a::19) 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_|BN0PR10MB4903:EE_ X-MS-Office365-Filtering-Correlation-Id: fc083042-42cd-4fc9-b80c-08ddac95d450 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?2oYtQBdmwDFfctj5W5sVKq8N5YIePrQ4Pd3s8KzWHVeBMywJ1o3h4/KVLfrT?= =?us-ascii?Q?nBgVq0ylonyK0f1AMkfPYeydQfb+hL81xxIpfUjWUy2X+rzzxKFU38tD83tO?= =?us-ascii?Q?RzODMrCZa/4vAM9jeR4bMNNqRpKtrFoXhL6tFImwtdJcWPjt76ESp5Bkg69c?= =?us-ascii?Q?1laK7S9c43cnt3tY/3SMT5qHbGOzAN6DWnm7saA1xll4HPOe8ZDWKSSPo+a0?= =?us-ascii?Q?YNF8HqonH9CAMc7EuE3t20xyzUVJvcR8gNkZQrcOMBYDCKRT0dRZ5gpO4Qlu?= =?us-ascii?Q?vkcdlHG63vqt9k/NnUEJY0aUR+W/7W35ZbD2foRA9lYdlBPZUXbfWZumqqdW?= =?us-ascii?Q?SmI6lSVPH9bHrYS9tCyE1TctuutfzmbLKml7wFK1Z6SLEge+mGt+SNZvwkZS?= =?us-ascii?Q?R97boKuHLBCkcUmx8yVTsfpwfNx94slH3uF+ojrP9NNaO6YyA9HO1NVk88aQ?= =?us-ascii?Q?5WHaPGfdc/Sm0YjdOx12Lqgvh7pDmEAwBZc9GJMfPr5/sKNlD9lGyMhe1tXZ?= =?us-ascii?Q?6VxK0vQeOshc/MiXEg5+WttFJ2u6DBI0+jaC/t6bMSq6W/ke4KSZKzK7daYd?= =?us-ascii?Q?5TgLlxZjlySwUramKqqt51PL+ENEEW0GbnIi4JZAiA2m3DW63GJ0LYVDvJqp?= =?us-ascii?Q?hNGEarkSouyDyELh0q1SO5kdSqV8aB5kfO5NL+QR+kchU258XIWQkYCzXhRo?= =?us-ascii?Q?KZVsMk7AmWNhF27Pc8UwDr3aHvpUBm9lJQJ2yjYSPthgwAOewtE9T5rnLRHP?= =?us-ascii?Q?MRTWxo/Mbo0lgjFXWZXVfhAN11nKYnHQEa7EZmeDz295KLwujcDGrXwixgnQ?= =?us-ascii?Q?sAnlpRyPdW0ABxczDOI4k5+0pu6aYxe2hUud0SIKOGA5zCLtdTGCiAu16LGm?= =?us-ascii?Q?TCZFWwTXkG+vimLOusoKQCzdEhZu8yfAQrqvmVQKKjKyykbcBpSfJoareSnx?= =?us-ascii?Q?YU0hoQlaK5xstYalu6SMeXCikk1NJmmjzDrztilY8KxIReI4DnjSW1/f5teE?= =?us-ascii?Q?Id+lO1oj6LKMRtzIv6LOl/lx2VVFCc/pbxbGD7Gp5ezLvbNTBwZm0ckO94Md?= =?us-ascii?Q?Dtr+J/Kf5Z8b+1tErbPQXRjYW7C3qiXyVsm62N5NASh5O8BKjdICfpzOFjLY?= =?us-ascii?Q?0kX1egGOWAjv/lAoNWgxEOowt4K0doMA40ZOU3LYEUL+68x+cYq/rGo0BoEq?= =?us-ascii?Q?7VwpOnSljbastmuWs8oVHcCuCV5eZUH6i5WPSZlKXJ1D5bc+yUylPFJyCPJk?= =?us-ascii?Q?UHVDtDnd5n2LkdST0b7nF2PjI0rE9i77BoYFVu2SsT6n8/bVIExZwV0XRMwy?= =?us-ascii?Q?TPHSEw3vM+G9Li8uqOCNCEaZMswNGo4RM+W5bmlqdRfl6xldOHQoLVpZWw1X?= =?us-ascii?Q?+m1yl/3CfL70m3PL5n085ic/WJJ+ANchWo3AnlhiAs+kXscksTO9FWU9AnEy?= =?us-ascii?Q?iFbJTK6hByg=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)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FfKuXboieVV2BgWYb8xZRx1yIpRwjSwDfnq2SlbM32fnKYiGVQHyH50GQRXd?= =?us-ascii?Q?Wp3NqqFfdld+3UndZjbeRqwmjlPYgfLIC0bX5IRO+QEdVXTh3fwgpBDNW4Qa?= =?us-ascii?Q?NmfrOCB/LytmdzSX9A1aQvukK4mtRB90PZr46KyDZKS8Qf06EeYx+UwzaPno?= =?us-ascii?Q?vkUj9Z4uxnvE6blcKNCYKw8a+aI95vJqtHgPJqwDUDW32WfmsSeitnTJZmK9?= =?us-ascii?Q?8zgXOo8to1ufR12ALnU8TkS/xrRInJQDUPXbDWFeEksEJBPPzYR/JhQQs4y3?= =?us-ascii?Q?3b7gOq0ZQX9yI8oCPgsMQFPI7w/ocqNWNZMxuiZoyx8w0FbH8TDSv6zwUW/8?= =?us-ascii?Q?vVVDMH76nO1dryf0HsY6LNesZvNFFy4aQb4fy65Zy9secGznL6aLviIB5Lc3?= =?us-ascii?Q?p2zRPaduXP2QyOtAOtWvify0vmyO3MR70f2d4eiMGyxXkeMDPXnQduHG4CUU?= =?us-ascii?Q?abGHf7In/3J+8lGZVuCGcn5py1jNeeOqQSNtAFmdrxQI1sNKGXx5yzPLeQrA?= =?us-ascii?Q?FLWkzidBwIogw58VnpaciLf0Z+sBdyVBerGAF8u5fIhfrd0h2qu0IEhqIwj+?= =?us-ascii?Q?C5ju4/QIKgkkwDto2YfK5quLH0gtHPkvrdteqUZpWtFq5Q/NfGckulCLZMdA?= =?us-ascii?Q?WpajTGP8CBl79fbzV4P2qp36MM+FvqMHEEUjX14BJuLShkBNbsfnyC4/Ejmv?= =?us-ascii?Q?idjutfNjUKG3LqNwcUCDkBZ8m+/oDKpXIFbyqWwtVDff9doGtRdpaGTdFIaN?= =?us-ascii?Q?X7oFXJ3DWRpeSnZDHjH9G4arS3octxD1OrBYjPDNgucNEN96ut/9b6TaHwcQ?= =?us-ascii?Q?VXU2Ekeq7udNml2Pgw/WH9L1c9R5hxMtgXYkI4ixFZbbix9vyzPetsvi1IJO?= =?us-ascii?Q?gC1VfkpeEg4iSnrdvx56znvqNJW5YAThHR5VWWb0izR5E7CFJ1Tx/BjWlkE/?= =?us-ascii?Q?hBrUGlmTFboga06uTCw0XszLtVzux1stnknmTPAqfcbX2WHeMZVaaAsul77i?= =?us-ascii?Q?elQq8oChBfZGgZYLjpjXcmM6PakjIReM6wV9+4PYiSWGlr9QVKjXeAIOEgwL?= =?us-ascii?Q?g+GnCZOO+dWaO8lwQ35GFyK+VZquCSHoncBv+vw/V7Y4Vkj8vySLV3aUXJ4P?= =?us-ascii?Q?1DqqrN02DzusC1oJeJU2oeVPJ+VdYPFgD4Nr0vnOPnLBJhFt5AdLrYn3cw70?= =?us-ascii?Q?5OoySOkaiXcZFLb61PTVq/HAjF3p1/F8z4TFpGvQnEv5oQYhMj6ESz1yVnOk?= =?us-ascii?Q?yyUIZRgKrc0xnTHO0vrNpYJLxtJirBS922r3F4vB5kO1VN7WYLz+qTbE/IPq?= =?us-ascii?Q?RNzPm06to5JWcuDh5eLLfM8cEhzt7GHaC0BtWzNySjfB5vLc7rcVA1Rau/AF?= =?us-ascii?Q?SrL5fg+1ot5WezXoaJfF8Oq2rXElBv4pDL7GOCipE5gTkkDcfnWLuRF81xKa?= =?us-ascii?Q?qyGLGCM5VN46Cha5voWMhvHvGye/AJmWuruSuwAgrdi67uASr+isRuRVYkBg?= =?us-ascii?Q?cqDNM8jA34hfYB/7dt1LatAZ5Ifnp+EBVhun0yGe2UQrneoA35yQJtAlWHjc?= =?us-ascii?Q?o3BKutymYaklgm0UPirpTSkirLjrgvOlmtZH5SvVjEAl9x+RKtinhATfrT1Q?= =?us-ascii?Q?Qw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: FqEYStqTu4k9mAnbBytdzEmNlCfUsWnAJFFwGJfUGWSjQIF5eosWDkpq1PDLIVG+LIYRVjMzIxsauUGZ6eoqdEXAeHrg9R8CkEHUQVfAOPgKX6ZwEmQNfaqdu7gtpHaVhfZeSODArkbx+IkKhzILolaXSm9JclMgRM0qQTCVNBv34OhvqM01w57HSjRGxPQfGS0bQaE5x7MuwkQqlanheJkpYjYhC2bvMsJlBdKjKitronM8/ayJYF/sgPie7Qlv9jA2p6ftNcZXRCO+FzRWdOc7iVwmqajjnyZwT0UXwb/NmITbKq8zWbhgbzktPWvhBu5GLRnpNVw5TOg7QYjiRxHpIKmGys0PM+YQGeF4FlgcPHLe8gzChpnuves9Y0Rty80Vv/lju8Mp/uKZmpckoeMfqPixIbG3Bmc1ZJJcRLBDC1CFV6rijtpw4sRBWw2nDaqguzG5SA066N8+Uf/3JsbicqbwL1g+2a5a495OZQko3kVct3ADIRUTEoS3Waqf97LWnEV52Wuty+HoK+nZFt4sgrE+Vouk9Iz8yGGhjAQzQQ1c5+51lMYvdr1OzQy940UFnv8EQeb7jFQKUvSrVpjO4r1Xo0JEUSR5ZLHGT40= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: fc083042-42cd-4fc9-b80c-08ddac95d450 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 05:22:46.9673 (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: tj9ytA8CmQMno++NwOVHtRMSvkTSXFwEbeDAPqDtx0577a62D1H1esOZsSzIQ6fR4iDq3XAn0bozR49y/bXSksPLZYduLALNnj1hGXTT4Dc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR10MB4903 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_02,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506160033 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDAzMyBTYWx0ZWRfX1OCW6Whz5rwp VnlTRqjRF0iJHVCNHKdgL4XRcBXTisrvK3ICLgSdpAQEzLH+NusBsN8ayMY6CzXCwX1+/UJFDP5 2IKdYxVwf46/yp2k+1TUqbSxbQPvNM8HR8JxvcE6qTrSQgZHaVtwd042kw+hEEo/GeIX9Y2X3F4 ntjuuj8jJloqQZLg4SqAF9Ltc5mq6CJCUCDu2FOpO6Nv2Wn3hlWjllWjtNop+3N2UuLoKbxYSJ9 EoRBKPc0nT6NX2JFIlNQFz99+7iehINow+436p/rMNpzZFUsurGpDEl07DUM3cm7tgD/Q72ac0u iHDrZGB0YyV3qkHlexh5fXRbTVPpc+eSNcyvqSAkDOi0HRUUT8VDgoDiBRV6ZMI9BArbEz0ss+L fzuxFIYaYIvyDFrSVqmUQXxli3F0vEmP+fqf/x4BCmsUUoC9zI96I11A2Fso4ZOw/gLjQQ7A X-Proofpoint-GUID: VKa-Ho4OSIjAgcVkATiN2FGV4_xKs1c2 X-Proofpoint-ORIG-GUID: VKa-Ho4OSIjAgcVkATiN2FGV4_xKs1c2 X-Authority-Analysis: v=2.4 cv=W9c4VQWk c=1 sm=1 tr=0 ts=684faa2a 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=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=zvrCyiPHr5aJQyA9tCcA:9 Content-Type: text/plain; charset="utf-8" clear_page_rep() and clear_page_erms() are wrappers around "REP; STOS" variations. Inlining gets rid of the costly call/ret (for cases with speculative execution related mitigations.) Also, fixup and rename clear_page_orig() to adapt to the changed calling convention. Signed-off-by: Ankur Arora --- arch/x86/include/asm/page_64.h | 19 ++++++++--------- arch/x86/lib/clear_page_64.S | 39 +++++++--------------------------- 2 files changed, 17 insertions(+), 41 deletions(-) diff --git a/arch/x86/include/asm/page_64.h b/arch/x86/include/asm/page_64.h index 015d23f3e01f..596333bd0c73 100644 --- a/arch/x86/include/asm/page_64.h +++ b/arch/x86/include/asm/page_64.h @@ -40,23 +40,22 @@ 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 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.31.1 From nobody Fri Oct 10 02:41:51 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 E302E1E2602 for ; Mon, 16 Jun 2025 05:23:27 +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=1750051409; cv=fail; b=MCnt4Pun7DTkG3Y5kdfLht5EMsJtKrqaCbfObBeJMKC/07a29fzQEJVpZnrxlpXBPUKxLg2SxUKaUmPnviyewXRq4U02OhYoE1URDsCpcSyoXU5JUBzdRB2VUVwBSFgV2Vnwsn115mkcye7Sw6d2amZFUm9Jhqe8kSvH5G7m5Hg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750051409; c=relaxed/simple; bh=KNwnABtUbj85DCMDJV0SX/5ozR4ewjgSkJzVrk2M/TI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=pd5gfQ+R71ZHr5JCpnUgQ7DVQ4UD39FkR4F75WI2vosCFJmsV4cDsrUD10W14e66Z2N9OrDpE5zkl2WEaBMnQd1pdwIAJ4QqkEOdx8erEDjjxZpG81A6Aon1bSpeO/nOiyN7oYHmwROmxSbYrmQU3rlfLy7c2zW0fA80C+hwFgk= 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=A7I/IKKt; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=aLP8Iyzo; 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="A7I/IKKt"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="aLP8Iyzo" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55G00tGq013882; Mon, 16 Jun 2025 05:23:06 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=ax8oqAQbuxYFo57boBKNyk+LvNmQt71tCdZ6bJbFdXc=; b= A7I/IKKtppRnFMtJtcjlWPbwE8nKj0Am3l5dVgbYqs4abpYqa/wgVcYCnIDC2AN8 Gm2CgpQOtEICgzp3pTIYyRX2MmSYOkKYnC9lmf9NtyGDR8iblscuss0gwKeCSrtf gZA9fmVJupIggMBhnwM2bqYhJg2owRy6F67W1pCKjqHeAl9QxAs06KP5AnjPoY8l aRJe04Gfu/Yv3U1pKQnPuD75bH0KzjII/hQtCrj1l/8hSNaX1qqx9NkCfUXKiCQ2 bI34QiZmN9QEdNjhClleLITeCo7PyGzEFYwSFyf4+4Pl+tzuFmy7iJU05meM2Fid ax9+rIiD0YrQhc34c9zVmg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 479q8r0v1c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:23:05 +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 55G4HOri036277; Mon, 16 Jun 2025 05:22:50 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013024.outbound.protection.outlook.com [40.107.201.24]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 478yhdxwe4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xPkP/UtfiPtLJIhSmaNlaT7PQUSocrZHgmYtVNNFgjfNyLGDtL+gGOWdCHTBk9iLkoptbsJqX7EA95wccXD4wnbDVc5Rbxe64wDR5ALaGnI7Kz1PkKSiAO/iX4bnOJRRFGsHbkLcSjDCloMKN7vbZInbI8XRzEVa3FDTaQ6cEaRMYIhbilU94wAYi6KykaY+pc1uePivIq/MKLJpGNGUsgCOxxGOjfnwO/O8bfE/HuQnkBg4ZP3UPVs54SqT/+GYN4wKq3F2RCVjGHWjvwtyMKuh53qgKIGeV9vu3fHfwkdRBcttgwhzn5EKeVIt/kkwEGGnmBBYngk6p6wn8jajyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ax8oqAQbuxYFo57boBKNyk+LvNmQt71tCdZ6bJbFdXc=; b=K4MDz4jS8T64HLxHEaLqzQOaVG1KV2qIhSjlRPad2oSlzOUkZaNx16jdft7x1CSTxQPe0rm8b6+pzU2ed1g3SH6aN5va6BBHd8ZLbqXPp2S7zaZbp58kHVHomNUir5vNXOiCIxtySL2wwxWfsbm5VHFUQ0Cp+ELskMamOGYUUbY93vgq1s5Hf/O8GlO8gRxadYoLd7jVHEjdQaCOdEcrl+Jos+T3gcihUJVlEHmptJAqg/yZqcd0kavImF4940omt3gNWqAF2zYSknj5OiCUW7VrovuOBDudbNED6mK6hg6sCQNQyyww4CqYfzvQA3DS4LHWPuG1WQVpWrq/eUW37A== 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=ax8oqAQbuxYFo57boBKNyk+LvNmQt71tCdZ6bJbFdXc=; b=aLP8IyzoIz13hXqwo1R8ntRVfkMtcuDgl9oCAKvQ7RyLj6xywBfJ/YjRNKq7vo3dOWTJBSqN5Tj8O2cnPC+83LNMLPJxT8z0IRy7tdco3aRMNeKeiyRxASwYUYx9DihGwqsm801HeojGExroL1SFOoCEadvJVa42gMewVrL3PJM= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by BN0PR10MB4903.namprd10.prod.outlook.com (2603:10b6:408:122::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.28; Mon, 16 Jun 2025 05:22:48 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e%6]) with mapi id 15.20.8678.028; Mon, 16 Jun 2025 05:22:48 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, 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, jon.grimm@amd.com, bharata@amd.com, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v4 11/13] x86/clear_page: Introduce clear_pages() Date: Sun, 15 Jun 2025 22:22:21 -0700 Message-Id: <20250616052223.723982-12-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250616052223.723982-1-ankur.a.arora@oracle.com> References: <20250616052223.723982-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0125.namprd04.prod.outlook.com (2603:10b6:303:84::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_|BN0PR10MB4903:EE_ X-MS-Office365-Filtering-Correlation-Id: e32860fc-639e-45db-22e9-08ddac95d51d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?wM7b0S6MMm8pE+8kShrp6v/d4XHhVM8ynFMQShUu7KBDdeBgMaF3GOWpZH8H?= =?us-ascii?Q?okIi3J4z2lSXOdlJHH5TbhSG08TVxBeciXZoGPyqoyflkw3vr7K8mcGokB63?= =?us-ascii?Q?Sz6HtbBjXDn0r44D9mNfwwx9+xEUv66bJOitwbAdyJwlTEzdMiXOOzhcz4E5?= =?us-ascii?Q?oM9eHP2aTtl93sGRuL0As+Kj69bdfkajYF24hBjPmfoFVHJKDjO2LKGg8HYt?= =?us-ascii?Q?gvN7aZNdeV4GgoXUNcMozsmJxeauRzRSECffg7sL4pKq4iFa7U4lxiGZAF0k?= =?us-ascii?Q?zJSca6bnFzeUFnme0qyJyP348/FzzxUdGFjJH4Z4julFWRJYg6WdDVqk0rFc?= =?us-ascii?Q?NPwaibbfJhPp8Pn/8CUK413VbTPaCp5AZ5tl1RNeMjhUmHXbOqAUTb0zMadL?= =?us-ascii?Q?dbs+St/fq7BXPmXxIRoph6m6b4BfXDnvakWMzNIE6wLT6jNptQR7Jh90SEGO?= =?us-ascii?Q?x06uvv/nzQtw5sOQc+K8MEJMKJI2YKDhIO7/qEl4sdiKn8FWbJci+CcDKWSx?= =?us-ascii?Q?1w3Gn1KexCuTfMXReAqo+FNnmp8rAtLycHAWkL3p3FITvSy1UpiGlWjiYHRL?= =?us-ascii?Q?PsaMtICRiX+i8n2iPjqlWiDwbCdpK8RlRKzp9poyXwk7QqkDB4KDFmOMQOPn?= =?us-ascii?Q?zKewv+/F3H+VA0A43idnhlehCvmD0ei0jeDybfND8R1RN9KJnuZrJFt+dKR1?= =?us-ascii?Q?16VA1BWdXGsOmbgGPFRkf+9r9U9WBTBeSuZ6O5xVlak4ihiI3eLyOUkFrJQY?= =?us-ascii?Q?1LOXaG3LlwvTOzPhUHZyihrY6LghZdycj0EaeYeOqcG2cvptp3mBQRSF4YLB?= =?us-ascii?Q?2x33KkrOa3QMyV2VBMcjwMoCHpUSSLIf7Ti27GNkOyalXO4s5SORIYn2+MjT?= =?us-ascii?Q?0fwCVrVKVup3RN2vqr32DX4STENeM+Ceub5kvFPDG5m3yW2en/JRrVTVsCh8?= =?us-ascii?Q?6R0TrpYIirAgxCtmLDxbBBirli3w5QS39hUyaata9UAVJqMARM+VHHvcVZ3L?= =?us-ascii?Q?C6CUlASwdAD+th/4p5J89SfLgKwgzrjPBLA/Jhk+odjxtEVs4QKjp9uUPnpm?= =?us-ascii?Q?RGIeK21UydTDk4giBIrKGFV1yRRr+QRbWJgSoYaJ39SH9urCK85X17pBNpQR?= =?us-ascii?Q?FXSjl7NVwKsXrN6d9tcodGk5TADLdbUVF04tdR+34Nah7B/Bga+QQzU3u4hh?= =?us-ascii?Q?MIEiJUBMp7WULtaIvR0vFg+fpuYln3DZvgMn/gex7zoXix6oRF2FyveVaWe5?= =?us-ascii?Q?CulgiOksBGgU6p9SLtbHYYOm3zrBGAV3vFfFvk3p9kkTsCYAlJoLecbsWF/m?= =?us-ascii?Q?Uevh+X/MqYYwGI5AHKqsiIQBU7RFxXg+Zco8wUbXHx4Sx2oOHeHZDVNqYnxY?= =?us-ascii?Q?zV8Djns4fiIU0pj0DUa3cXc2LgqPX3B5NFXMSOoe4m4TIpJ0+w=3D=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)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qCoJ8tONddh/9kdRiQKg7WRl3v9Bt3JhhroMlrVWy7zwAWTcR/xdkcd9pOOJ?= =?us-ascii?Q?FZk/nhLkPIOFBsV3PUVwDHuHwqun5eyj/eKGMgK/HWceAY2ilRmkP8uFxVfK?= =?us-ascii?Q?2wh9ymiBXAX4XczT4xbAHj0gnntriQER0gGoX9WaIxwbqEtJJryoG3nqEGKU?= =?us-ascii?Q?WPkRbQccutQd/i6DemuO2oncoDtAcxDpx7vcQa5nFF1ssadF4uQ71OM1e6pv?= =?us-ascii?Q?8Y6hYENQCDs/zw2n7OwHlrP9l80tqwev6FH8BFIB1T9p6zkVZHOlKeI0Ez1X?= =?us-ascii?Q?C/BlR07Y8pascf0GFWltiT++/pms1sWuvMmVcD607PmnUwdwU+/PJkZM6zF+?= =?us-ascii?Q?Y4Ffpvw3bct/vgkzKMC6mNXpD1mDNXnfeCLdsPOhlBNkDH1czEc78KCDPue+?= =?us-ascii?Q?V6T8JTqZlist5ULiPPA6UiIBVZxkGN+ull+sOyvPQkN8egKeR8txCt3SeFfn?= =?us-ascii?Q?q+g4ZumdHpVF1xRYG61BGhlPwyHptEj4oSFzt0zgQSn0dN+VmXs4duzpKGsQ?= =?us-ascii?Q?alFH0v0viGSgg1aZ5VuK/L4WLpec/vKA2/VeJcnlExioSRmPp79VL29sw+L1?= =?us-ascii?Q?VCJ/vlP8VSwvR9IlaLa6RvK0hmXycaoyHq1/xpBIQmCWBEvZqli4F5qVnwAO?= =?us-ascii?Q?M9VlmJBGZaYthIRCUxHJCySSty6CfFJXhZYrrGAVoc8SXI4IqI/xl/BbVuXz?= =?us-ascii?Q?4fslFzjT0ucSgkgZa6BigIFHLm92p6Y+ZnE6xWZjlgAHtxiAGqoE/u6cZzYl?= =?us-ascii?Q?cbm3/P4slY8hw3m0m5PFKGpPXq/Pc4PEHWuUXdFVxeQSjtLzI5DbT1CUDztS?= =?us-ascii?Q?MBbsRdi1P/EcLfi9CsWsRCvESHOYfn+6I6Ma5EgPbnDgHdPB7QoFatYvqfOy?= =?us-ascii?Q?BW1AUX0i/ZGMNuvfBYfXVGWqH4jbf9YKz1fd44+GEjOs4BulIYBO4HKZuXX+?= =?us-ascii?Q?4+Eq9vvn4pSVbrNx8W6fi2PN4c14qZ7z+aJqsRK7RP6kVu3nNfL8ndBUaxMA?= =?us-ascii?Q?sI9t/qBFQ9Wwrl1D7EMmS+Ehy75AnYhpYcD+ci25cgIxxoSrUsP7sm3pkASx?= =?us-ascii?Q?OJ8ipBWjpng9walqUPZSvzIICLbTtbCqOevY5GLAh7TW46gZLz8yR8cGSaLr?= =?us-ascii?Q?nilKssZxVjrdqDtGOUPl6XriFBrqOWBZmg8XjKwl27gCJKb8Az3ysWa3j7ut?= =?us-ascii?Q?jRoz2yItxVWj0DCvwfyo9ToCZAa/N0k4LBBzAWyJeN22Sxum7u9yZHQXilqk?= =?us-ascii?Q?QWV28M77gCxyj2Yzj8FSCjPtx29lTOJBJyI+GYtWi0dCR+2T7vTJHSanMY7Z?= =?us-ascii?Q?WDi4tQUVQkAImUtBTz8T+kbu64EkGhfKcHdTnjVjN+XkJ2kRzzMkencLQMcU?= =?us-ascii?Q?9jM88+enmkLtiX3eTvWyRRNsyN3N+sPQ3osnbkEXOCOfoDyDV19fp/Fr8Riu?= =?us-ascii?Q?BKHBf5QfeB3Vexy7Q+mao5KNMDp6eQmPP2xb0i/JW2tGbUrTKI6VVBg6AeJe?= =?us-ascii?Q?mzw0E1z6QQ0FpNld+DDn07zObrr+RFrmdQAmaG3YYFQAWPuxzzfo8Dppv02q?= =?us-ascii?Q?6Fi26JPT3NIyBqEkCk7d/vhp4DpE74xHsXg3ZNHiM9SvIFhoHWlNeNqQvcUB?= =?us-ascii?Q?7Q=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: bXAXAOMPstpyDpeDzqLfSz1avMEJc2uNx+ZKn1I6dF9mwyiJHJUsV0OqYz28Og4H2ZUF4hNgmJTWQ5VxPQiHJJIbqOGesJ8Knrw7E4HatCE6lHfMREi64F7fzVgtMiNVpwXAX1yUiZXUoLtL5z9tPmPOhS+0O2jXIMZzxtZ1ri8pIL2gkLOOZa5kqX35hzilO/Jj/QEcNYWXBCduANkrdp2xR9O488wCE8z0nSm2BAZuWHLJS1GEwSLzFJrEWV4Yw4YwHrLsZbW3ptA90Y3NFA9BcOUSvkpA9MiFyo9nrOp0Mcu+uDNn/uJ7kfvHOLmnqmiKev00ME2MBo8UXnfMcL0hm4XgMvoyHnhxAAyXl8JPOAWd7iKAvtCcbQfOWI43hscIyblU/cKG3kYZm6O4rWNUXjf1hAwR2OWkdnOnKdLvJnT9pmRFx+t2NQNnITJORkS4YN7yKknh2HBZgKUSCKz6p/aYXOICxg50mrULWrogTgKJCY+Fl8K8rpWRInHtfF2swqgbXgQ7lepf6AtwUc35iqx8A2vd6bL8K/27nx7vc7gHoJhv4MgkddNBWxbaWMDyZ14W8rKCrmaO0qQla7TN7DNUNZTlBVLcFnmUGUg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e32860fc-639e-45db-22e9-08ddac95d51d X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 05:22:48.3255 (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: eomAZY1FTMg4396MRUDvX+qyUrQfC1J3OpxEhVKE9BfmU9pH6P7nt606icSkEVhs80j0N2TUResaxSkQusFZcxfzx1k/Yop0XtncHDOJJfU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR10MB4903 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_02,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 malwarescore=0 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506160033 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDAzNCBTYWx0ZWRfX4QfYYXAS8NLX yjz71cjW2l5hDlIesNoRVKPwJuhOGfNVRDu5YesiNUuSSBwZEe1fYgVyBO/1sMY+N7c7PVAaJ/t c9eua6a3nYP6gDjA/PRMH7I/pqc+soeFzuBLfD30ANXv03y59ZZ123uFYXCSL7DkBCfBC/BZ5IL vFjSCldriYQZp8STNv3IfNC0V9spCpfr+c5ijQGXY8lOZq/0EC0NyM2Lov3+tjyK6f4FzSqVyb+ /AntD6kZocK/exm1MAv+TuB0Wfog6K8qujnHgZZVuB/xzT3XMm+Gkovvq8fi3ZlPeBOqOwVzZgk pVy5WXx60zo0Mv5a4saAezUW9maBsvhVTa6sKgwhy8LamtkDfNjfS1opePBWYSrTJIUi4AZP8Ff NJa/gyhdPmLHJgIVOwmrNZMKXBHY0zB9Vx04uYws9mWW7Hg857Q9I7vSIdrZv+o92Y/GoIq+ X-Proofpoint-GUID: yFvLRZGDbArqlCQ66EXZcU-LoJ1IMfN_ X-Proofpoint-ORIG-GUID: yFvLRZGDbArqlCQ66EXZcU-LoJ1IMfN_ X-Authority-Analysis: v=2.4 cv=dvLbC0g4 c=1 sm=1 tr=0 ts=684faa39 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=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=M8a9pf4_m8jl-BS7tPkA:9 cc=ntf awl=host:14714 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 multi-page variant. Signed-off-by: Ankur Arora --- arch/x86/include/asm/page_32.h | 18 ++++++++++++++++-- arch/x86/include/asm/page_64.h | 25 +++++++++++++++++++------ 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/arch/x86/include/asm/page_32.h b/arch/x86/include/asm/page_32.h index 0c623706cb7e..66e84b4b8a0f 100644 --- a/arch/x86/include/asm/page_32.h +++ b/arch/x86/include/asm/page_32.h @@ -17,9 +17,23 @@ extern unsigned long __phys_addr(unsigned long); =20 #include =20 -static inline void clear_page(void *page) +/* + * clear_pages() - clear kernel page range. + * @addr: page aligned pointer + * @npages: number of pages + * + * Assumes that (@addr, +@npage) references a kernel region. + * Does absolutely no exception handling. + */ +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); +} + +static inline void clear_page(void *addr) +{ + clear_pages(addr, 1); } =20 static inline void copy_page(void *to, void *from) diff --git a/arch/x86/include/asm/page_64.h b/arch/x86/include/asm/page_64.h index 596333bd0c73..1b8be71fd45c 100644 --- a/arch/x86/include/asm/page_64.h +++ b/arch/x86/include/asm/page_64.h @@ -42,22 +42,35 @@ extern unsigned long __phys_addr_symbol(unsigned long); =20 void memzero_page_aligned_unrolled(void *addr, u64 len); =20 -static inline void clear_page(void *page) +/* + * clear_pages() - clear kernel page range. + * @addr: page aligned pointer + * @npages: number of pages + * + * Assumes that (@addr, +@npage) references a kernel region. + * Does absolutely no exception handling. + */ +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.31.1 From nobody Fri Oct 10 02:41:51 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 3EC331E377F for ; Mon, 16 Jun 2025 05:23:27 +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=1750051409; cv=fail; b=u55Ugea2ZTCajaTbI5hwruyUEacx5TT1e0ykfTk8w7bjwEi7Bt1qpeKzMSbqYawGgYdtxYRa3868hYElMIxmRT1DvdfB5NgeChidor/EBRk1IBtKL5x+Y47d+OEeWjhpgw/lTMfS7LuBNoUwqyySJCAHJrXAKfOvXt2pRFppzAQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750051409; c=relaxed/simple; bh=2CiaDtc9B7N6zxVYzSQpULP4iQqaVwPuWmshrVlc0SA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Y5v0UcwPQC6KsSNl6YTnzEnU5+AhY63aC51CsNCr0Efx4iXyX+FilU0s3OYB82gbLjUpzk1bdx6PZot0Lfywg0quI6DLh5kQNrZXE+OV0vnBCsoe2rYIRbxXzWRuKLb541NVlBZ5cmsUpvMVu0T67idgS9idInn38+m4NaTPveQ= 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=dk65cd3g; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=WCYP4LuC; 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="dk65cd3g"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="WCYP4LuC" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55FNdKS9029927; Mon, 16 Jun 2025 05:23:11 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=RncGlNWdlbZfJrWswtRHsjYN0ENoNlzSJRetE/z9cJY=; b= dk65cd3g5hH6dHPDht5Lak5AJImoL9+ijbFVJrnyr52OQylpnlDc+k9gt8LoFNYv R1jnmyN3/I5uHZY0TU0PsmYEi/cHmvo8lKy5VFa9XGoaB7D9JwPD7f7O3bR6gMxq pArpy3E9F787bhkbHiO5WSkaGaz7m9ZHEPCNzl+ZIookZtOddQeN8cFiwAeu57ys zyohBWbtOVHt9Ekb4Z8HwWlVGILDfyvAs1PPus3Ty5RssRVuSktNk4a5vS5N5wem b8+sXo9Pmr+YIXhE66dXsgfPAa4iMqU+0e93uXV11iYtJkDFcJ3xUcHsp8wUar6N MhlE0PkTjBb6Mv1goPTIrg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 478yp4hqs1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:23:11 +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 55G4Mqxs032103; Mon, 16 Jun 2025 05:22:55 GMT Received: from dm5pr21cu001.outbound.protection.outlook.com (mail-centralusazon11011045.outbound.protection.outlook.com [52.101.62.45]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 478yh7f1ay-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sjCIZIs9m/igNuTq1HrhgUihpbdTZ1AI4wFocf6SHqFtuKPpZgRWdm6q48T+ZfarkSxrPI4loGZ97VH67+9jGHheUDpWoynPrLAH434A+O1ffnqhsvkhgvE3w4+qm/hBI6neSPfWYYEg4OGrCUI7VjgMUDjT5VfBerCZXBEqoBSfOyAzI8XJP/DDfuRBMD6Hd6lQMlVVTZJHe9pn0qtBFzULINsacigrgUos0k7luNi8LLCPGI1F45D4c7Ud3qA++ztQV/0CXlpitBV6s1D0iGzn8+T/l1zq/LIMQeS1ciXe/s7/T0wDu7OXxsYjWewGDqVTF2PNslNwn1PJpcKYIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=RncGlNWdlbZfJrWswtRHsjYN0ENoNlzSJRetE/z9cJY=; b=xruFexCHWN/HWNkBnQbLA2QVq5OGdbQmO0uR3waUhe0mFSl3XPAp4kbUUODNRIZwKNGZaYJJmrWym7EZALg3g0XhP3tYQEybNmMaU1AKnQATR7DiC7oHboXHkG6qYBcYDNAl6icert8l0JI70rGuQ+6Nr6AvqrVSwiQYziG7FTJQ4CrLOb8xFqWg5O+yu8GgzJ5WUJMo6tsG4INd1UZE4O05hFH+8G3fGmAOaDBM94Q0SUidQNRw6WdNk+dnVr8lSki7mPNiosU1ll+pZvl3WNvQnPodsCGTcTNH2wEIWVlb2cneko67zMnQWO2aFWqdGKqUsw/5BgQ0/UgpvbC3zw== 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=RncGlNWdlbZfJrWswtRHsjYN0ENoNlzSJRetE/z9cJY=; b=WCYP4LuCpsm99sWxGi3EkzgY7xR+VZOVScy228Eop7GzLaAdkLIngy5Kt2vj+9Ec7U+qS88EwaCXm3NpZtMBgegZqLWDJIUnEcpj4b++qaalR6S9FgRkbDz5NfWAibATvWvKwgPduIqZRzIYX3u9jBbOz+2QJGfft0mxZlromBg= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by BN0PR10MB4903.namprd10.prod.outlook.com (2603:10b6:408:122::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.28; Mon, 16 Jun 2025 05:22:53 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e%6]) with mapi id 15.20.8678.028; Mon, 16 Jun 2025 05:22:53 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, 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, jon.grimm@amd.com, bharata@amd.com, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v4 12/13] mm: memory: allow arch override for folio_zero_user() Date: Sun, 15 Jun 2025 22:22:22 -0700 Message-Id: <20250616052223.723982-13-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250616052223.723982-1-ankur.a.arora@oracle.com> References: <20250616052223.723982-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BYAPR08CA0040.namprd08.prod.outlook.com (2603:10b6:a03:117::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_|BN0PR10MB4903:EE_ X-MS-Office365-Filtering-Correlation-Id: 9624e383-45f7-4692-847a-08ddac95d7ed X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?syimI113InVxZ5w/dMXbgoE/nePh62nEB7LjP+i1ycTFq3E3mMlN6dzf4Qgu?= =?us-ascii?Q?uqnueoyHQfgkXMTjDRk3xtIDTaePeMfuVIi+/l0CLB1y4WO0A5p2Kun6F9NV?= =?us-ascii?Q?ZaOqiJG/yofbMkGCfDVPjJj60So28z1OqGq8Cr/WndwRO2t3pFlhdagHsIzF?= =?us-ascii?Q?KXB4ygEL8hiYe0mRN5EkI9FAdLQwNALgl9fxwyefITGrGMZ19QibFRT95sEh?= =?us-ascii?Q?LxvlRNxFA0nIqmSNjw/6vjpqbnhLbtjg0iPB5VmtxPjqf9DQ4+4+u4xzecYZ?= =?us-ascii?Q?GRrPmQaTg2Mhp//2pGLa3v0BNe+liVJFTLZ4w73BmTw0T3tga6x4q1vJaDeK?= =?us-ascii?Q?ooSOR5XOsFcFUbQlmwN5pVaRLywSjNfver9nOiz4AUQYlVzmoGMvIYpRvEUh?= =?us-ascii?Q?vpPC2Vn49XRZN9rdRd4HWGLluRl3dwifmMNW0QMctQDWxspp/JHFok3zm/2s?= =?us-ascii?Q?e5jncScLKG+SyeJvgQ9k68flr7p4A24nj6ObRsAHvKHkS3fZdtJEPMdneIK4?= =?us-ascii?Q?NO7mHtc8qcTzN39FR4m3eVP9BkbChAsSYtCsUOjhwE7ExufzP8xtBrzwHnLl?= =?us-ascii?Q?39W9pwAH2zSXR4oShmAn71/LT/qjYQS5KU/k1WsWTDFXlKSLXEyVPIT8kFoq?= =?us-ascii?Q?HbRYjsQkAEvFUSsGJk0DTzX241r8qc4TJkA5JneTE5VqnF8PhkU9XSh8rBea?= =?us-ascii?Q?83l0lPV2djD3e5RsNoDT6PoVAXjl5zClpM9FCzaKsKElS6u6M3swbDuFcfZd?= =?us-ascii?Q?433NS7dxJBIMENNLTJyFA10wcAnnODw5mbw0d8fyr9RquTiuqmS2WX2D1xrf?= =?us-ascii?Q?4AM3TBJoXwQPXkpT5F+ZUP5Kqizp93KxyOSu6YslE+cEmlnOjKKAIXobq/c7?= =?us-ascii?Q?LYvntQRq5Lodt04BfM5jo1kIgS2IF0mfFIC1lk72XSqzkhiMmbgQZLVAgy3j?= =?us-ascii?Q?/gjv40IYVxS3puQU841pZoX0tqwo35Uc5IikWrQOaFgo4xN6nevboxKgclY0?= =?us-ascii?Q?fBVZstiR7NPkmtdV93vYVLQAlMuWqLxOg0HicllCrU+iJNF6Ey3At+4Ky1ru?= =?us-ascii?Q?7+TQE4v7FD9HMEdqjq9mHfJJuZ2Ygl3u8q1k33Eql1tDZPpdAfm5kBw6SsIG?= =?us-ascii?Q?4RniqRr+srver+ahRpoLXYVi647VB3lCk4rcapfInkE28rewf13s17YSUirr?= =?us-ascii?Q?1dn6duHlCnxZxIuMV/RSEwhHvPyeKb2z5k+APZvkZoHqu44zMJNp8Rk1nmb9?= =?us-ascii?Q?PKFFqrVJturQpy3iSyd4jfa6G/IeTODGtkPPn7dIn6zcMTAK/MRSNDn20A4w?= =?us-ascii?Q?7lfCgl1qd/CblUEKzsgXW3/d5Qf7e4CRZ/dljJSzreZf8ij26P4cyV8x1P3K?= =?us-ascii?Q?M94gvgRuUClRWzU7Fvbx0vUvbWdKIWhBhv3slbomWuRXYWS/NhhsAH9ngQGy?= =?us-ascii?Q?b+L/y/pB28M=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)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?05j/YaArdwk5JjDq8qrRKVkch/nBfWtFbQcvd5DdBEIG51Dro8CQrP8joyaM?= =?us-ascii?Q?G1wkJlw5ZV1zcu5D1gWj3nm/gvoLysgRkrJcMzIDoiVDMXhFj4+DP+9NUCEe?= =?us-ascii?Q?jmK9Cb6q4llNHbavWppjzPKmaUqba95jGrK1RVYnoQlmXRQW7xNi2W4HvcHQ?= =?us-ascii?Q?sCMCquWHu8qutxL9s/341EsSQuVt5Hxv1I3bOqkSlYjYwaxhC6i2dFGTlT0c?= =?us-ascii?Q?fHcBdYDeFBtt++0L4esk7whRzGKr7oXl40BCPjz7hrjvk/CVzKAybhmar5lF?= =?us-ascii?Q?7byfNJJH8RY2dfxuD0Sw4YeJ84XOdaaKlj6gV9pTa0FAoyNFNey9eZYougzn?= =?us-ascii?Q?sfd0DJmoRq4X6QmQljKw7iGkBbIP7RSLQ2uAuLmrGiNQawchQQTvZO7tpPIA?= =?us-ascii?Q?ICmJ+lNhNfLuKEkWNDzdNexDjIS3u3fp42opClpdb6g9oxcuPvafa9z5EXr1?= =?us-ascii?Q?Q5Ci+yB/VJgrAVwUyh526dDIAUsrHyJIj4yW91EtpLbORovn/glZnSsXRxBr?= =?us-ascii?Q?2flW9I0OdnyU6Vsp8k1f4eHooNY1u4vm4BuDgUMwklvHBSFQuo54ZGGlmUdc?= =?us-ascii?Q?MLgHsZmEcBYcTQApgPFyoMfo6TJnyGhFgAxOAM1cLLkVNXxOkK/hTg7MlHvY?= =?us-ascii?Q?MtU1Mu+dvDheq41PNzFHJsEgSzFxIgrPyZPHCNPq9Q9CIC3GfmTyLPwSwD4x?= =?us-ascii?Q?1hInD36Bl2ZGa3n2WUPovorngxkD6qFnnxEZSOqiYfiKe82nqJiqnuT0TdOQ?= =?us-ascii?Q?JyJXHKlyNck8z6cBbevZzMmeDU0vcFDaE21gGouyhTziFsNJdRdmM/UF3V3C?= =?us-ascii?Q?Du9V0TzDHZQ59Asdp0HDduzuLFt+axQ7XvSKvrsfV1rMndMw5j0u7Q55EC1g?= =?us-ascii?Q?iJi+n8gbrnR1z19fs0uSlO74uDqMtGV82BeS+PweRU0sj8y/AA6MhavGAn34?= =?us-ascii?Q?QtCvJekFgGXrJVSM5px7cXAfrA1UHn8dbH2W5PA7m1VrTK5mqCQqnngTvby+?= =?us-ascii?Q?szaoImN3VCSEtF1kU9sve9g25/cIe4eYsnL9HH2fz+iP6S4bgn00WxCZ1Kou?= =?us-ascii?Q?l8FiR9RQVmihEyNMQaYJsct6cLS3zcDM92u7b5uiJWjoRkIzeE7qUX4VQ94j?= =?us-ascii?Q?5+lXB8kgXsLMTyDQKdAERR0kq/0iLU6f6gmLBNCJ79x+lm23Mw/YMABAG8IP?= =?us-ascii?Q?HBFxbIxyDuwKw64aj/S+WOXKX3NQR3qgJLhASImU69LvZoIKuIatKaoRqu+M?= =?us-ascii?Q?oB4wRJInT3rS0zohZQ7qkYlDYnQTfk8XNMkxkqV90hWSzFMzEu090LFuUnU4?= =?us-ascii?Q?Df+y9J6fv9xg8fiXBMnMXCC2dJfQt5l1ZzHeBNEch4wghoRDP9S9pCeKAEtE?= =?us-ascii?Q?jDOjyYYDPRHO15Oh083xVkE3nYux0+/TQCVcRNwnhIflOgnkcHzx6AX+ZrCm?= =?us-ascii?Q?C8lfz3nU7yLONko6xVzOEpOIAM2FN4Vd/SjYC/yLz47VeXnu0aWcRkLl7Nqv?= =?us-ascii?Q?PpEP+MDKuEO0gg0MlOoMu5Hi4saSAZZztxlkrodwDQNAJc+NSJVXhbRvXvyI?= =?us-ascii?Q?TzVYKa/GdclNt9PdcYZrCbdz9peWF1p0X4D4gbMyztb9x0Y4BALwjFnOEKEk?= =?us-ascii?Q?WA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: OTPWs2QBcbfvrh2ZEhJAXufe9KV0oOz+7cF5KObRC8/lI5HFx8lllbApfruanhdKQ0TpBDxLb85o8OyHF5F1XEYl723+bN6t3WM2cG6lLez9XvuZYsTeD7jDxsymim/3LetMkK7YPnFpKxKsmLpcYzNrZ2TXR+A6fBH+5gy/q5jDGmoTZAxj3qDf8NKCb7KH0DDSIZzdJfZ/1ZeJTqTc+wsXsOwUe4oP4aRO1hsztJp/lJ/XXgPNO/zmUU22lO2p7QVr4/U8UQcPFfoB/jzXMmCfcDetJn0m1ZYFJksEhtcQDVqBsKQojndg+kms6s67QPqEUPOnGIEZKHEy/AK4D4l3vNP1gKv4BfVzks9391t0a865zO3ynhFlitgFXLl7IbPxCuCea7C9ffmVXAnBWQZU0xO20EXwmHOTK0UHX/vnbG2gVEgaq+X3QigKVd+Qu7gs0sXy3tBilwhSmMOBPGXe/roCQpA0wDxBcjkNmuk2Ym0lkkajylmMJ7E4UhR3oOfl9NU38KzU8CPqTobwpw0uqXYKzuNIHt7qTEugvCfKtsWshRjdPzZvLFk7xyX4ytYTnz3Yp5sTvg+4RrWc3PP+MqC7InYupYx4rvJDnro= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9624e383-45f7-4692-847a-08ddac95d7ed X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 05:22:53.0196 (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: mUP7p59lmpQca6JMqUsctEkcCdDVeppGKs6nsIBGX94MUBGIsSXzNVZ5FF+qgOTacSt+EBvQnhDsrkcG9+fU7Ly5EpYkuk4BYKHPmCgNv9g= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR10MB4903 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_02,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506160033 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDAzNCBTYWx0ZWRfX7mGzujdQ1UGv 2ZVjP9M8EguTuYRZ96cVvLKWTBNWk/2ZhObD9Fr90npXwlW+CR3CrioY/5L8NcxlfkjFp10p50N FyWZg8Mw6bIxhVtoATv3sV9IpxZo/Aq7Nl+US4dWjpraob4FQNZLpM3ZzDrBb5T5rpXtdvxBbLv vYqADhK4dJPzwokw3rggmdYCPQKdfAQdaj83DgrKEuY8M85cu8I8DsJzfwOHUFdEIZYFPyRadCQ 63ZKFkIjC2PdiPNaCQS5NeLKfMe0LT2rIvkWlCUNBvRbquN7/kgNusSeg1zZ1MOxswfH0ksECYX THMKV5BrINJmPn/LhZV5exVaJtjkWPKzWkc6VH4iX9R8QQ8i5/TJ7u4HTAdx7RbXSSEoicZW/tB Tj3ASMjb4Bz1BSPKj/4fJogps7C4a1uTcQtKIa6l7HMS+t0KXNy4GDwxTNQwmWJymje7pb/8 X-Authority-Analysis: v=2.4 cv=K5EiHzWI c=1 sm=1 tr=0 ts=684faa3f 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=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=Z4Rwk6OoAAAA:8 a=yPCof4ZbAAAA:8 a=K1Mc2H1nIcWELMlv1fYA:9 a=HkZW87K1Qel5hWWM3VKY:22 X-Proofpoint-GUID: fYUKF9KbnO8keewGwxstnkbGfwvK2Lxs X-Proofpoint-ORIG-GUID: fYUKF9KbnO8keewGwxstnkbGfwvK2Lxs Content-Type: text/plain; charset="utf-8" folio_zero_user() is constrained to operate in a page-at-a-time fashion because it handles CONFIG_HIGHMEM which means that the pages in a folio might be mapped to a discontiguous kernel address range. In addition, cooperative preemption models (none, voluntary) force zeroing of successive chunks to be interspersed with invocations invocations of cond_resched(). Allow an architecture specific override. Suggested-by: Linus Torvalds Signed-off-by: Ankur Arora --- mm/memory.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mm/memory.c b/mm/memory.c index 8eba595056fe..e769480b712a 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -7079,8 +7079,11 @@ 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. + * + * folio_zero_user() does page-at-a-time zeroing because it needs to handle + * CONFIG_HIGHMEM. Allow architecture override. */ -void folio_zero_user(struct folio *folio, unsigned long addr_hint) +void __weak folio_zero_user(struct folio *folio, unsigned long addr_hint) { unsigned int nr_pages =3D folio_nr_pages(folio); =20 --=20 2.31.1 From nobody Fri Oct 10 02:41:51 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 CCD621FCFFB for ; Mon, 16 Jun 2025 05:23:34 +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=1750051416; cv=fail; b=cPP8mL74umMb2iOLf/fbmmNjMKFlDfbn2QhgTZsWe/HYoL6IbVODqnuNKsJaXuUpfq30Ias7FKLzPOP4EnWbDgO+MOwGvWzaKwTOY5gEtK+fZlw0nyYdaFBotybVMRn5TrM5vYspeswXv4Jj+uyY0CXNKwfhgqq/ele00asz5n8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750051416; c=relaxed/simple; bh=WG/1BUgW0tEd7u0Bq+iWHJGwe8L7GEwGfuFzuuHh7BQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=da2ShTUtHOolsvbhvE3g6kOJQdHFeVM7TKKFJG3z/W5upef5zk0AKEydYY3KPWaNwIj8NMkw4Sz6YtgPsuQrlqUZH9jwHi+vggauOx/qCzF23jNXpbTzXY/0BPGTJts3QDq+VfdxQ4FduMDnlyZI+ll7Xd49bBbyzeyNSvMykAs= 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=SuKWKtp3; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=h/6soMtR; 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="SuKWKtp3"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="h/6soMtR" 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 55FNpJHH017676; Mon, 16 Jun 2025 05:23:14 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=sOBerAxhEfBSuBr8L2CHvxD6YCCcmvhK+T6aqU4W6A4=; b= SuKWKtp3pn+PtUR28ciYWSjo/P/wa1AeuCEPFxcpmFP6KMW0NzaPEnpsvBooBIF8 D1s7BfwiJePuxHdzIpkEsup8ZHRhUXSSj1/DEB06GThwl8bhg+cHVBDLc2IOLF9T +5Ip2BogG+B22/5JxvVDYWzBWQ5ao8Q5jmTHWLnepUJ1LLgBOmPWoGi0fyFwhhGL 9GMSCuKb5n0UpG2GT3lnaEeU4vEz5ORDt5Fc3QTLtBT8raEVkSdVN8UB9E36R0ZV dJ16lSHra1Nnx0JCjSBv3/j/+IN6mq56KOb4g3ewsJLC4mVGTny9LQ10vaCtDrcI xAbjzY3vSLceVdBkczDYqA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4790yd1p61-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:23:13 +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 55G4Mqxt032103; Mon, 16 Jun 2025 05:22:56 GMT Received: from dm5pr21cu001.outbound.protection.outlook.com (mail-centralusazon11011045.outbound.protection.outlook.com [52.101.62.45]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 478yh7f1ay-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 05:22:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SAoj2wSYjK1Cm7Zk2ETgQF9fqQX6HYxDG7VmkQLR1Ab5/AReNIJffn7wW1yX6MLrYMO3ZYqC/2iJNbC5i1Yh+91lCLhmlG6TC0NilKRT29/Y1l2WRYZZaUsaX8YIcI2pHso+1VxGiM5lGD38gLznOv5YE0wg0aXzL5gtzCmTU8EMTzOusJknXeSR7OcRqwsEwu/ZSZan8AgMK/i8RZt3FWcw9DFrK8qphkuI36VVPuA8T/KyRulU266QbMn2ASPkPjeIG+nNfutKVfB77b/qzlc+M7+WFC2E77ggbfG4uH04AusNhndm7ArRVkZw3SGO8GU6LTGF6rywXZw3194CZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=sOBerAxhEfBSuBr8L2CHvxD6YCCcmvhK+T6aqU4W6A4=; b=MBu6NAC4xH4qa6GNDte+0dvy3SrCmGTkwT42ftPTeFR1+Zx8sxJe7dE3KvJiN9TBbmdj0yzHwaMPNFvr3shsB5ykfHXL41F4ZvGgcpBu622RIA/lecor1lvH6hX/Ued8vZbshZmlcvAlhZuaWUdxwrHy1Br3LK9NrNX4n5jSDr0YsHPl4xlJt5Q5LdnVx4YCFdEiCd+oXxquKbqmu5wZqCU7w9lRAw+86Y2S+7Kojxip14sv4Oxq5jsOQ3/2BDzSxHnxtF+k2aXKHhKrAisMYiaLPlryCq0xVOqR5Blm7NDIpHQ4EIrURBmc/Ofrt0TSBIj7PzBSq5kNt48WwkqiRA== 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=sOBerAxhEfBSuBr8L2CHvxD6YCCcmvhK+T6aqU4W6A4=; b=h/6soMtRPXwp/yhxKY/3/jgj1f3al48M10aIxYlE5jRF5xabtNDHQRIZlVExQVh7IsnXF4lh9uvaYXeuMY2QLVgfhBEfujUdCmShW6O0EvMeXXTq46hivRNC0JouIrCmRInb4KKxM3hASQ562q76FylcFsN0xcJF2dShlE4az2w= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by BN0PR10MB4903.namprd10.prod.outlook.com (2603:10b6:408:122::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.28; Mon, 16 Jun 2025 05:22:54 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e%6]) with mapi id 15.20.8678.028; Mon, 16 Jun 2025 05:22:54 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, 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, jon.grimm@amd.com, bharata@amd.com, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v4 13/13] x86/folio_zero_user: Add multi-page clearing Date: Sun, 15 Jun 2025 22:22:23 -0700 Message-Id: <20250616052223.723982-14-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250616052223.723982-1-ankur.a.arora@oracle.com> References: <20250616052223.723982-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BYAPR08CA0042.namprd08.prod.outlook.com (2603:10b6:a03:117::19) 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_|BN0PR10MB4903:EE_ X-MS-Office365-Filtering-Correlation-Id: c61bc771-d973-4d85-e30e-08ddac95d8d3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?iCqhezJGvNnWCqHdZCT0oG7Ia/6sPjxnSGp2SD4mkwhHBh91oduk7/8Bg1tX?= =?us-ascii?Q?0iuhfKjfoCzN+b4L7GO/dJFdnLZZnT6x/kz5+GDmsVhSfBXOPRVLBl4xdrx6?= =?us-ascii?Q?EBFVoU/bkZNZOwn88XJKFTFwqu3SfxetyAnBWLwWcTjsr0oTeE1hONcZMEBS?= =?us-ascii?Q?FBmTxHMoasULaMwNPiUjAedAAuQTgYgEvHTN6QErRY2PUSkr290fFAyWJTqv?= =?us-ascii?Q?tI+894zo+ZPnUH5N5I7KzKYwcl1SbPoGw7SVH86xZhT0QYmHGpB/Fw85uQvh?= =?us-ascii?Q?zXibBaQ/hQrmKEcaAFbZ+DHJY9a/GzhKn1B/588bPfynprPngH4vd1o14d8W?= =?us-ascii?Q?H/sKWa4zR9saI/QIi3W7A6Bic/1fSo2/wk9uJ+I/1qCJL7Lb3iTN56HNJhn7?= =?us-ascii?Q?fsoysa4yxcpYWF0aL11v6O6aflH54tXZvD5yj5quIbe8WenzqjXmpbaIs/ze?= =?us-ascii?Q?AFOiwIYCc5iouIdMEoIZgHI79zxZQGBVzOhUcVoIXM2g+Jjw4M3O5YpH19tM?= =?us-ascii?Q?ZYRjLzQF1h+Im0B4LVS6L3cbpdGSwN855NvafjuMto4sDYzNYBw0SPCSjfMn?= =?us-ascii?Q?d+xXtQyGXGSFbC0amCQtQiVGuDI4oIAdiDLFwdjoHwsA5AmL0JOGMAQAu95Z?= =?us-ascii?Q?DIVVlJY60u9c0CBKjRA6z7jpP9A0VzyXazd6xmCPuH1fIdFB+RSrEPjNfTk6?= =?us-ascii?Q?dQe2n9zxTvoIDmKWtvnLdgJvTTQPgJ9HEOTyH9TpZlpa/HPCJDaSreyORxqW?= =?us-ascii?Q?EVoJAa5ezqteo1PIZQ5WGIeWaT2t5YoamJmX0JZf/GWL3DKfw5PKmmRgAQhf?= =?us-ascii?Q?JJRGBYgwC2KU0foB3e4a0+5VcpdOF/s2qxU+J5nY9F3d4CTJ7ymhdJVAX/nL?= =?us-ascii?Q?PDbpYFU3AHvnFKVA6Zn07Dbvb4xTqV60tYUMwM84HoYrJFmi8kDe+V1dmcMC?= =?us-ascii?Q?QYyLHF8kXuWjSktDJgh5UGQiezaTcP52QqVIBtBx/RhJfGOvUIDw0AoUBsHt?= =?us-ascii?Q?NN/nGJYqoPWgX1ibUtllTPJHFNn02IvI9DzGYI4yvoIY4LvVxJyxYHvlR96s?= =?us-ascii?Q?v/mz4RG9IgWoe7NOI/vEZu262wTJPMWAEIFn++L2u3YgIVztwjYIwrGwUvJ+?= =?us-ascii?Q?qodjuNTmMjNStgQz34vQdQbjo3lI6sVJHtFuILDCce4n617VEMQXSOlKD8pJ?= =?us-ascii?Q?SwZGZDgpYW6/RF6s60PpaJB8yMLTr95BrTAZM/fEdT0pSUKMvueileNBXAl/?= =?us-ascii?Q?vg2tdQYPXAsadXOmSFOt0xM1SudBna2SMpCkkYXaOXoou4DgVqqnCFfP5/8n?= =?us-ascii?Q?OHyATNwQx7RwJKlhfB3wqnkpjKNAu1LxP0fP4C0k8IsokRjUwif3ivEMhWXg?= =?us-ascii?Q?76rw/+ZMwPHUhBhNbs/wcx2RXs3Wca2IAmu6Vvx2+8mji3aKovIQHutYNo+3?= =?us-ascii?Q?P47FfQU/0Tc=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)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wy+LYnbn7EUluajpJ+DuPbSPtQTB/+cDkvkJvxU1N1sHEK91W685HHyFUESh?= =?us-ascii?Q?ud7E3yPYQyU2P0F5IuDgVJHldBblRbnyXxDhmdeujpORGPlmfl+la5z0EO9z?= =?us-ascii?Q?Ne9EfuUj8d3CIXdwDUSW0H/pSUGz4/T2lx+qeB+WGBHnO3L+zIP8hiA3NUNP?= =?us-ascii?Q?trinfeqaGIBWDq2WEHmrwtZPtweLSsk/mhdujhQS1sSpp3lejwlwU4ZdEFfW?= =?us-ascii?Q?H3Urd6oYzBezB6omCm7y1/x9IS8M4xORBk11SQMxOXJqskBYxo3k4uvAMdv6?= =?us-ascii?Q?7XWkeRAmR4f/qVicDt+25PLt4ye8XSc9ajnogofjfQxzLFlMt4RitE1vuak7?= =?us-ascii?Q?yS9MrGE1ZFpy/CoC3lZcssNRDHkHWsOSOdMAWi+3PjUAk+qlD9k4dgHUW3x9?= =?us-ascii?Q?6IR5yryxv6BFoMgMw3t/7MnMFvYZHQd+e+Ml6C9aIp0hmK2HLwPqfuxLVvVE?= =?us-ascii?Q?t1red1y3zFcX1mZmYRPU0LcgavBw3SAKasswlaa3fkBkq4uVDec32++PGSfG?= =?us-ascii?Q?9qoKiVkebtUOguSXgdqp4ELo8fzkx7uUxcBDl5BDjwz9MJwQeXsZLGtE7ssk?= =?us-ascii?Q?7LnmCYHyg6KjbT+skdEmpx1KC19oF8GABSYFWBY1kOt+XiD0DfHq0wRkmSan?= =?us-ascii?Q?GvUHAQ2AJQOVI09nToC8fJg5iy7ETiISQNRxBi6UBJeaP1Ep++uKXRSamhzK?= =?us-ascii?Q?4pBTGs3i88Y1mRePftFVpmhVHzNmNkgpLXgqM2voQ/jw4unihC1ts7T/VaA9?= =?us-ascii?Q?S2oDTosiHdRmQBZIDPFlfYw+7b5KPmuO4Yq6kLKG0+3qJeLvuMCKUxyIV3K9?= =?us-ascii?Q?sbh79kMBKAIyVaSvI4VGhFhewZYo8/ADsnbiDY6Fnc9KXKzZ4xIlKiUs6sid?= =?us-ascii?Q?GykETs7DYWiOZuA5MXAHCLT01fEj9R3Bf6z2Whu1eZSvL2k2CjlnIFK38DC+?= =?us-ascii?Q?py/W5uNt4m//gmAQH4QmjdxoZdxsitKL9TpIK5CAfkffRIswiAIyKIvpX2rA?= =?us-ascii?Q?D7DNDcpStT2V1NvFOMWIqgJV3URrGLr8/9/jPRxV8cW/QBOjH42ZGbfBUdBw?= =?us-ascii?Q?H8n9o1fn+GduTmt+k2c5EW9NM9Yx4oallzi8TIVZhJfghhwY3Z+Rlqkf4ZBi?= =?us-ascii?Q?TXQeNnQl0mAPMu/2k48nd8NFEOPimsltTLHh1PtxXFvs2T3dhEzDi63/OxY4?= =?us-ascii?Q?JyynX3eeJe4lryOjMEMKggarWM4We4VqS8mkdf0YrYgoRp2ETaYLx/zUk+cN?= =?us-ascii?Q?pAuJcmkWqbClx+XUQp0cDKY/MsHNJsA6K9swFg9CBBSSlCnEjRzDvKuptqt0?= =?us-ascii?Q?D7xZaNijN5lcBx6iK5mHxFCrbbRfVnPwAU/qbPl//3sGRFFkQLwQv15CtryH?= =?us-ascii?Q?6vnm6eAsPNSNBlbTQkddluVSo7eOWJoDyhmM1+II8CQxhJfuQbomIX2C3nB6?= =?us-ascii?Q?iqhvIk3oXPZjY6XrPIzvcZm0V6kt+3DDvV8qHVwqbCxKK+TQYAHmuewy5pmN?= =?us-ascii?Q?N1iGOWu2+rALj6x49RxaV6OGhw+bj8lS4qq5PAavUnZY5/WmrZvSOyEEgCXO?= =?us-ascii?Q?jOvMAMYSnQPLQB9SAcjqkfOZvoEu6TWnmD7bLZhejV/cxEryckGhcjxgTUMg?= =?us-ascii?Q?lA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: WaZ7K2GAyD3unP9dhcWJGk5ZHplyaw/nf4kdRdfJIZYetqYBlYVKqz3KArWHCPJKbqQzAzUaOU9VfL53f+9jtaVe54Z0zsZq0i6UInB8yAvq7j+plKokW/YI4KYJm0nKZwOGYB4w8Gz/VM/KjZ4fDbC3230ReBG+fP1SLtpnC7RvchG/0Z1fDthP2Gxdjh84Pp38B+cjiEHaBzMxEoWGLeEmpe9Ys/OYWeYKiY1FJrk2OouAbqjhFOF+efi11irzVfmAk3oi1lidntdz+cDwQY+KckIpjW02E0weOyF3BLNXudUYaaJRYPVui64Kcu42UbJG2OOMc5Z9/XIrcw3fKcXSUwMaC65+iAptlWGHDp8hNAEo5dA2KAHXXbfQw/CvT6pae/CU2t3ydeJ+QdWYRu32ZzUbcOO8KAQ0SwXfaRnWac30ZX2tzERDhWriBgdPRNFJWSzWNZ7Z/bQueP0B6dx5h6zLFCviIN8RMul4jKwWjXgMcbhpB0UxZAXqB+9Fgydjsf3UUIfq9w2zQs4wxqan4hMLWkL3+QC1/bkLY9aKUOusXxqEs3W9+6h7fDFssBNeWYXRT0xo0GkUG+CcJkFvwQ9M55yO3Liv3avc/2w= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c61bc771-d973-4d85-e30e-08ddac95d8d3 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 05:22:54.5528 (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: HA1UgE5zIRXswvigg6RJUGRtaQ9xThs9Df0z8haRcEAOufNiOdEZtsSjnsPP3Fw0xpG+Y65MSAJZuPUSb/DO0LgjzKJNsu9AVugJn80h37M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR10MB4903 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_02,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506160033 X-Proofpoint-GUID: KoNIG7glBR7VAtff2wtwozR7dd9-EUOw X-Proofpoint-ORIG-GUID: KoNIG7glBR7VAtff2wtwozR7dd9-EUOw X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDAzNCBTYWx0ZWRfX6Gx4XCAIP1qN 40K1bSLlW+RWz0bSkk7So7EQQFZJarGQ7siP9/SsLVam7E/RY2RRg7HGGh4ozp7+Ip1YpXCEj6G SMsYbMdGnZgK3wm1ngp2lgq5MThetGJaogpqowPggFQ3/jfi1kRaYsxNYxCq1hiBH2Ob0iXvfwH 5uITSNxWS5hW/tn5uoJ83vLfbcVeGMTGNJSqk+8RsyFOLfuT4AolkR9CKoBB71my6KlItVTAfqO XAjCMFflRyHUeNzrUVX/tvubYjIPc09iwcHg0ED+ypyg5nhddcwFuloZpz9SJhOuxO8WB2RWhsu JeX2+Lln74CYswWZi7QfSXPRv/unq0Atug7xcUWWYWoccoMBtnTQBkG0hgtN2kFpalVPiSz5Mcn REJMl86AG3lYVf60adZMinwd1GyhoEjbOmkVkfjXS5/KhSzzXUR/qd4VAGHJMRBb/qBDuwAp X-Authority-Analysis: v=2.4 cv=XZGJzJ55 c=1 sm=1 tr=0 ts=684faa42 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=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=-03d-XzUNsdE7hy3SBEA:9 Content-Type: text/plain; charset="utf-8" Override the common code version of folio_zero_user() so we can use clear_pages() to do multi-page clearing instead of the standard page-at-a-time clearing. This allows us to advertise the full region-size to the processor, which when using string instructions (REP; STOS), can use the knowledge of the extent to optimize the clearing. Apart from this we have two other considerations: cache locality when clearing 2MB pages, and preemption latency when clearing GB pages. The first is handled by breaking the clearing in three parts: the faulting page and its immediate locality, its left and right regions; with the local neighbourhood cleared last. The second is only an issue for kernels running under cooperative preemption. Limit the worst case preemption latency by clearing in PAGE_RESCHED_CHUNK (8MB) units. The resultant performance falls in two buckets depending on the kinds of optimizations that the uarch can do for the clearing extent. Two classes of optimizations: - amortize each clearing iteration over a large range instead of at a page granularity. - cacheline allocation elision (seen only on AMD Zen models) A demand fault workload shows that the resultant performance falls in two buckets depending on if the extent being zeroed is large enough to allow for cacheline allocation elision. AMD Milan (EPYC 7J13, boost=3D0, region=3D64GB on the local NUMA node): $ perf bench mem map -p $page-size -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% pg-sz=3D1GB 17.51 +- 1.19% 40.03 +- 7.26% [#] +129.9% [#] Milan uses a threshold of LLC-size (~32MB) for eliding cacheline allocation, which is higher than PAGE_RESCHED_CHUNK, so preempt=3Dnone|voluntary sees no improvement for this test. pg-sz=3D1GB 17.14 +- 1.39% 17.42 +- 0.98% + 1.6% The dropoff in cacheline allocations for pg-sz=3D1GB can be seen with perf-stat: - 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 note that as mentioned earlier, this 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/mm/Makefile | 1 + arch/x86/mm/memory.c | 97 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 arch/x86/mm/memory.c diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile index 5b9908f13dcf..9031faf21849 100644 --- a/arch/x86/mm/Makefile +++ b/arch/x86/mm/Makefile @@ -48,6 +48,7 @@ obj-$(CONFIG_MMIOTRACE_TEST) +=3D testmmiotrace.o obj-$(CONFIG_NUMA) +=3D numa.o obj-$(CONFIG_AMD_NUMA) +=3D amdtopology.o obj-$(CONFIG_ACPI_NUMA) +=3D srat.o +obj-$(CONFIG_PREEMPTION) +=3D memory.o =20 obj-$(CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS) +=3D pkeys.o obj-$(CONFIG_RANDOMIZE_MEMORY) +=3D kaslr.o diff --git a/arch/x86/mm/memory.c b/arch/x86/mm/memory.c new file mode 100644 index 000000000000..a799c0cc3c5f --- /dev/null +++ b/arch/x86/mm/memory.c @@ -0,0 +1,97 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +#include +#include +#include + +/* + * Limit the optimized version of folio_zero_user() to !CONFIG_HIGHMEM. + * We do that because clear_pages() works on contiguous kernel pages + * which might not be true under HIGHMEM. + */ +#ifndef CONFIG_HIGHMEM +/* + * For voluntary preemption models, operate with a max chunk-size of 8MB. + * (Worst case resched latency of ~1ms, with a clearing BW of ~10GBps.) + */ +#define PAGE_RESCHED_CHUNK (8 << (20 - PAGE_SHIFT)) + +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/PAGE_RESCHED_CHUNK; i++) { + clear_pages(addr + i * PAGE_RESCHED_CHUNK * PAGE_SIZE, PAGE_RESCHED_CHUN= K); + cond_resched(); + } + + remaining =3D npages % PAGE_RESCHED_CHUNK; + + if (remaining) + clear_pages(addr + i * PAGE_RESCHED_CHUNK * PAGE_SHIFT, remaining); +out: + cond_resched(); +} + +/* + * folio_zero_user() - multi-page clearing. + * + * @folio: hugepage folio + * @addr_hint: faulting address (if any) + * + * Overrides common code folio_zero_user(). This version takes advantage of + * the fact that string instructions in clear_pages() are more performant + * on larger extents compared to the usual page-at-a-time clearing. + * + * Clearing of 2MB pages is split in three parts: pages in the immediate + * locality of the faulting page, and its left, right regions; with the lo= cal + * neighbourhood cleared last in order to keep cache lines of the target + * region hot. + * + * For GB pages, there is no expectation of cache locality so just do a + * straight zero. + * + * Note that the folio is fully allocated already so we don't do any excep= tion + * handling. + */ +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_HIGHMEM */ --=20 2.31.1