From nobody Thu Oct 2 10:39:57 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 807C633AEAC for ; Wed, 17 Sep 2025 15:25: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=1758122724; cv=fail; b=CipCCMch2i7wwuftVdg8QcHze2ypdvPjuLFpg8yfi3bhoDxnhuE5k6yGv6awHoq+GcZMapM1bCplQBijAVX+exwoe6lBIvUuVAk6e7yfSKx5zvphLrQbeMV5Fyi7Rhf+kubuZKQ5LuPM7QeDvIel3G992ZEnM3VLP9fTPhW+8Cs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758122724; c=relaxed/simple; bh=MT8QRdLqcJV8P5aKn28Bl5/BGTIVs0KQW78OHvp5Ngc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=HGd0IPVWJoViap/XADFILFlLFa/dTUJZXa7yLuCUon44lMNRW68duTwADrPeO44/0t+qwlg1gPIPGc4QWw84XiU1zAVD3gYbtZ8hYyamHq1xEBvREpb+ZZYTfKazCFjUomTSSJlTBascaLYtbH3qj5FDD61etI8TtB6SXNSfJlE= 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=HXJ1aP0d; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=CVyRzfo9; 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="HXJ1aP0d"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="CVyRzfo9" 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 58HEIUfp008330; Wed, 17 Sep 2025 15:24:56 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=IM2asB6V+oZKrPmrZPKLNrYs4TTbWhqxI2iR2+npYug=; b= HXJ1aP0ddUnG+e3W/K+Cm0j5dMnEczZMAf/dJBqwYw50GTMk4tYfSv1xzT1v9OpW YzRROZ0t7fVhrt81R13/AnJVr9BMuyfGsUhvnAtvpWV/Cv7+TIN+wZUTtrkmcAzz rInx5LjZ8UgyeWcHd5iX/pfgOUQEW4RGU9I7a3uTkr9Bne345sHVaCVd+XJqgjoU TGDNmGoPYUaYvpwBRA9I5B/VY4yqz7462d4me4aK2FKcyWJGS489dHlsCsDon1A8 Beqoq+X6RYXf6k+/Nz7dzaS/4uGAaPC0KsCTNQ9r/KdT3QxvCBA+wXSIzoheFqwj /JI/+JVH+TXNhs712VKqeQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx8hfv7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:56 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEnin5036777; Wed, 17 Sep 2025 15:24:55 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010011.outbound.protection.outlook.com [52.101.46.11]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 494y2dxupy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TrIX4OWLSk3bX1uVCnkkJUUAS3D7ESElMg079VWstC+6EOZxTHRCDsu6aSEUculIePKNxtPP70EJ/jhkR2qFIeKgp4IzNDcn/4ildHw8P9hOceWt3qSg2NliCrl9FhCZOM+IP5TCs+x8bdDHv3haErdxGdd20JLgUT1F0hT9xf4gXWlz8eAuf//mW1f2GeSLWW97VSfA0x1r1tx7dAqcE9VQBGv+6fVlqf4C79UuGCdkJ+KpJnNRhw0q0XkRrPylmHO80HWQ7KHVfgYFHO3iwytz14/FEmHFJaqDABggKclngVS+sNGzbPzqFGlSj1WI6GbLTiHIDXPitzmy+n5aGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IM2asB6V+oZKrPmrZPKLNrYs4TTbWhqxI2iR2+npYug=; b=bizJCEQ1l35Rz02javh5UYafhUYlaxF9GpWYLJao0/4DNzwaQuHeSf9d+DNyMCFvG2KQEU19/7nl8JooG/Z5+wkwlqv3iThy7pWTll0wLx1o6QFTVOROh6LoJcB1iPbcKuAiZZ4kS7vi2N6imGqrUaIBhPnKNNXFmw9tz/v9hJJdnYKGmq/wkEbS4vvnyOIhpetE4PKGweP8/piUSn8St/MejRiIc+UjkoSuy9i+5qZIT3yqEaWmoHff6FkOAvgkZq130FQMR89mscfxavwFvWqfWLhEiMkSvvdoW+gaEpbYFDOf/HrdzAYTKPVGli9V4tVbLf1IDhdIMEZ81vmStg== 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=IM2asB6V+oZKrPmrZPKLNrYs4TTbWhqxI2iR2+npYug=; b=CVyRzfo9RPEcmQPJbux78CmBU27GixnmdDwoKbtHeoI1xhI5JuVL/5UQZ0zKNTTDA202X3A9MsJupsoYh2bJhjTJq4aKvcYjEU85NTu/fCXNI6l1dVSsPDiScjSaUeWAGIBDdhp8x1UumrqLiy6mCc+z356tNPN2l6Zdb02b2kk= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS7PR10MB4942.namprd10.prod.outlook.com (2603:10b6:5:3ab::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.13; Wed, 17 Sep 2025 15:24:21 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9115.020; Wed, 17 Sep 2025 15:24:21 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v7 01/16] perf bench mem: Remove repetition around time measurement Date: Wed, 17 Sep 2025 08:24:03 -0700 Message-Id: <20250917152418.4077386-2-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250917152418.4077386-1-ankur.a.arora@oracle.com> References: <20250917152418.4077386-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0235.namprd04.prod.outlook.com (2603:10b6:303:87::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_|DS7PR10MB4942:EE_ X-MS-Office365-Filtering-Correlation-Id: 33b466bd-9057-41f8-9a62-08ddf5fe465a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016|13003099007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?JfDkg2AsUu5qERqwt6cHhiC54QCnmH5MI7GwPNvuKdIJaIHE6cYx0//m5BR4?= =?us-ascii?Q?Np1IZX969qgqpZjEleyYHtrPCIV0ssi4c5nMLuAHDKa8rNkz3HgJFOnbZyZs?= =?us-ascii?Q?BAr2ogV00FVjtnR3HVUSez3JEeDb7f/mI2BwoRyedmX0JtsJjQh8y5kLjGeF?= =?us-ascii?Q?ax4QN0fxTEC8o++fS5fiVIDd8oAtRcOpLkMNWZEHkg0cZ6b6d5nKLrW0TvQb?= =?us-ascii?Q?4+EhfLoC/KsgHM1ISEzV2Bnnph2fe31O8QFdT4w1LWKiMg6OTaVcXcyQiwF2?= =?us-ascii?Q?DaIwDVQnzyDN/+9LFeWFCR62eKmDw67e57rcMBbrGglFfgNteSXdvJijDeih?= =?us-ascii?Q?bXlmvGnPRbhyM4Ovp/d+YcaqyyiSXXv8cjelqoZebKxsDJQ8Y40CV7HndhSx?= =?us-ascii?Q?tk3zJm7mCqYQTKBLVtlC6N2yWDBFKTM8BdVTxvJWoXfOXZRdZ4Hz4PB9y4Oh?= =?us-ascii?Q?zqoQ6UF1XfS8vvIyLtYYXOo4XGBkgXtnNZKcSmH1aJr2qF+2U+qCyRWU9cKF?= =?us-ascii?Q?IHAgHD0bLjcZgDC5/mWOPtOjPQkGpG1gdUydT0MZfovBcla0Qc0lqG84j/Cs?= =?us-ascii?Q?iO0dUmaPRFeED78Cj7ZaKv5ISgjN86WTkqRdoCzUGbcZm09sDYiRzkr+3xgz?= =?us-ascii?Q?0ByOxz915IL+Wgf4Zz6Odpg1yvTAa699/0t70eC7bQiKGS3VHPcN4JScSG5t?= =?us-ascii?Q?Rg9oRjWSk8xM3uLAMp4YUu2GTJWJH3CqcL1XsyqHYPj9nw0nJPhGUpfdUc7C?= =?us-ascii?Q?TcEa5mnUHYv1LSIP2dNSLvufSWYlRaCMZD4dwjBlaIXkXHr76WLXwcCU5ofz?= =?us-ascii?Q?NOf3m22TLC4zo9UFmu6lppqXUhPv1Sh3EHV7/6XLEoPGsvKW2cbG38wyy4HM?= =?us-ascii?Q?62AOLVI/XMzIHvqMUPxtvOeqC6Res8pZh8955D4euuDDhiESJ2ZIXzdEpzl1?= =?us-ascii?Q?CPwC9u/PmgmaSrAtGCxPT3GdayyEUu11mq7k2yh8nZt+NeY/vaal9nwayx2m?= =?us-ascii?Q?EE2/LI75wE8zZQB514zA4ZBHQ3fh0i6yEL+GRzMtRR4Ct9xIRNTELakvBuo+?= =?us-ascii?Q?sNkOv+dPMYrs+j/r6XwISotgI1rV+7QezovWobs83PdG8JbDWOXQqqh8GF3S?= =?us-ascii?Q?bKji4TIAr+lwqfEp4Emo9yLuDu4BHWKLLverMc5KQytZGxmmDyEmh0EM1QE8?= =?us-ascii?Q?08LQUKqWQLnJfWAR6PgVaQ7HtqnVF0EoVONI4DdwcWl4BHZOTtpXf8Vf5l59?= =?us-ascii?Q?XgP/mI5obIThs+DBH0QgX/W7GbnsEYW0m6jgFLPX4Qprndi74BqfhSEVU8zT?= =?us-ascii?Q?g745ic5eyEVg5PaV/2QBcywqSM7gzQRTFhyuGYfMM/v0yiLlONUX7kDhwrJI?= =?us-ascii?Q?iQxGMBQ=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(13003099007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?6A+ivMnT3w1eigj4bCvVhMf2tFTquwYt2v0qZ+zL8h8WMdrpREW0Boi2akca?= =?us-ascii?Q?1sG3BhuYW/0OLhWICrxZI/CSLUDcFRn+PEpca+ID3pcYRosZSnkXUx58h2gL?= =?us-ascii?Q?nqf4Q3EXpg3DhbsNBuHW+edW0qnypCeqVXjO5/espAK8skV9+VULVCf/oHNg?= =?us-ascii?Q?SUjJbGjfDGknVkpHnbp1OYW9CNYRRCrZS58X42yU15Nlx0e0LiSExLIQX97+?= =?us-ascii?Q?4c2/3AoxELmc9ovAlydxDg7vZTLK3E2CNrQfgbLM4Ev7gURt8wLcoeDsQ50H?= =?us-ascii?Q?grgeTrNCgjrUUxyWUFBrG50gibvHqrwXV0tMGU87InsG3glR7eOkA8a9IzBs?= =?us-ascii?Q?+/McFwDA0r6KqALoUx52XmJSaEG9MEEIMWX4rS1yj+7nxiucofqRa+TVvdCL?= =?us-ascii?Q?IegslUxVm4fxepYSd0hr7W+F+1NRN5G/TUTrJGJy6EJ6FC6RMCQ7CJmd5l9b?= =?us-ascii?Q?vBqQheX+zeXfInNCyrZ4lz6usASiCyZ6a1quRElUfhoHusgqaiTfPlIKqtcm?= =?us-ascii?Q?DoKzz51UcWr4aCaKhyOVcDX2YVza43bZk1BRp72BVJzAXznolg7/zzmLj56P?= =?us-ascii?Q?Au8zKHyVOACizxrIlXGxr/hYk/cnH0A86VlHnZYj0UkRdS+nRT8suwcDEvwK?= =?us-ascii?Q?4+KL9yzBC35y/IfMDO9XnID9cksOZFquL54ZpAt6HYtAdDMs+VZCT8ZRGRyN?= =?us-ascii?Q?w06F4UuTbQ/8l3XY6QGcRot4//uT5QyL4CzOoKWcluTmqltfK6KQRvo3MCFv?= =?us-ascii?Q?AayylNjvlRihpMdR0Q0Z0XchBuIPEXpsNMPYIKdoI2ZNQKBcF2fWZ5sUSioj?= =?us-ascii?Q?q6JtFxK8V6WIi3A5LeumVVuHL8DQ4MrF8dE8+JZub70NxJiM0doDxV+ixw2C?= =?us-ascii?Q?1MONEHwlpeWeCJQ6ncLareiFTcQFpvAMLgo6I+mYQFjKvbNFvjHaO68lfgBC?= =?us-ascii?Q?/PlreyQeceuYLtJtZZScdkRgWFLoN7Vn/82RpP8KiaDcmuZS7EcrydzFrkLF?= =?us-ascii?Q?ssATv0Pvbh6wA3mOem7+8841wizCOzlMCJp704kqvF0XhsI1egIfME1YQqXp?= =?us-ascii?Q?+Tu2XiWj+2lyD5K59fSLBIi59mn7ajTeCAtLci5XqtF7wg8DSesJrVV34S4N?= =?us-ascii?Q?M2ZIh/hGW78xSf/skVvhvk6tA9ULmTkMeXy+jxtemmFfA4bya6pKiObQBZP2?= =?us-ascii?Q?+co1WW8urwQDjhiunmPq/X355U8Aq/BNMMgzd9KhTwUjyzCK36r+2VDJZZbd?= =?us-ascii?Q?De//X/rBj3Mz6qNxebbM67Yz7hG1UnNmkBJBrNSGgHbU83DkCnEr2EpGvs+W?= =?us-ascii?Q?yFqF5XBoGFCawriYtE+azMb6OqL5uC9OVdbSdRTIGqOfsTF1InjVc48bvlkx?= =?us-ascii?Q?SsesS336V3CKUSIQiA1b8IHNMDO1xgE5yZfrWEUaj97CDFsJwbhjQxeJn99+?= =?us-ascii?Q?7kpT6ZdGGcLETSwuutmU4aWdGjDp1ybwF1ICKq6WupGLYaJOsKM+X5mDK5c9?= =?us-ascii?Q?rWmnnoVp+fjOkTqcDlOnn2zzvjBTn+O7lbrZWxCBnrerGCSNfS8YdGbnNeyb?= =?us-ascii?Q?+LgsDZs38RbcI9EMgINCEDvS259NNp+C/H8QKq5jo1QrENM6N8KIQPR5lB99?= =?us-ascii?Q?ow=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 42fFPlJPqfruzBRQwzIwpVtPGBXPFtfsonwizAXBuARKbyseaOOydqdgdjnrphqxx8//vI5vL/NqR1s4ZfldW3aV5Lf9AaURB/5uxhHPEQ0hjJlqQf7J/9sdUhLAurYnZqosZbz5D08+LgFJCK2IWO1OT9RxnLOBo9HkxVB6fKZ0Fi+B1pYhpf3+s+/p1o4MnKhdnHaYfPonEfHAJMJTYdcTiPazb0CtHMgYK4Uo7hkjpQxfV9/7jZd9BCdx4k2e1qJHqH9cBpsW/HSRoyAHEdCEor9jMR3yZknZDFCC6xjEXlL9bJuZ3Kf/yU6aZRm1b7yw9pLAvQhoQLLZdHwzAgQ7rL3zpcleivn5sHFVrfXm21CvVgaL87OdFKWWlhI0r3lzqU1uytSEZ0Vy4+NeYnQAjAWh+qFyeypvqNeZXExL2UtfBVGeqVGfcyI/4My74sD4grBCrnlB7U/jJBH0CD+u9C1BXQDIxy0KslT5nh1Dt4YivCKvZjCgU/h4FFoQMLeaMxSKz4hmLzPUVcEai6sEHf9mLuswP6fKPkEWz6cZo25oTOa2s7VEJWLoRPIf0HnXcjyNFIIICGRYUAFCuKi3HTNRJqc1tEviEoQyc+o= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 33b466bd-9057-41f8-9a62-08ddf5fe465a X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 15:24:20.9628 (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: 8LY3zTYouEdlBqQ6eBIzW7+5QC6O4JAK6S+aHvkeZbXi6FaIoAY5Gq9rOjLXKdgF+Gg5BhR5MQNCGZV+9pfr/Q6nKrQPQxMgLGoeWMbm2yQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB4942 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170150 X-Authority-Analysis: v=2.4 cv=JNU7s9Kb c=1 sm=1 tr=0 ts=68cad2c8 b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=VwQbUJbxAAAA:8 a=yPCof4ZbAAAA:8 a=QzB8L1Xlpqjwh72o9DYA:9 cc=ntf awl=host:12084 X-Proofpoint-ORIG-GUID: xeXTRv2IsbKM-B2h88D7E8_-XF6FBIh4 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX4D1V+X1A/YS4 JtNcMZaHOncyEsUfix3beSvQsVxS3+cOoFl9XaU/bFCs+cq3iuBbTowT78QQF8mpGCKyLYC+7s8 XH+56wc19Jd4zzOGTm1sCVYyEqT3cPNwDf47wHUDN+y21LJM3YKERqoQcmFpPlqu6/HOheDYEuk NXT4472Op75NGtJRHKBv3c6BsD2/mI0KNQ7jZPwJU5uecekH18U0H2+mxT5kPQ4a40MsKv7Tvxt NcdmMXoLrE8yI8LUlG8nxQsMGUBanN7FdJdOF+BDfRIHjk/ie5NPyEydVXNVQPz0PU66EB1a128 Lh5gI7BVMctDA3e4+r4b2oDZZd+O6JxJApVJR3eZ382qNGVK315CKabE3Dh3OEvMotizaWpHRsI J710YqK/q4gM4PslJ97s76sNYH9TaA== X-Proofpoint-GUID: xeXTRv2IsbKM-B2h88D7E8_-XF6FBIh4 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. Reviewed-by: Namhyung Kim Signed-off-by: Ankur Arora Tested-by: Raghavendra K T --- tools/perf/bench/mem-functions.c | 110 +++++++++++++------------------ 1 file changed, 46 insertions(+), 64 deletions(-) diff --git a/tools/perf/bench/mem-functions.c b/tools/perf/bench/mem-functi= ons.c index 19d45c377ac1..8599ed96ee1f 100644 --- a/tools/perf/bench/mem-functions.c +++ b/tools/perf/bench/mem-functions.c @@ -51,6 +51,11 @@ static const struct option options[] =3D { OPT_END() }; =20 +union bench_clock { + u64 cycles; + struct timeval tv; +}; + typedef void *(*memcpy_t)(void *, const void *, size_t); typedef void *(*memset_t)(void *, int, size_t); =20 @@ -91,6 +96,26 @@ static u64 get_cycles(void) return clk; } =20 +static void clock_get(union bench_clock *t) +{ + if (use_cycles) + t->cycles =3D get_cycles(); + else + BUG_ON(gettimeofday(&t->tv, NULL)); +} + +static union bench_clock clock_diff(union bench_clock *s, union bench_cloc= k *e) +{ + union bench_clock t; + + if (use_cycles) + t.cycles =3D e->cycles - s->cycles; + else + timersub(&e->tv, &s->tv, &t.tv); + + return t; +} + static double timeval2double(struct timeval *ts) { return (double)ts->tv_sec + (double)ts->tv_usec / (double)USEC_PER_SEC; @@ -109,8 +134,7 @@ static double timeval2double(struct timeval *ts) =20 struct bench_mem_info { const struct function *functions; - u64 (*do_cycles)(const struct function *r, size_t size, void *src, void *= dst); - double (*do_gettimeofday)(const struct function *r, size_t size, void *sr= c, void *dst); + union bench_clock (*do_op)(const struct function *r, size_t size, void *s= rc, void *dst); const char *const *usage; bool alloc_src; }; @@ -119,7 +143,7 @@ static void __bench_mem_function(struct bench_mem_info = *info, int r_idx, size_t { const struct function *r =3D &info->functions[r_idx]; double result_bps =3D 0.0; - u64 result_cycles =3D 0; + union bench_clock rt =3D { 0 }; void *src =3D NULL, *dst =3D zalloc(size); =20 printf("# function '%s' (%s)\n", r->name, r->desc); @@ -136,25 +160,23 @@ static void __bench_mem_function(struct bench_mem_inf= o *info, int r_idx, size_t if (bench_format =3D=3D BENCH_FORMAT_DEFAULT) printf("# Copying %s bytes ...\n\n", size_str); =20 - if (use_cycles) { - result_cycles =3D info->do_cycles(r, size, src, dst); - } else { - result_bps =3D info->do_gettimeofday(r, size, src, dst); - } + rt =3D info->do_op(r, size, src, dst); =20 switch (bench_format) { case BENCH_FORMAT_DEFAULT: if (use_cycles) { - printf(" %14lf cycles/byte\n", (double)result_cycles/size_total); + printf(" %14lf cycles/byte\n", (double)rt.cycles/size_total); } else { + result_bps =3D size_total/timeval2double(&rt.tv); print_bps(result_bps); } break; =20 case BENCH_FORMAT_SIMPLE: if (use_cycles) { - printf("%lf\n", (double)result_cycles/size_total); + printf("%lf\n", (double)rt.cycles/size_total); } else { + result_bps =3D size_total/timeval2double(&rt.tv); printf("%lf\n", result_bps); } break; @@ -235,38 +257,21 @@ static void memcpy_prefault(memcpy_t fn, size_t size,= void *src, void *dst) fn(dst, src, size); } =20 -static u64 do_memcpy_cycles(const struct function *r, size_t size, void *s= rc, void *dst) +static union bench_clock do_memcpy(const struct function *r, size_t size, + void *src, void *dst) { - u64 cycle_start =3D 0ULL, cycle_end =3D 0ULL; + union bench_clock start, end; memcpy_t fn =3D r->fn.memcpy; int i; =20 memcpy_prefault(fn, size, src, dst); =20 - cycle_start =3D get_cycles(); + clock_get(&start); for (i =3D 0; i < nr_loops; ++i) fn(dst, src, size); - cycle_end =3D get_cycles(); + clock_get(&end); =20 - return cycle_end - cycle_start; -} - -static double do_memcpy_gettimeofday(const struct function *r, size_t size= , void *src, void *dst) -{ - struct timeval tv_start, tv_end, tv_diff; - memcpy_t fn =3D r->fn.memcpy; - int i; - - memcpy_prefault(fn, size, src, dst); - - BUG_ON(gettimeofday(&tv_start, NULL)); - for (i =3D 0; i < nr_loops; ++i) - fn(dst, src, size); - BUG_ON(gettimeofday(&tv_end, NULL)); - - timersub(&tv_end, &tv_start, &tv_diff); - - return (double)(((double)size * nr_loops) / timeval2double(&tv_diff)); + return clock_diff(&start, &end); } =20 struct function memcpy_functions[] =3D { @@ -292,8 +297,7 @@ int bench_mem_memcpy(int argc, const char **argv) { struct bench_mem_info info =3D { .functions =3D memcpy_functions, - .do_cycles =3D do_memcpy_cycles, - .do_gettimeofday =3D do_memcpy_gettimeofday, + .do_op =3D do_memcpy, .usage =3D bench_mem_memcpy_usage, .alloc_src =3D true, }; @@ -301,9 +305,10 @@ int bench_mem_memcpy(int argc, const char **argv) return bench_mem_common(argc, argv, &info); } =20 -static u64 do_memset_cycles(const struct function *r, size_t size, void *s= rc __maybe_unused, void *dst) +static union bench_clock do_memset(const struct function *r, size_t size, + void *src __maybe_unused, void *dst) { - u64 cycle_start =3D 0ULL, cycle_end =3D 0ULL; + union bench_clock start, end; memset_t fn =3D r->fn.memset; int i; =20 @@ -313,34 +318,12 @@ static u64 do_memset_cycles(const struct function *r,= size_t size, void *src __m */ fn(dst, -1, size); =20 - cycle_start =3D get_cycles(); + clock_get(&start); for (i =3D 0; i < nr_loops; ++i) fn(dst, i, size); - cycle_end =3D get_cycles(); + clock_get(&end); =20 - return cycle_end - cycle_start; -} - -static double do_memset_gettimeofday(const struct function *r, size_t size= , void *src __maybe_unused, void *dst) -{ - struct timeval tv_start, tv_end, tv_diff; - memset_t fn =3D r->fn.memset; - int i; - - /* - * We prefault the freshly allocated memory range here, - * to not measure page fault overhead: - */ - fn(dst, -1, size); - - BUG_ON(gettimeofday(&tv_start, NULL)); - for (i =3D 0; i < nr_loops; ++i) - fn(dst, i, size); - BUG_ON(gettimeofday(&tv_end, NULL)); - - timersub(&tv_end, &tv_start, &tv_diff); - - return (double)(((double)size * nr_loops) / timeval2double(&tv_diff)); + return clock_diff(&start, &end); } =20 static const char * const bench_mem_memset_usage[] =3D { @@ -366,8 +349,7 @@ int bench_mem_memset(int argc, const char **argv) { struct bench_mem_info info =3D { .functions =3D memset_functions, - .do_cycles =3D do_memset_cycles, - .do_gettimeofday =3D do_memset_gettimeofday, + .do_op =3D do_memset, .usage =3D bench_mem_memset_usage, }; =20 --=20 2.43.5 From nobody Thu Oct 2 10:39:57 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 8F44D335959 for ; Wed, 17 Sep 2025 15:25:18 +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=1758122720; cv=fail; b=iiYvM+c9HOIToAG2PiDMwnVSEcppIG+vjpOIkEYlUc04xD/ehhgdcKl8C2Gz2Oh+VyUAXQPfcIjiJ6veGgH9eF7KdEZbl8YzN6jsDmHfWcAyKeHOLYXqMyA4kOoS41WrpRB/mHqDElaLI3t6xfA4zcErpQlFr3cOBwwJv5EVgJM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758122720; c=relaxed/simple; bh=PI11IiJNpueuSek/N5RHTcF0onbWw14WA7lVHibfTvM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=KEvKL/l5dtUhuh88dqXF+/UntifpUFLM9vZTJBHNdP2Rx96TsCWfdhC5Syosfyg/a9OWFk4i7qWCQW4qDdvRm8vWrsF6LIOO1b3aR8cKNcPAn6OUZ2WF0YJC3N9i2MRKS+U9JcyTY9mCq/jK/MA/Gpuywf58rrdZtADTa/rU2lQ= 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=kwvYgIdO; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=xUGtEjAJ; 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="kwvYgIdO"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="xUGtEjAJ" 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 58HEIWMf010251; Wed, 17 Sep 2025 15:24:57 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=cE8XrSts/PudR8Gp78fb4EZIA5enTOcxBz7UItwHy80=; b= kwvYgIdO9uR34emOJkLiw7LfWSf0Yt4wHbODE8wbEpQuMgrpUDPlyqlk/53pHgPd VYrJIU+n7/7k+YJisZBAo2r/l1fU43cIxJlHY7RpLA0t+8siCXOxeXozXrhqx1g6 x04pYLQQd4S6Dzqkvun1a+X4+p6QgpD2hyvh/CP/2ctcXZNFu5tpV4ZIZ+fmm1Rp FEVXXhleDGQnByebVWujyI8gYju/FfVXKmEdXJJ5Q/wc78uKRaGozjIYgbA7NTbN Bc2D/4wKA0wD/ImAMzlWy5gif8gVv0TZp/GPaOsaXlTi1DB8ncm9WlNBO9UCQjcK GpMM8QhubKoYArnGtkTnCg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx6hhdf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:56 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEnin6036777; Wed, 17 Sep 2025 15:24:56 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010011.outbound.protection.outlook.com [52.101.46.11]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 494y2dxupy-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=a25i0Fax2aZQnEj5Yf7KhKIx8kILynZ3ABVZdvXqVTVaAur2zYgR/+LH/3qa84DkwgSKw0e+SqCIubnlPEyGYuibLrqLvJjtv2RRSkgGu7LEXT+9MTRMPC9Cm/bmi22zBDxSDk+V6NJnsN/6wUUBv5lnEgxlmc5qmx3KdS2hCnKvQLrpgx8S9VpCrH4deaysdaqz79J0cujXGlxcULJX600hh4XYhLDgKb1/GDAScxGLCGNjJCdNq4y3YZr6xR2W37RMALHuCds+gNHtlfhFAiLjjFoGs4HzpzAAtvZ9uxHrhcq2YXfcCkQP+9jKITGSMEztE6XeJ3RlsuYhB7/oUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=cE8XrSts/PudR8Gp78fb4EZIA5enTOcxBz7UItwHy80=; b=v16tQ2ji5JfR891jcgWYuj1VW4FHLgaXcpaSakoYP5sNBvi/QSLwsh/xdsoI1aB2dT+ci2F7FBlRtsetUI8tgjCHl2hiWrABrNDwAxMU0ZfGYvSPVqoJwKjXCxWUjr6ZGIByGtaqFrlx3yiA6Ki3DzcxNBDr3pdN9KzOaGeJ4afPB3uGrNfvHYRIXYLs7evMIXcEMYMJW3/WbnftfKg9Svz35Rv06hbnctruFP5rU+2SObn7/lBfHMXen4QI5g3ST0gQv0myyt4oOfQRQLglUQVXH8/pAbqoDAy0PcrGIvE+NQAbGOqlmgXTH58RjOVDdzv71zL0izHkzG7UO6hiHw== 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=cE8XrSts/PudR8Gp78fb4EZIA5enTOcxBz7UItwHy80=; b=xUGtEjAJg1LM/cxo5oktb58Kik2hE1bKy7PJN/yI3u8VxunnflONSMG9CE71bPV4ev0/jLpvqTVpr2L6ZNLpBc2EPwp4uHp/gXbnDmulSdBXtjN/ksT1z+Fu81UDFiuWTDwsPYhHrCYpA9uQMxoqV6xtwHrWP74Xd33ZduV+oD4= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS7PR10MB4942.namprd10.prod.outlook.com (2603:10b6:5:3ab::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.13; Wed, 17 Sep 2025 15:24:22 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9115.020; Wed, 17 Sep 2025 15:24:22 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v7 02/16] perf bench mem: Defer type munging of size to float Date: Wed, 17 Sep 2025 08:24:04 -0700 Message-Id: <20250917152418.4077386-3-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250917152418.4077386-1-ankur.a.arora@oracle.com> References: <20250917152418.4077386-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0215.namprd04.prod.outlook.com (2603:10b6:303:87::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_|DS7PR10MB4942:EE_ X-MS-Office365-Filtering-Correlation-Id: 84c9f755-051b-4708-6534-08ddf5fe4707 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016|13003099007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?/dhireHz+vV2G5UxxbC1q5fw4i6jUbhldKr7mKXwYjj7tOPFe2r2YP0MYBZH?= =?us-ascii?Q?6qX4bc8dnIWx1Yg2MMPymD1xIv8rydMy18yIRU8sc/av5vKgFMxjbNPMoqeE?= =?us-ascii?Q?pWbSYk6Tp6zheJi6xlQ0JUYhwiu1nv++sQU1gWmN7a0r0pnRtT2dkarCq44/?= =?us-ascii?Q?oj7ITrbZK8RQAUWrfV+/ygSRM2Ui5mBRZrAqFlYFlzBbQVLt+0zNBRjUZEp3?= =?us-ascii?Q?lrnXGdplLXSOzsK+mvvSrwBy0RdbUyN7sJQC2EAW7dhMsOqXj5DrGltWdKvC?= =?us-ascii?Q?i9v+RPzaRpdfQnhIrWlKx+EzVOuWqdXHTBdmh/Jo+GPXNKlzjhuJ8w+cPP8Q?= =?us-ascii?Q?zk6dR9TXJT5dKWDcdFPa7FwuHM3SUlE5oKlqMvI2yMsgCB0Wo2RDP7TDEY1o?= =?us-ascii?Q?SVv/ITdrl3MYfE6op/15zRxuA1X8Tkuh9xeFCYdxCWWTQbQewk6a0rFvi7Gn?= =?us-ascii?Q?hG+/MES7BSMflJk+nySQ2YZH4ZP3wz+83lWRAYHUd1cPz2+dvoAA2mKCb4FI?= =?us-ascii?Q?tJ1G+YN79WoAbcg8mCSEcFaug2FwP87HigYOBmmZY0L5Tb1d/A9pfCAAaUe5?= =?us-ascii?Q?mLhfmRoebtsnGcUtTT6xV8GrewCPzfJQpMN0H1ip0CjoxwM5TkfN+hfw8RCp?= =?us-ascii?Q?03C9XxHGmuQUV7d6JfGKVKW5dCtgdu7shyV/ROkAoKQu7FLfgNvm5YxehKro?= =?us-ascii?Q?gJIm8R2PuOLtqAqZUabmxuc8FUQo4FTJ+Q0oCkXteGa6zligXCKyg0YpPD3Q?= =?us-ascii?Q?Ab/2vVN90/VME/jh3Vf7I1Qphj0SVmRgDhdB7vl8nRx1ps3JW41/atOc4CvG?= =?us-ascii?Q?GPXSyP6qO7dnYn0jPZO5FnqybFm/risceSOJV/CrwGttxx6nehR77fvbfzjF?= =?us-ascii?Q?HkCG+j09fM84EXlCGFfZVY470L5jgcHde83Ne+OEhO0AQqalXIaoO1D+kfzB?= =?us-ascii?Q?CuUpm2P22cqJcRxx3eY6j3/9yYFYnoKP/av72AxU0S5XTux5NwO7BHJ4Wl7F?= =?us-ascii?Q?+0XLlqNCbQu9Xw3rRRPQK7vzugLHpRAD0VOFzcWNPHdeg7Af9vgHK1BpGlF1?= =?us-ascii?Q?i14v4FuoTGlmPCItszYSQW5xH61rJVSDCXFuEo+8y6ec5pQVXJZJv5t7XPiB?= =?us-ascii?Q?RPw6K+P0UuygMnxx8aMo+Xi8H3U97fLDjqxsGbJM+hmwSUg6jkRvB0GGVRVx?= =?us-ascii?Q?nB85Vki8XNyT/reIg6/t5Gdrqfyw+Qh7xNcu05rB1Aw/0VbStgbsyKb65R3h?= =?us-ascii?Q?tERJFi5ww2/RZTz5xe5XF+CT2uodsfoxnJqhERN4SbEJzqXpuPg8NYsDSaHo?= =?us-ascii?Q?+SdmFSirlzvbtLnngf4L13DKpZeuIunkjIx2t/VjcyyjS5K6IeFMDDPRRcLB?= =?us-ascii?Q?BRQadtY=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(13003099007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?s0sCFpsXq1E/PEC2WL0Nu7cUzJ6wRe4cDpi+OnjV+qSHSpDr1Cf3sfkYIVN/?= =?us-ascii?Q?EkHhCyuX84baxzE2bJT3uZwi35BmDbrN3NYwbt5o55uqmkayW789nCTtqpk0?= =?us-ascii?Q?J5AWJot1ohi486iwtUswqo4fHuCFvONOThE1TNaMxiYEBJ4/IX8oFaT07EAt?= =?us-ascii?Q?4iO9EHhGHxrg2QIDLxJ6sgvqkVvOSrXp3XwMnbz70IbjVn9/COl9ZLmtYfwv?= =?us-ascii?Q?6Zvfhb9ErPJR4iGO8kanSEI8O58y71XcX3SwAOlPzuM5aiGRXQotT5+pEE3/?= =?us-ascii?Q?GmxsizpxnANq54eUwCeTVbxIM8bcM8jNn7J6z4UBCLFQaft62MNAcuFkyu2b?= =?us-ascii?Q?oYj6J5a6vcxkyKML8K29wIwN/tnNy4t0XWhD+qYIEdqT1tykxQ7lK0tGSlaI?= =?us-ascii?Q?NacX1qr5C63dseMFYh6xHfeX7tgYSdRKT9/NZL30u8XSVoKMVRU/GBeserVe?= =?us-ascii?Q?kWz28kS6h6okloMPFNWHDHWaZXkk/+mXI/KhLOkuX6oU0JWPos2lxxRQyNJv?= =?us-ascii?Q?RWEbv/aHlgaPTMb9oWeetKxzXvtUPXTaHFrOKA/zxVFOSUIUFWGgsDTFU6jz?= =?us-ascii?Q?QkPyL7/08vTcfLePEYdM7xrHTFHaDvMJIJHhD8FPSH+4oWtTMm1WfWwnsOhm?= =?us-ascii?Q?O+1SvWRyIc/kd3qbvTcAfgO7pPD+ngwuaT+gJiA6DYqP6YrU0ukoMpCjlS4U?= =?us-ascii?Q?pzbNDtYL54PjBGv27gRBoj6YHEchD9Ils4P3ibHoxp79j2NBEzm4DgXBJzQ+?= =?us-ascii?Q?Y4EFsRfVuRfs/CpPdJv1p9ZzHhLEqmCmoCpxZ+vSv0UfX5JsYh+vj0urWeWr?= =?us-ascii?Q?iRmB15+qmX7NxsSB8sDi6dH55wi7koziv7UFCa1r0ymnHmZ4SKjS7ifVV/Va?= =?us-ascii?Q?NKHPLQymoul41VZuORAvTCl3cTwPAmpUSB6PrjpxeY5581KlNHTBlzKTHJXr?= =?us-ascii?Q?bgh3OzeWNwl4IavU7+6rSzEhCDnU/aX2DqVwfnXajjUSVFrDUmS6+5ohD3t6?= =?us-ascii?Q?sWeypqwzCsPvUdq2kxC0r2vdOa8vsCoF4JN6T0Wf1cKTDQX8taez9DtXSssW?= =?us-ascii?Q?RYLmHvlDmkkjpwL0zJYBEYu8RwRrHufO7jYdkmW8+Ik0Z7p8r8eNnNmmZbIn?= =?us-ascii?Q?PlFOGTIgBOdDHpY2hjn8uuGaPNDYnUOeUW+GJ6nFYcoV8517t7DFi44QWmGF?= =?us-ascii?Q?16O5DC7JmCNWz+qVyP3Y2UXBolcWyTo9deTVWJi9YRPeWYxYstCQUlYIdagB?= =?us-ascii?Q?Oq6C1PbkAgENFmx7WZ+vUEhYCwpZNGDaGXj43BWTuq/uC3BdKcPvhIP4RoL9?= =?us-ascii?Q?H3sQQAkU+ESYnbzZcWfwcUZwMSkBz8222QKyVqOunvVLqfOdsBawbmLbjWGI?= =?us-ascii?Q?KOXiFM/VMTVHH748+iEyAR1HkYbYixD9WkujntKKPXpDWAJpyLwfAZSUvY2u?= =?us-ascii?Q?g15kj9vceeNlKJgiUkCsQw9lelQmH8b51+SxENlyo0EgV58gDKXwzDQa74fl?= =?us-ascii?Q?PQaJagPYgArGJ2FnNJN11m1cyFP0XEKaBMOlEbcWJomBTnrcPd3Sk8zdwIoM?= =?us-ascii?Q?alC0oEj7/ukKGOlhazd2JS37Xaua25W10xcOeWsXYv2MxBSsZkYigWnRMQeE?= =?us-ascii?Q?0A=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: XKF5xk1qdkfyVXNyXBo8l7gwPJvon6aarzwdqK6ScUIVDsMFw0HE/ubjrlCRI84sEbg5936CUMaMxEhPkrf8bA/FuUbXR/V5mtPNCOItgz57kmfDEkHrZuHyWg30nPyVqcZXCOGcE24BQGbrEYZ+Nm8IoSi28mwKygNPtKwI8ji4lig3rsxvuINHrKFy4QeXwIeDp8FktE/4/LNWifAGfMr41tImU2+cymCFMhtdSdHOG8exKU1T+mWyqzFQC3bXOi6E3983uiSPFXp+P9ZFa1z01J6CPuinWhdm76Y1HborXdLomqPfgB2l3dKsI3gRMBybsPr7kV5zravtRtmnHanchc0fNco8Ytaz23Rx7AbK4FN1xvgciL64rImWpQ0RynSu0w8Uy39trtB567OpRZaPmXcJQSypE/7qLkKkphwH0LOnRYscshmeNdYlJaFxfZa89Z6dCrzngQaIRtGAa7SqpQbpsEve9oCN+FABzdf8wNKNBiOjnEjyGuqwgzp5gkRRTynL+qIjqSduH0ECzHggas5Qe6xF33Y1ATEFm+k+dKT9D+mWYX/UQ0La5TlaDw1EArnUd43MY3O/TKY8WZXKtD/IE0RmdT1gYXhiQeU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 84c9f755-051b-4708-6534-08ddf5fe4707 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 15:24:21.9842 (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: yKyk27KnbG2wzBiTdSZceqdPqf+bl2/Q3HVErU0PgIqzv4fXoniskJeyOtcK7dwpGxL2Ot2RC6xTRaJm6PCGsAhD48nz09hFvWtYCc9OyEs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB4942 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170150 X-Authority-Analysis: v=2.4 cv=TqbmhCXh c=1 sm=1 tr=0 ts=68cad2c9 b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=VwQbUJbxAAAA:8 a=yPCof4ZbAAAA:8 a=X4Au_8HLBps5sezr5J8A:9 cc=ntf awl=host:12084 X-Proofpoint-GUID: A84uJIapJ3zqFBkwa1R-pZgkTYm-SVx8 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfXzP43j2CfsHhD nfU6h5qGjQOTNMpGo6RsuSkgHsK4ULWsEbtJdcZ0uC1hD2hACdE9EkX62hMCi4zZYpmUYxQfIsr 5gcgxqNB+97Ma279Y15pCnvbNL7payXK9Hl49alzzRbiFKVx/66T+RhXRJjIFREgEh/IRyQjPt3 mzd9JHWbPeyB89IQ4+Sz0D/l0iKPmkX/l7jHPrDXGILrv0b6McEZhy6d0BXhmmBlSIKoTooHOTs NifeaNWACL3v09FQ+lWguXAS4DkpHyfTctEIYD8KA8V+xO/emm5ODfkH8yUk6FSoJVYoO/wgfo2 CQFKHcHPocHsM1Vy/ImYb0L5sPIuMiLrm+9DpMMXPMNY+SY1ZniMTC1MxjG5Ud6tVnJDWxsLV0F BH9xhBjCgekJAH5d4crduwj3F8LZlw== X-Proofpoint-ORIG-GUID: A84uJIapJ3zqFBkwa1R-pZgkTYm-SVx8 Content-Type: text/plain; charset="utf-8" Do type conversion to double at the point of use. Reviewed-by: Namhyung Kim Signed-off-by: Ankur Arora Tested-by: Raghavendra K T --- 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..fddb2acd2d3a 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 * nr_loops; =20 if ((s64)size <=3D 0) { fprintf(stderr, "Invalid size:%s\n", size_str); --=20 2.43.5 From nobody Thu Oct 2 10:39:57 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 C9324337EBA for ; Wed, 17 Sep 2025 15:25:19 +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=1758122721; cv=fail; b=M9oHu5vBKT77bjIzZeiqNJlnD4LS7VMihQwKyLNEYTF1e5J9rh1AYsJMkU3aMbi+fHMFVHD3E/tax7+SMyYN9KFpSzKwSpCe8BDSnJSbeSkcv8MKJCsmG8V9iykMDst+iHhRXzhavHbmmtfYb9N2KjMfEALxEjmq6+N3JmJAo9A= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758122721; c=relaxed/simple; bh=x2ZkNMTFOWtkTucCzIr03TKjWftFzfXHckg3hFMZDjs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=hV9mWI6JkQwa9c0TUeiJH9YkwjWSU4aZhtiupipIsGiiKs0gzV/wet94dJ+FRMMrUgMi/V9phxfkVVf+X9VhH6PhFGr/rU3d8QUA+tqv7F2Xplmx36tYKxzVorGR+i3jhWvRMNZDl75g3/iTy9xVTrJ0Mv2E0+3+eC/LYsE7jQE= 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=WGF+A8pv; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=bOCEjtDQ; 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="WGF+A8pv"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="bOCEjtDQ" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEITon007388; Wed, 17 Sep 2025 15:24:30 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=OxdspWbIMutqWN8pJh5Q+AXIbRph7/kyYrDPbjDMMno=; b= WGF+A8pvTryJ7W+qheO13ZK/jez+2vF+qyzcn0BxF4+u7CJoWYp8IJ3wle0LwQg/ bm/Vl24KmJaFDXcCwwRDn1mfz1TjcvY4jFj+0/qo+LBKzoxgToNrB19SsIJfLkpw TDD7CuyTbsCaRuwUUtrq/vSnK/dgqBzZl6BLKxONq0mMzxfarqpd7OcS2IQG8WXz mXgu5l7HAGG6zLu9MzXetAEMzXIbHdt2Ut08eRYsiu6obm6XOLVELdH1Vhb9giDD 4Qx0XUjzB/UC9iuDwGoaUtoptLlZIObJLCXLZ15nGZFnJecpJD3WTnsiRRxBu+KF qgh0z6nv+69BHzdJZmszuw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx91gru-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:30 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEfejg036779; Wed, 17 Sep 2025 15:24:29 GMT Received: from cy3pr05cu001.outbound.protection.outlook.com (mail-westcentralusazon11013022.outbound.protection.outlook.com [40.93.201.22]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 494y2dxu57-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PIOZdtQubFtCHizBnM3AziTo9sZC1R5V6VCuqznLd+r7EzrQhchwHvBPXKta3LQBaN7s11qrC11v2NJ3x1/1Z7FvUw9ZI3QelMDcNcKH1nol2At0CzKn3tBJF8eappLBcq38Xtx4Wc3AC2aPwRmZFic2RupYV8bJbT+nbq7AfKoWNdsnMfWrYQFCqxXnMaE/acPY1g0VIyzat1LPekxUfrChWt6LbY+c4uXo4VHklmVqnczJ9Ul6x/vdUAabo4UHeCfWwqdIr6zwBbFeASyXbAIZhxR+Q9P6NbQRqbuzZgFpVKuisEhURHSBXyZeiqmd8bsZLCQHc+t8OcwQRzt9Fg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=OxdspWbIMutqWN8pJh5Q+AXIbRph7/kyYrDPbjDMMno=; b=zMaab6zKt/FkBPXntnxXn9aS4fLds6IqdzAfniSEprwsjrSeBVEWRoiRzWeF8CbgH70xo2il0WxBtLuEMSQwvttiwYa1I5KUj2joXeoEVZRkJ0xqgCUV9TQ2MRCaOd8ZO49cLWVTtySXD57Hl0Okd4isEUIQVVzLuJjJNOHsHWRPWgkIdOtuOxbLxhsHlfSCWdYK2dPz8wUFdy9gJi5X2+wPTT3uXzmdxOZndT2P4dW3TovYKl/i4xDGKNt4jIma9tBFkjW9+QrpXKABBaqCrtjnFvLAUNKeLnpObJfOSfmRnkeZ3z2cwYqTxrvoboiyrfv1p9XlYqUAwwwApY3DHQ== 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=OxdspWbIMutqWN8pJh5Q+AXIbRph7/kyYrDPbjDMMno=; b=bOCEjtDQX/ikkHZ6zfj2iCOak9FX+DZIdurRB55gt9ZQhBwwIeyVkz1g4tQoda18YS9oJoMLCINKis9aWl+54SVzYcKc0/KDKp+b6GW+fIvjE0H6Hih+lhpuW7PRscNP6RsAkb/IZxA/jyfpJdblxQ78QKmAVAPwZhp8dTUuq3M= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SN7PR10MB6287.namprd10.prod.outlook.com (2603:10b6:806:26d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.23; Wed, 17 Sep 2025 15:24:26 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9115.020; Wed, 17 Sep 2025 15:24:26 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v7 03/16] perf bench mem: Move mem op parameters into a structure Date: Wed, 17 Sep 2025 08:24:05 -0700 Message-Id: <20250917152418.4077386-4-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250917152418.4077386-1-ankur.a.arora@oracle.com> References: <20250917152418.4077386-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0226.namprd04.prod.outlook.com (2603:10b6:303:87::21) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|SN7PR10MB6287:EE_ X-MS-Office365-Filtering-Correlation-Id: 955aceef-cbc1-4d03-cb0a-08ddf5fe497b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?xkT29w/7HoriAveQSJ9mS0K8XFIibMDwk3pMEWi7B0YLKsjsHlCBVMbirBuR?= =?us-ascii?Q?40K9MNA2u6HhwtOHLzcTklV4gf/qr/rvp/Iv3Fqu5gDGD/458bbMfG2xRuSz?= =?us-ascii?Q?jujTNtxqn1+F+BuL+ON78Cm7HLviv7Te1qvFRIFdmg92HNkZFcbczlbaPKbQ?= =?us-ascii?Q?sLWUECHtbKW9eLo8J+dejhqhHOHjjh5s1jp4/xF80b1U/TjekekTGXCX1l4d?= =?us-ascii?Q?UrdgQo8pISiUEOCrwJbY3TKSPKivM2fQvd2ljbbUnrjCwTPphGAG4LH4YlFc?= =?us-ascii?Q?7EUtQPA68D7d6wkDBFMXwKEsJhL4COEGzX0MAcAy9rVMizxbPNNz3b3TEKdR?= =?us-ascii?Q?6UqZDcDgL+05Km5P0F08+3qQgMsnU8LLWwiqKz64vrKHgUVoQj9nKFpYqEuT?= =?us-ascii?Q?qKww3/oiR3Qu3DTr611gbTvtW5uoV5MOccesOMdqfsGwI9OBSFpRg8zIjepr?= =?us-ascii?Q?KdRB+1sMEwEXWdy7gZzhxaUP/u3lTAfHwuO5ocq0AlV9F03ywt8sicsPSPhO?= =?us-ascii?Q?/+jlcD+ECjQ4Wyzp9MJtdUpcfihw93xSainSkwpgnDIPpLoRxZbwYWGvxPQb?= =?us-ascii?Q?XFeSaNzRMEj9lUcGlDssnLcMhPqfdpmrWbjoo8uJD6AFcijgzaHaYBNypGPa?= =?us-ascii?Q?WN/eepGtyw2a497PzsT3q1QbMtK0vwrRH/sPh8Yi9uKe8D6CLs4G1kSCaSuy?= =?us-ascii?Q?CloS2lCJ4/OUAVcxBpJ3qizWzaPzZCvti+8evqpkLpIHOcn3JXgWRdXZlcqB?= =?us-ascii?Q?/1UNVXfSAnfGCVD6l5IUKSWVJTbvuM8AZDTDfAiN0KpG7O5ynuFoQanpWYzz?= =?us-ascii?Q?kmn9olkewfI6T9mwhy2M1kSujpj0WyVxo16snhzeuKBWqmspxCVssfsx1S90?= =?us-ascii?Q?d0DQvRLX9bgQ3mhnkyZZ+gzFMf6RL1SDqj5O+HGPaYo7wvi9C1NnJPtkdOGk?= =?us-ascii?Q?XKVhk+eYH3j00cfw2jcJXhYlT15joXcCzJm79nxeIQeHa4kSSGjO8soG7Uy5?= =?us-ascii?Q?uXQPQbLsQKmQwwwCF3r6lUKZfpl693NmAt8AVner4XZOfwYBoTjs6Lo4+8S0?= =?us-ascii?Q?mSmPk7qobrUQRMNUCWDvkf6keebjg+3TV9dHeqr1PZPeUR+LSNXo/tJtcKtr?= =?us-ascii?Q?jZfCopRA7kTT7Xik3sCLsBx2m2qGB1XKpOtPDNcnn2cK7KmTsVgtSu+JubbH?= =?us-ascii?Q?ibe+uO72AmjiYQPOSXHj7poatlg7NWYowc9GaSuguPENQM3xFyW4759BXVxQ?= =?us-ascii?Q?wUvgxqzs/QphUft06fs4RlU83UP6aers1gbgt+rojFoBD5Gk0SiITQknxTM9?= =?us-ascii?Q?E4IM01kI6uTD8kK4O3ck6nD19n429KQCItdw8xkwqozVP+69OhFe1qn0/l3B?= =?us-ascii?Q?gQkgRo70MlpLfqvUhG3B2pACNnKK4A8nqsC+Zb1GuRsuvgCQWw=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)(7416014)(376014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?jHBO+gcHjIoGO/2lWG2bfPgZm0Cv6QPW4iGmvp9VM8+W+0jxs6c67ykDN/Ih?= =?us-ascii?Q?4SlW/bSow6HxZnANgonoMsNu5ku44/XICbtMDUe6nyhszuIFYq9VynkqugZP?= =?us-ascii?Q?hxAcJRFjEMulYzSf0/57B665UlnRmSNqZp+Hh5rCuNgbtjvrrn2WsePUcJx4?= =?us-ascii?Q?sSD6/zb4KOJppRrynMT0IhT1sjMBLCEbm/1+dtvNnSerZIljSs5upBsG8jTh?= =?us-ascii?Q?L58d5aUleySdjfJKkrJ1116yPhSJoiVtK96EVkvvb94yoLKYwBsngUFQDzc6?= =?us-ascii?Q?fAcAJOnHTLYZTFJwt3qvZTtH50UjLF2W/Pi/1ZjehrxpoLbP9/w7g41zxpmF?= =?us-ascii?Q?eq3HQ9wBFru/YJFQAok4htaKpNo93xn0B4JF2PQNucxSXeYYgpo3y3+wdyn7?= =?us-ascii?Q?t94x4FJuG1xite89vLCryTpqd8xtSAkonOipUTRQfb6cDk1YoXsskG3GAtPg?= =?us-ascii?Q?Hg9PJRy8wVePwPElNkodsIEp97JNNRoU9igSANyL0hHWo6sHNiVdBNq/CA/6?= =?us-ascii?Q?Pq/nvnAkVglyX1/wUR4vihBttXSDO5dwk7eaKFK05e9Og468M6HOLYOZ6t9L?= =?us-ascii?Q?k7o4f87qS4738xu/+Pw5Cyr4Fy7pqM62QEfhgdPRju5rnolv7kvP9ERXAUo1?= =?us-ascii?Q?N34XfQ43sfzVyv2dsyHTo4S2hL5coQNivQmHes3Az+2sZhsycD+fSWCxohgy?= =?us-ascii?Q?TKwSGY/8GeW8M8p9Bwjpqbpzm3X41W/MCaZ4hYFLmP+PspdBTMV1Dy4gt0Tj?= =?us-ascii?Q?wppGZm86tvJUfOhVuVABEG5WQdhvoe5kc6YWQUeXc6XnOdKflYAtuI9wlXSe?= =?us-ascii?Q?Kfl+HZe+SG6uFzCVOREMms2NoW+18VAQiQdUsUYilHj0TSmDdJvsQTc+RGLM?= =?us-ascii?Q?o1gcSujiYMudOnIhxvT3aHHSv++HcbKRx/tWHAcbFsZM164PFz6gZZ1f9Uz6?= =?us-ascii?Q?+8FWNdA6GFM3RvZ/KZVuIZWcqOB/0APXaOb41mvQirrzf+qwoTKK7tsPK0hC?= =?us-ascii?Q?GP1qgg139ZjA1hLcCzB94iknLqRLMIPswRSn/B1a+Zr5JhmhFsFGIsKDeM8D?= =?us-ascii?Q?qU61eosKMIrwwetQmIwAQK9vC4DDdekk94H0EnDAYSOCZG0hpXpTarJj44sj?= =?us-ascii?Q?jlDwFvxmcQniixhWM0GHYky0YyjVspjfwZbUXJOAURM1Y3MKGhWMRK/AKZf4?= =?us-ascii?Q?6Sz5zpFCzJa35AXZ61+eP5hGncaY0B922aOPOfn7JJwNMYwygU3gqesjtyyl?= =?us-ascii?Q?qwR8EBykOt40zcoJmj0HSE+ROVk/6qWrQyc2IbXmwW+MCqP8lgezvmFaXISS?= =?us-ascii?Q?9+AnVTPfMlWhWqa0U3/MpiVdf5DdExURzihdrK3jc32eFOYyODqMSqCu1okp?= =?us-ascii?Q?4UbaMyrDY5BuhltsYcnlksOb6czlhSmAQabmmDNarduNGRXDYu+23Ei4LG9O?= =?us-ascii?Q?rP+2WL6NQV3UXcWnwBy6bjiPk/SOob/ZRmIo2Da8ArEfurdmY2cguXHhhFsi?= =?us-ascii?Q?oJK5XZAE+JNKEObk4YRHjIF6+s1PuGR5qyAlfKB7EPZmmRya5lZxAmnC6J7h?= =?us-ascii?Q?UX0K0kjOLPVMo77w/fnMRmu+KG8jjNoyBj+TUnFAkhy9TKuc7UPNP94H/QGC?= =?us-ascii?Q?kg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: SExQ6kPp7N2JPjvfIhY4381s5D7iOj7ayWjDcCOrUVkpGVFbtCBYE9zcVKMB0GHccfIwYt/JSFtzZMEKBC0lTy2GVHe4bx4CM/3rHLdmc7C9rXSoJP+B9r6yjPcyVmMfTmDs/zRE83jB2ExYI8MoNNOCq3yOLnWyxs5eg88ApuRjwa2ooIsOgJ+NqnNzz9qWHdyBkP1gnanM8nFxAT15MW2MBzGP8qRN5nRFMkDGLhcYORy4EKkqWspRwaWkQj1dpK5IyvV1o8VDIsp8wUiTr16y0QDpLsT+NfxWNSy9MDihZ0jMJu/IiEGv1OrgQZBpo/nWaM7g5lE3DlYyenWLXO9MrDtggFdJ3uZqDufUneV3XYm8p4efXS6HrOyy3o+kaWrOGjpZdgatL5j/bwf0NmBO9PVtXNS82k2wTCZDtFci6VP1tzPKSqZnIDC6b+khq4KSmoFzdu1HtkxuOFrsYuzYOdzbErGwtmtA6pA2QhJeYz1mmxVBV1YqA7mH/31GogDa58WMS+pbDZlxLDjG9uE/ycEgbySWLyxPsYwdN9FfGtei0WMP42/XvatvXuk3DJdBBCHOhq26erbucA23efLCKsAmor7BnGtKCeBAJ4E= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 955aceef-cbc1-4d03-cb0a-08ddf5fe497b X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 15:24:26.1014 (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: 0MaOOyRLhlXSiTrWsKAaS6J7YAY7iu9FfCNWTj8AqpZA0yfDT5Qb4NB5sHw5mDDAp0uR+/8BKkU26lb1u4FfhdMbAhj9s589etDLoZbKHOU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6287 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170150 X-Proofpoint-ORIG-GUID: u92PKdB_wlvHFgxYftfv13BjTJwiS0dn X-Proofpoint-GUID: u92PKdB_wlvHFgxYftfv13BjTJwiS0dn X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX/3UGkZqz16jx RIUQtl6xY0I1aj2Ekk/En8kbSGMvDOOTytgDkE2zNC4frlWQwcOV5OUD2wAwXtLVRyAyMaZjANV UBdKa4RGbX2O1fhiDgxBOdsnwM7LPeEaS/Tq9Zwq31JwMvgf+8KiS9XyonBPUxRI+B04qnXvJ8U hXRmJWu+kGcXLE70nDZ6D07fn2i0MuD6brmjJ+ygt/ovwdbbIsUBeJeVon5LbmNLPOAPpZUa83g kZCVimdeokDn1+vdJ4ezvWsgHRRadj2pL88dQ8kXCcHXFM/9vXx+gQ1ycVtT5jyTsJpb6grh+Ko LMvXwye45/5V0YpCoANDU9wTYnBqAxU3jNhL0GdewbqObRA83VY37jtIcDkrFr6D9jZGFD8NQM4 7025scP7pol/nVpBe8CRPJPDBtVDKg== X-Authority-Analysis: v=2.4 cv=N/QpF39B c=1 sm=1 tr=0 ts=68cad2ae b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=VwQbUJbxAAAA:8 a=yPCof4ZbAAAA:8 a=_WLpKjk4XQ775Vi3V00A:9 cc=ntf awl=host:12084 Content-Type: text/plain; charset="utf-8" Move benchmark function parameters in struct bench_params. Reviewed-by: Namhyung Kim Signed-off-by: Ankur Arora Tested-by: Raghavendra K T --- tools/perf/bench/mem-functions.c | 62 +++++++++++++++++--------------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/tools/perf/bench/mem-functions.c b/tools/perf/bench/mem-functi= ons.c index fddb2acd2d3a..4d723774c1b3 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,18 @@ 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 * nr_loops; + p.nr_loops =3D nr_loops; + p.size =3D (size_t)perf_atoll((char *)size_str); =20 - if ((s64)size <=3D 0) { + if ((s64)p.size <=3D 0) { fprintf(stderr, "Invalid size:%s\n", size_str); return 1; } + p.size_total =3D 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 +248,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 +265,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 +312,21 @@ int bench_mem_memcpy(int argc, const char **argv) return bench_mem_common(argc, argv, &info); } =20 -static union bench_clock do_memset(const struct function *r, size_t size, +static union bench_clock do_memset(const struct function *r, struct bench_= params *p, void *src __maybe_unused, void *dst) { union bench_clock start, end; memset_t fn =3D r->fn.memset; - int i; =20 /* * We prefault the freshly allocated memory range here, * to not measure page fault overhead: */ - fn(dst, -1, size); + fn(dst, -1, p->size); =20 clock_get(&start); - for (i =3D 0; i < nr_loops; ++i) - fn(dst, i, size); + for (unsigned int i =3D 0; i < p->nr_loops; ++i) + fn(dst, i, p->size); clock_get(&end); =20 return clock_diff(&start, &end); --=20 2.43.5 From nobody Thu Oct 2 10:39:57 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 44B41335950 for ; Wed, 17 Sep 2025 15:25:19 +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=1758122722; cv=fail; b=NpLTbUtByn2pY0o39/gPdvnoU0rCiqTVOKpzdnbe0gdfCN1WNhXGe2CAm3fllC/4g/p1frlw3BQ5mqsiQbmftOWimW7TsUylBoJa/eGE5prTp2zCl+oVNg25k32EcmoNWVUOgzaYQdpUGdU/SXgOPXXUQ8IODWzb3bilDIRUI8o= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758122722; c=relaxed/simple; bh=fn0rVDO0OOPo9v2Sygllwt5IDvXMo0ROaj/AwdLjsVA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Ye+SHs3T0B3Ho1q5gImmTkBZtgNjymjDRj8kNawzICM05qw8v/vZTausEMGtSkjztm0Sznk8zE/JtFhiA4vNWlXN1lpoR0OgdWadgan17OiUZ8dZktH4OSIcjPYfNhW+E/1hYoU0JC7hNtZ07MdKeJHcA/av4m8l3BubLbUGk0c= 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=M4FGn5+J; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=CfTZtHFr; 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="M4FGn5+J"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="CfTZtHFr" 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 58HEIUaT010081; Wed, 17 Sep 2025 15:24:57 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=H94hzrLgDFzTbnNX7Sd2sPIp2kLvA6ISz/2TMXePgZE=; b= M4FGn5+JY8WAkqUm7zPSz3Pvzty515QUtz5iT8MgwAj01h8xguPM+OvBrvzE7eVy M1W4LjbAG7Os0u8WUHKVZqVn7gDRKFE2ogmeP5PMZwf30NCkB7he82Bc2VpQP53m Gm/eFWBRcT9Kekv+7xcsyTrlmPLZotQj/MnAI7kTWuXJyKz3l7jUfYc3x+dZU1vk YhhpLIztaBHGmFh6+b8AGdvETkhoC2ZD4EflQrVBR1nyWdQYX3NZlNbOMbFN7WYU UqpCZPkmnMmNJBJpjMW7qP9+9VhsmEyWxjd9ZpesX4dC5RFy+vg3oaz/szNd0GqO z00kH3Jhf9ioOrwllxmPfA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx6hhdg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:57 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEnin7036777; Wed, 17 Sep 2025 15:24:57 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010011.outbound.protection.outlook.com [52.101.46.11]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 494y2dxupy-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TgwwX0QT2hMTy2i2b93stAGd2VK2YQHL+se2RJJHx/Muh+kf4eGKOkBxLIsayYvcD3QMPy79RFx6Kxl/mdVx4zrpZ5mAss8mtzeDf8wSZwtoC0obBxKM3iNmkk/6Tir9WS3UKx5xCYNTWn4bNZCivQgtPyrl31kCrhThqQeewdjIGjp7Ok1ssXc1ZjDRsmFg4OTjYYbMCXHrrvYKXu6VqbpvIPxpPAckpEKWgiz+ZalycDO1nQ1qilWe8cf5rq2b8JMAGzYZckxsvR8eZTjqiX2o2yaVbcN5Gv9jHJKLQ/5BxfKEiAnud19ycOH5IV3F0iZloibvVMoKLCozBjnxfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=H94hzrLgDFzTbnNX7Sd2sPIp2kLvA6ISz/2TMXePgZE=; b=tnxQ0AXaXMjUjmC//iK7l4aMq28yGzmQ2YrjvslrVUzJ5Mp9reNOSEgjh62UuiCFFrX06LY4BwDXICWKMjNb8MdeRKn0SwapkxMFrEWLK/O/HXJNYdIPtE89M+UxcZ9oVxE/CnTUZg8g1X2/c1htjs8IGA+8D1YNxbdQLAsP80vgLOz8GuZcZUFGThuI7dbyVp4bwhtFcZ8ZzpXkMpiPLso1OtLnB6ZRZCm8fClSLYFIJgeQgM117DyNVvkXgAq8yI99Ybs/j+op14eXRYcBFbSvXsySD0rMmiijHe5eyQlm0jGIQmWceRW7Cd7c0oIn9TTGF8EPq0yH/WUCBHW6jg== 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=H94hzrLgDFzTbnNX7Sd2sPIp2kLvA6ISz/2TMXePgZE=; b=CfTZtHFrwHuUmTKYSUamIRJNO2NyuutN7y3o0uvUfWV4ZziMaThrD/JaNtv6qnclF0hGBby2MeRTWx0lcT542/bzYsnJ9AjRMLgCbN1i3t4rx2M1h9XqcgwxDbYtSaefaW4pl5EaMAI2CXoJhrG+908AR1Gv/l0u9G25LUQ0hec= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS7PR10MB4942.namprd10.prod.outlook.com (2603:10b6:5:3ab::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.13; Wed, 17 Sep 2025 15:24:27 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9115.020; Wed, 17 Sep 2025 15:24:27 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v7 04/16] perf bench mem: Pull out init/fini logic Date: Wed, 17 Sep 2025 08:24:06 -0700 Message-Id: <20250917152418.4077386-5-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250917152418.4077386-1-ankur.a.arora@oracle.com> References: <20250917152418.4077386-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0214.namprd04.prod.outlook.com (2603:10b6:303:87::9) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|DS7PR10MB4942:EE_ X-MS-Office365-Filtering-Correlation-Id: 96d3755a-05cf-473a-bf54-08ddf5fe4a1f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?bVnQWxspjveyIHDSsHUA35f1aIPad+hwyWdKxSWGmqOyrPrqlxRgTosZSIfH?= =?us-ascii?Q?8pv5lN3IkCzErEwd6jW5ggcfOO1qpB1apF6nJUilyi5YT6KhO50j5xy4EV/U?= =?us-ascii?Q?2vcn6F9V3zpe5jYrOwQOhv98XuDCb7QIAYR+zxot9j/Ka7mRz/I2VO6O+I7h?= =?us-ascii?Q?yf9Ze/MXtB/5w2QzJLfNL5Wsk3K6WY9Ep6uQKQQFFvocup5QuaYsac7Ff0C0?= =?us-ascii?Q?Fx/mK4ac1ue2IofJY3UeefjR9/lvqlB2qSSBbHglgFYWgYplEG0rRA+RC3MJ?= =?us-ascii?Q?n23E9D1cUKHV2Q8GGznuFHqd7DKMdFqXjcnVWxGH9+WEzcXz1GOJ8u5SZ1TA?= =?us-ascii?Q?48ZTCWsz0mtMOgXhSxk4y+yg22/SvxjjLHtQUYgGn7IK6W0IjjmFQ0Y9AJao?= =?us-ascii?Q?W9ED1zRKfBMMCI5JbU2tbBsUZqLYDb5ZhjzpIh1TduRzHoe+xhdDnAgTNohZ?= =?us-ascii?Q?LTN9T32IEHnqQBnmWY7195lnFlpny38eXWziOlBxxoIhGFktGNeFgM84lCH9?= =?us-ascii?Q?oi/Vd++w399WlR76+hRMAIxuAjNKhvT/a+3clCatZq/zShP9vkJbjAAVNewF?= =?us-ascii?Q?wiCTElL7JpDdC0sjL4m56ywTWFO0EG9oQL48TPkCWICl6eUj8hHN03Wy0Z3t?= =?us-ascii?Q?0YdREkLuKn2CYE6kqFc/C6BkB2YZZgrOfMqHbqdNc0n+tLDQTZfP80dJlHuj?= =?us-ascii?Q?B7x/ImnP3yfI+14u7r239qhNxcyJyu7i0tPbeaXmtKQeNDZetXCmuyXpkeoX?= =?us-ascii?Q?4iM/R8ff5oaOuftNHjU467Irt3N0CiDu/KtL65jkWG8yeqEdRV6an80h2HN2?= =?us-ascii?Q?c4NLMv424jXDuF9j5VmjD4LtZD8sNMeR7k/cOp6JVUrYJaxzJctQL4/50RDq?= =?us-ascii?Q?0tG4C/uP4UXq45M3PIxu9ktK13gvCLsn/VCzlHcbisVNOs1Wf/5FiujSeXUm?= =?us-ascii?Q?n+9dPybPLKU9WYVJLNIhs1iOIY5YMMDYapgvJ0bo6eq8erLIg0ULXgHnghIp?= =?us-ascii?Q?kJfAWBgGjXjMNobdO30U0nuRoVyK1EuXsl5dy4GlfX5aFE7wITgxbu7a3i0m?= =?us-ascii?Q?rR6ot0dRUAorBcQps4WLuTQ6bMnbd+MY4WoWZEXtx2Wfk4l32co7s50PUewL?= =?us-ascii?Q?uFfbNAG00xDuL9lWTSWe2E3JV3N8HjkGQtgGOjXRJN+fqC9zmRNzi1MlrTJ/?= =?us-ascii?Q?RmGr4srgFdbPHx6EHC5qVfzL7H7nZwRnjeXrRunjEUDWjI6q94SLbHz5oDZ1?= =?us-ascii?Q?TlOl4iSmUhpHuF3rGu6nR4HHWGLBpUrh1Jy3yFx3mJZZHm7ESSZ2Lun+EqSH?= =?us-ascii?Q?EFNz/e24xqkxulrlVeLI0vnMUoOkAU0QTyPWbL8K1Q0J/kaLX1vy5Fw8ez98?= =?us-ascii?Q?jW+iUTCSdfAcpbWjcLOHIvl2yu/lIEWFidiNnJsbZxqnxDm8hnNxMsSRuazi?= =?us-ascii?Q?CTEUbiNnBS0=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?F+7mkahNu7ZpREVoJ8oVaGqTJMlIrBWWlMbXAWv20j8DA6JQKaHKJwgkD208?= =?us-ascii?Q?MDDG11EfJKfQaG/tJgrMfsynAQ4DkXNOLybI2D1ZlhL262F2g25QpVyLq5GR?= =?us-ascii?Q?s8zztDwC5uSefPqiSe2NovBY97gGPOSLJfMzTZH5vbd91sLX2T3d6avqXWph?= =?us-ascii?Q?a44kRHkIfdEpml4ch+2/He/JwRaZxF/vRvF1IekzlUfCDUvMz18PmmeWpagO?= =?us-ascii?Q?6JCqEuZNSSOrokfKq/tPnt5Dtbdtx7TP6izjwn44KOOfXh+pWj0hSoO7CFBT?= =?us-ascii?Q?WU7HQnfo8ZNOO+JsIvGc/vgzXJdfTQHJvcaJe9jk/W2R5ZPxBRFO5LPbGKdd?= =?us-ascii?Q?vuxTDjKsHaYgq65MCLETzOzMyOBfrd6Oxzu9U7itou2OoBUdil+Gni/U3Tq2?= =?us-ascii?Q?sta4exvJ5OkQKww5ryzDGTBa6RDpRgHIjOcxQm4hURqmWq69drL95tqTA6kk?= =?us-ascii?Q?ERmuPzHEYgJzAs71/QOl4shR6K0LIDtgUg22fwTzR6HiEaELwmyh+qmUpGPN?= =?us-ascii?Q?xc3FlFAde+T4AqVY8Mmj5AZita7F+2sNHv6cwKitklX3kb/Yy+YYPPHo+EiG?= =?us-ascii?Q?SRK8D68LzF2nu5D+2zYrwhjeTbGwgdOEJhm8l70B1LCDH50rZNtFjPbVug7q?= =?us-ascii?Q?zgEB3OHYCs9NAKsoSiQv5FJ70/qhg6BOAZnPUhmPUYMumSFlOuK7kJaG5X29?= =?us-ascii?Q?+O02r/SdP88gpBF3fgihJ5tXSwmgoPzT7ma9EcUU52L/CNfgarOu+TYut460?= =?us-ascii?Q?JFykkG4R6GBz7BCrWO29qhwYNFpkz26ktG2jQj/1OuaoUc1zzaEvnGK/g1kL?= =?us-ascii?Q?+CM12buu3skDxpOmbtItcddhguIuXUxJ+FlPweb4KV47U9fSA+afQKeh6Iw9?= =?us-ascii?Q?pMdE5AVU3sr8tJ7SuJf90zMFQOIDZuATt4gpu1rDlHYx1D2GZ5Hlp+5+QqLq?= =?us-ascii?Q?HO2ykbseWQ5Z91beguT1vYkjA29F5f6OULTnVizGXOKIxGdXU/aF0QYBhdUt?= =?us-ascii?Q?sovM+7GJrCrFDaN49wCiGsGnKYxfmRQ+AJqdKo/2LersD0SoY4CMwXF+4/iA?= =?us-ascii?Q?DsB/wDYPzOvHsGPdqgVrT4rZxKmu2JUeyMNvbXc5Kfxb6EW64umUSRm9a/o8?= =?us-ascii?Q?Qcpsb7iqfsinBtOldZEpfU3J8SrQw+9mMUcRWbFDeV6UojCMP1PJaNs2q51W?= =?us-ascii?Q?qqVmUWWk1U7be/IGbYThUWq9l4k5WFTVccoJiWbi1zQjj+b1SgWSX8xwDOja?= =?us-ascii?Q?tkcccBCA7rK8HFsONYm3L/dl6zOv60oAq8HugBLQmbNcRFqfGpbsj11yEuVE?= =?us-ascii?Q?k3lSGmvpmF3Wcl3aebcQ5ZTUR+E/K3liXHz8PCFl6Jm/PutkCQabT14AQ/wk?= =?us-ascii?Q?GpPAvSK9afPqUBjF9YCZMTPwavluApNgc2biroWZA6R5RD05iNnQG0jtWJDK?= =?us-ascii?Q?e6UePN03MSgadv6Ur5qVg/28eMP4ug9HbtyOvfe3zkNgxvCV69TJRIOoVlEA?= =?us-ascii?Q?UzwRbiV6PUMiufArnHmKCRhuiaZ0HXAnZToGy6bnW7eh95ZikkgbwmIAzbz3?= =?us-ascii?Q?yrefbWo3NKRVKORtEXGZVI0c+EA8DixHfz2k4XcnN1KupVVn2A4+FxTIGBBR?= =?us-ascii?Q?SA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: C/zgyuP6HVWTSjnBZUqGAU4jsrG1sK8sXDXL4Ac3gd3MB4E4EtrTSxouhR6Tmu6jk5AHsMXqSDW3deJmIJLQ3/dPSqScplZEdcFW7oCL5tBA397cheeAHE+YCqlwp9Q7W4EKWQUDkkDK+U2623i1w8raEJbFpPnRgDl8VPliKGx4i7yzi4W8AsCbeCZsyAnQmK4Dq9pPVP77YBpdwOEKmyrsM2l3XXVmb/bYpVBUjc2gFWW+NmPezo+xMKqgy2ydSgxqGqzn/DsOKFXoctlxTH1put+LEklvtd5XpwijvTu+7QukSk0ywCdxDkusbUDpcOwR5CKEPAZa6xSSzMNuMfbcaLUDS4rfLmsOWGiLzmQxFIgZpduzGJ3bBapgu7hIt3pooahz+T4BFYt/rvxcUXU9lShX40onlQp7QBR4320Aq57b54NNeHlcWjYQrhSt64bhJSa/gqOjX/XmLg2p1phGjNa9sOO3BbUsOGcsmBb3WpCg65RUywEKaWWUC6qgNx2crQGupGs1zmLSpz2wt3l5HxyPpCUXxpSUaER6rO4U4JEiMjG0rviPgNZsvJmepWX1ZYUOHoro/fD1uC0DprpdKJdIkV4J62QXR2cmeWs= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 96d3755a-05cf-473a-bf54-08ddf5fe4a1f X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 15:24:27.2008 (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: W+hDZ0SU7iQyOR9217IsUFkIsLkBUwowFM8MK1zJQWBdEvQgUSwVn2rPLV76KdW1zfUi/dUPG1m9uA34tUxp0iuiRXu06TGrYmRwjojBrVs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB4942 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170150 X-Authority-Analysis: v=2.4 cv=TqbmhCXh c=1 sm=1 tr=0 ts=68cad2c9 b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=VwQbUJbxAAAA:8 a=yPCof4ZbAAAA:8 a=TbKJQeBsitzCtKh9844A:9 cc=ntf awl=host:12084 X-Proofpoint-GUID: INiUt_mF4f2dPZQHK1_4by0AD2Gcg4Rn X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX3wvgKmwafwUT NIPIAsCVTsyjFrvGjsuuY7u+ZTiFz7fPg6SlPqJpLWwm3cZreDxMpuGmhJj1eA2oW+Legz+p8b2 k/sjq1azF14ZM5aqzNfcFqDSq+KSt25Q+OfwX6OzWOs6494I+0JecUCElWt4lA7S+WWJ0JaDAV6 adZ8mLqa9dQxDbj1BBKEFfBxb0LwRRQ2aPzue0diMufFvauZRE6sCg3Kf+ZQ6FT1ihx9YWgd4Gr n6kZSEahPbWZ7u7eHw+EhuGOMQlK595cFQ2Yfy7SXHu7qMJbfdRG/Lon5UkjEx2yzfXUu77lo1j 2DCMyTsURsaiLByQpbJq0/MzipcRgiZn0d6HKVeNm6S3M/HngnoHQ9+8XJ5b4boZJHj3+GAMUN4 I/ZgljIDHWEg0h1yG7Vq6TVQu4DRWg== X-Proofpoint-ORIG-GUID: INiUt_mF4f2dPZQHK1_4by0AD2Gcg4Rn Content-Type: text/plain; charset="utf-8" No functional change. Reviewed-by: Namhyung Kim Signed-off-by: Ankur Arora Tested-by: Raghavendra K T --- 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 4d723774c1b3..60ea20277507 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; } @@ -265,8 +268,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; @@ -278,16 +281,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 @@ -312,8 +346,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; @@ -329,7 +363,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 { @@ -340,10 +376,13 @@ static const char * const bench_mem_memset_usage[] = =3D { static const struct function memset_functions[] =3D { { .name =3D "default", .desc =3D "Default memset() provided by glibc", + .fn.init =3D mem_alloc, + .fn.fini =3D mem_free, .fn.memset =3D memset }, =20 #ifdef HAVE_ARCH_X86_64_SUPPORT -# define MEMSET_FN(_fn, _name, _desc) { .name =3D _name, .desc =3D _desc, = .fn.memset =3D _fn }, +# define MEMSET_FN(_fn, _init, _fini, _name, _desc) \ + {.name =3D _name, .desc =3D _desc, .fn.memset =3D _fn, .fn.init =3D _init= , .fn.fini =3D _fini }, # include "mem-memset-x86-64-asm-def.h" # undef MEMSET_FN #endif diff --git a/tools/perf/bench/mem-memcpy-arch.h b/tools/perf/bench/mem-memc= py-arch.h index 5bcaec5601a8..852e48cfd8fe 100644 --- a/tools/perf/bench/mem-memcpy-arch.h +++ b/tools/perf/bench/mem-memcpy-arch.h @@ -2,7 +2,7 @@ =20 #ifdef HAVE_ARCH_X86_64_SUPPORT =20 -#define MEMCPY_FN(fn, name, desc) \ +#define MEMCPY_FN(fn, init, fini, name, desc) \ void *fn(void *, const void *, size_t); =20 #include "mem-memcpy-x86-64-asm-def.h" diff --git a/tools/perf/bench/mem-memcpy-x86-64-asm-def.h b/tools/perf/benc= h/mem-memcpy-x86-64-asm-def.h index 6188e19d3129..f43038f4448b 100644 --- a/tools/perf/bench/mem-memcpy-x86-64-asm-def.h +++ b/tools/perf/bench/mem-memcpy-x86-64-asm-def.h @@ -1,9 +1,13 @@ /* SPDX-License-Identifier: GPL-2.0 */ =20 MEMCPY_FN(memcpy_orig, + mem_alloc, + mem_free, "x86-64-unrolled", "unrolled memcpy() in arch/x86/lib/memcpy_64.S") =20 MEMCPY_FN(__memcpy, + mem_alloc, + mem_free, "x86-64-movsq", "movsq-based memcpy() in arch/x86/lib/memcpy_64.S") diff --git a/tools/perf/bench/mem-memset-arch.h b/tools/perf/bench/mem-mems= et-arch.h index 53f45482663f..278c5da12d63 100644 --- a/tools/perf/bench/mem-memset-arch.h +++ b/tools/perf/bench/mem-memset-arch.h @@ -2,7 +2,7 @@ =20 #ifdef HAVE_ARCH_X86_64_SUPPORT =20 -#define MEMSET_FN(fn, name, desc) \ +#define MEMSET_FN(fn, init, fini, name, desc) \ void *fn(void *, int, size_t); =20 #include "mem-memset-x86-64-asm-def.h" diff --git a/tools/perf/bench/mem-memset-x86-64-asm-def.h b/tools/perf/benc= h/mem-memset-x86-64-asm-def.h index 247c72fdfb9d..80ad1b7ea770 100644 --- a/tools/perf/bench/mem-memset-x86-64-asm-def.h +++ b/tools/perf/bench/mem-memset-x86-64-asm-def.h @@ -1,9 +1,13 @@ /* SPDX-License-Identifier: GPL-2.0 */ =20 MEMSET_FN(memset_orig, + mem_alloc, + mem_free, "x86-64-unrolled", "unrolled memset() in arch/x86/lib/memset_64.S") =20 MEMSET_FN(__memset, + mem_alloc, + mem_free, "x86-64-stosq", "movsq-based memset() in arch/x86/lib/memset_64.S") --=20 2.43.5 From nobody Thu Oct 2 10:39:57 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 0B4543397F6 for ; Wed, 17 Sep 2025 15:25: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=1758122733; cv=fail; b=U+0CrueYIOpgcw2Bb9BrKofDDo89rEf/lCq+hmucxKZm78GQWO7B0LWFYScShve6gHcBOZphJ6jXfCJMe59pG6wue76CiGjoG9OAkSacItUumVFTyNMgvs0732QZmHCzUokzVyrjV+OOM1n+j8Pnpn9nqxzD6KEssk9YDaFM8yg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758122733; c=relaxed/simple; bh=hBIbpthEzmVjzpN7gCGzsvjpIzTNAkHNAyar1ZXkZPQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=XKPYGP6L8mvHzAFDdUpZuHVznDsNpKq2HlVrUf4+EDKeafExwpJhlLrPLzgQgWZ4QDieCPoECwS4Y+682+YitTG2ZyYkoE5hxQ0odgeFhxgBdRVfh7zPeJZBOYDouLPvQe6/U2/a1YcR1/t6OaTxlZBcnYOMDgsSBQdFAhBEeE0= 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=GkjsqUdR; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=dsV8vprg; 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="GkjsqUdR"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="dsV8vprg" 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 58HEIUGq010043; Wed, 17 Sep 2025 15:24:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=/Fc4HClGuvBvHZBqr9iXzuPs8SLdHBDBTi+dHyVBt+o=; b= GkjsqUdRZm9b3z0ebGo/FdZ2AXIGw+dLRQCXmKfI51HDBZSjvwCJugbWCftivAtJ xYqEprvDMTYwbiV0YoW/aj7rOnTw6VFsBbAIKWm7AkWj9BlvP/Hnt1KPj9A5J6Y2 QxWL8Db6irhl75r+B3GJJ6RFDXY/9Zsjl3FncTE/FDPgPAkOV7YcRwZ6wq0ox2Xn q3gBHdzd5iz2cfXCo8kGUI84RYWlh1jhr3/jshVIHyi1Vw99PNS0G2O5eS6iF7U1 fAMHhewEnXZPcW8k7Kb3FQjULKHQN+SnDnFG1tQrRZswnvBQn1kKz+QziMzDwlzg a6t4assypgZy8XSdwCDfBg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx6hhbx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:33 +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 58HF9RN0028825; Wed, 17 Sep 2025 15:24:32 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azon11010030.outbound.protection.outlook.com [52.101.56.30]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 494y2dw9b8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lDWMmk1hxV2cILB4+D+7rLrlEPj+NSIRMUDeazX5Md0MtiHe44CPZODOdNmLVdbeNOQafF7y7emkinSdAh623OKljS7ZpW+5naggiAuMi21CSvUVl2OHFKKnC8HJ930ooXZg5/qAvAvsgWgkK6jwi9bDoIXvvOE3rcaZkmKzGaI2a4r0la9773vNFm4cknJ08TUCIsHVPbTwmpHnvuKWwwlWmS9svlMXxlhPX4uC2YKd4apbJU5a+Cigr3B39wC+Q84QaPE8Z4hyX0akh7Ft1uLu5YndHtiY7QKJBXwghX7RfyDKXtot1MfC/bCXkTasf5PUc9wq//Q7beM3x58fvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/Fc4HClGuvBvHZBqr9iXzuPs8SLdHBDBTi+dHyVBt+o=; b=ddBwLCMD+xDRDNTcxsmd2HirvwLLmS9gPguSs4pamXa63QfCxwIXhg8WwXmLGk0SuyL6SsHhns0sMmD/wlcXhjfqmOstKt+XPXlp92pDfmd07bDIWqJZ5HpgYR170YkuRfN3rCfi4eCFCzGdPAFK2KGzYMdHYescuNqAZrU+vLgsAZKNHNvD5Axn6ksHSg/wQqr6rapXWHHpaSElsFEz4UCINtQ7gzK0NF/UC3zpntaVaBEeqriWjl7STB56xFLBToqKlc2hzkhRbuk2Olj2xWS6gS6Dc72pZI6FIxGeoDUJbPVWhZodi3khVEDorJjf6LYoxEX1cLsgjhfOFDiMVA== 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=/Fc4HClGuvBvHZBqr9iXzuPs8SLdHBDBTi+dHyVBt+o=; b=dsV8vprgp6pKCnB7YbUwudohJvR0ieoL9v3v6DWaVfthbWi9OvobzRDDtPGyaHT9UrA9lPnPEuqO2YgtsN4fADKtw/LhlOwXvlZ6WqN3XeLweFvmi7ze0HWXE3eT53DiEp/cxYqXLkXLhGBUTC80/29n3x0/F78W5RN97VZfEL8= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SJ5PPFD020A49E6.namprd10.prod.outlook.com (2603:10b6:a0f:fc02::7d0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.21; Wed, 17 Sep 2025 15:24:29 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9115.020; Wed, 17 Sep 2025 15:24:28 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v7 05/16] perf bench mem: Switch from zalloc() to mmap() Date: Wed, 17 Sep 2025 08:24:07 -0700 Message-Id: <20250917152418.4077386-6-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250917152418.4077386-1-ankur.a.arora@oracle.com> References: <20250917152418.4077386-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0212.namprd04.prod.outlook.com (2603:10b6:303:87::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_|SJ5PPFD020A49E6:EE_ X-MS-Office365-Filtering-Correlation-Id: a9a620c3-0eb9-4d77-46d3-08ddf5fe4ab6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?mmIuJiRtj49rgJ9xSYZRlstaJG5R6Y4UpMW1SsIa4+YLpAaWVOIb7ceGwfeP?= =?us-ascii?Q?zZEO4wxlulLYZi18yuoClX1nmNChmnpVjUa7DOfYyarr3EmheGhvnE6/gSzA?= =?us-ascii?Q?vrZ0Hy0v6unsFrkX18CCNrZ/rINsv1ZyHPoz2h43I1RvwMI/ziKcvgHUiN4U?= =?us-ascii?Q?Z2q/Q+qUcIGmcDfCI+WJmKgKtN4gzgJR0GFJ1p/qhtjvO6SWmQh0Q3lnSDnr?= =?us-ascii?Q?jVwjLhr8yBWVZhUGpySAOZMnpS9hwghY+o91/A+fa9UZ9CNi3qv1xYi5+jcI?= =?us-ascii?Q?Bwbfe37/T91Q9PzEcVDmmoyQqXrWe3Mav4eR0lk9ZBlPuw0YP+mkQFCYELEs?= =?us-ascii?Q?aruYT3TJ5uVpLhLT8Lo2STmCvHYPUSgJEH4wDADrLnSLT9K2AAkyu8NSd3JV?= =?us-ascii?Q?QjPwYDM1OccuGEjlaKPrv6tOkiqirrk0POqeiIsXs7ZV04zSd6KijAemZWS/?= =?us-ascii?Q?4nTxwfLiGKYdnEJwqqu8sFqYqnsQBNFCF0duqukvZWTY4E8+kbFxR1URmxvh?= =?us-ascii?Q?g9abrJRu26JLHUETcAg4aDzksUYikIAGn4kVf1b3rVVeJArb1aUU+Se510Az?= =?us-ascii?Q?XFzxpzTuI6w78/u5y3BFmJ5GHDcG3zLP9oQhoHl6hsZvLGd5RXJsu7Bm2SOO?= =?us-ascii?Q?0CDQJ3i3/pr87CL7uVkkJ/DzCQEAArn7kh2zkTmWk06/mPv6dqsuhZ5l9Sn5?= =?us-ascii?Q?ohoL1CC1rB5iVeqOCdqQCfN5Hxjwi05RQnyHrOX55GrDvlVXpBLLZH7kr9U7?= =?us-ascii?Q?YkyQHkErR8+iNSoI5cVmD0cotqaamc69NsBp29CoZcqGaVupVW2RqWUYUSC3?= =?us-ascii?Q?GkHoXT2ssS/UuMvRAjpSaq+Kn3kp3QvSllWdNUkjOQU+kx1g37k4lzArqfQJ?= =?us-ascii?Q?TH7O2WFxGnql7bBX9ItqKfHWtyyHzft2Lytj6k0TNRHGBL8N9vXCROtXZjuD?= =?us-ascii?Q?ZCEu03xpmI71VPALWlRht0wvgTMgHhRTGkFVuONxrm2Bkvx6xfkiZH7JHsi2?= =?us-ascii?Q?adxt3+uORG9xe1Tosl1QDNDOXtPp3lTVhUOOnHieCJQrDISzqeyjPXXaT+5K?= =?us-ascii?Q?aRMBg1Fg7BVJWBMLWFRTdxmvkyWOhqnEQWiNa3V1FpB2jSgQTiHPB/xwlE8I?= =?us-ascii?Q?WTgU7t0qgNpzEZ+0l0mKrb31bzztuIky+V5nyTrriktAfAHJlCUIGoAxyb+3?= =?us-ascii?Q?bW5uZ6z9/FzB6Jcr3B6TLQigfhHhtBUDKW07F4j/pDCOWBNLv6HmSjXX2m+q?= =?us-ascii?Q?l9tdH35vQl/N3fh/zjDAoPXIlYPTWW3k2/JJKUCzzGaGMX9ig4duVv2mmjl+?= =?us-ascii?Q?QPplSuO0JdF5IxTsYVzgd/YYGKG0FwpqZMP4sXwOKHuD3zy65wR8WMGkUn5P?= =?us-ascii?Q?XGiSF72lyqK7bwW8sue+n6eJnOYiLKqlYATvQ/wtPMi3StKO2a1ZniGUUqAY?= =?us-ascii?Q?98VL/871r6w=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?fTwdeNptl30HuarDBAUZ0ZunoxJ4ykb8E6sE+/vMD1H0iaN90SiromEp+2yr?= =?us-ascii?Q?7T77WW50ePq+KnzZgbBFYUq+j5+6KHKGMm40EN219oXNH64rTEYh2V/zFiAz?= =?us-ascii?Q?/7U0IbWbfMgfPhyyfud+Tpov3NZI9LD3B35A1QOjaRuM/sui4UzRqp+oqB4H?= =?us-ascii?Q?J5Kfyz3AIR3GfK6BpwCgDkpsWtJ6rZsgvo6jzHU20mJLMR0WTZZLRizupFTC?= =?us-ascii?Q?fvzJI3HpvCUeV1D5JrPCRk3qnniCpRje6HMz8z4+WXnUTRqtMOzf/KjBnQt1?= =?us-ascii?Q?hvf5A9nDcTCQP2PWP+rYhsEki+ZjtsE4GrvOjIcquAikIlLVNJExlE86bXSX?= =?us-ascii?Q?iG0SlIg0JN4n5eXt9a5zIVL3oQ2oaJsSKwtntmF5eE+Y+mpWrtm7WCvfufBH?= =?us-ascii?Q?0/dneewH3OsAifGDeZCg03GaP/ufOwX/wbmZpNd/KGLtbDUXYbqwaSSyI37U?= =?us-ascii?Q?DQOJ+jIPwm/dpNOsSzTmP5YI5OwHcpYBirnQ9BvNop8C6ngxYwHV1c2DaW1P?= =?us-ascii?Q?zSSRMsw+BNjFgJPsICH1T5vhfRMWuTHVTnvWykM1W5Fz4fx6+uRxG4X0ZDu3?= =?us-ascii?Q?KxJQTz/g2Lgfh+lhz2ljd1o1xD2o5/Hd9s5V4qiI3+7tEG4CvvspCzg3ri19?= =?us-ascii?Q?78dbTYtmYqiId9juimqDGoMo4++0QdF2Y3HND7ssoJxiWKAPvJmLOxx9ETpm?= =?us-ascii?Q?QlbmVEl0D5nwqCG0pGupxlVpZUl0rwXOVefxXkQaw3cXL5kWrZzhqYYFGYLd?= =?us-ascii?Q?T0Mc1RBrSU8BG8d2Ed7gLA++t79V1q6guUTxQr6tMwHln8UmmLzsNX65ef/T?= =?us-ascii?Q?QlF9yiNFfTstdEtx0J/cOieeh1Pw6axjsalaTxYr8BZVYuFyPCp5PJ2VFqpB?= =?us-ascii?Q?Tzla0uCqPsJq/Zj7U50x/foBLsbpC8Jl6/x19xRCMeTiI0iOmwcPOh1P0kD1?= =?us-ascii?Q?cpxwQeF60T1uVj0aAEzL304/bualzhzflOwi5X1Dh8kIazDmeVzhQRkeNbIJ?= =?us-ascii?Q?HxBFXNsa7eF+p27C4AbGS9E+5HkuY7/2a76qKROB8o5RRIMZ2dux8UrYcN5J?= =?us-ascii?Q?JUON/RFzUgbpXmtxyKKjVslTEAPynxyT4o7QKBKNX6ZCwFR20X6i50gpdkZa?= =?us-ascii?Q?9lxlie9W2QpNPA7CiUjQpLYN19ST4QJKNT3AyeH3kSe9QHr4qul3E0CC87N3?= =?us-ascii?Q?preXkSSXynL8nl6KVavcxE2evBWNeykP8hLVrIHxy7qUaFTPcvo4m/QqJIv8?= =?us-ascii?Q?LeYSigwdTiMEzcO1xLoTxX6aRE3R6w9BqVC8BUN1N7AyHzoDE2wzZmkoi8/3?= =?us-ascii?Q?usNUw9LphK15/RbTHiRtq9qCSIlvEeqcnThBZtZPh50bUUt48L6QcRssP8Yq?= =?us-ascii?Q?1xLbL+ofiPiR5wsUJCmOFh3KznqxZgijXknTP7Bt8ObLn7NZfNWZKduBHTJN?= =?us-ascii?Q?Pi3upyHa7YI5zC/VCebiACP77i17TbaeUQiNsMUsVpsHw3fQkYGLwxbQkmVG?= =?us-ascii?Q?nD+37fAFw7Kfqv+WsGq1HSqfSuyT/ZpMCdf66SlC05E2BgszTW+H547bQ3ZS?= =?us-ascii?Q?4Flffa4JW/teBkeReMKN1Jj4MGVl2/9B8vnGEMiaTVkEhcpoxMWqtWyDYMri?= =?us-ascii?Q?cg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: gFTXLo510j32RU01Wpb+DSXUltO55kz92Uo1v9YjIiPsmM0IQouIII/9xc2vrcPCLdqE9DcyvLzhVxatYnimX/Urmp8e26B1voiyzGxLOel6nWvjGAiYyHSxy3yzjRSvAZh+pcIth/NYfI6j9b5ABlLO7XL4v3Z/X7M3Nc3yqqurQ0hIYyEhu9j+A6WMnGKFE/zxBXuFtN3SxKHy+5CLCu+aSPyTHS+4m1e83ekzlq393qDRHlZV2HBCPD+i/0Upy6GTCSKLGAlKwCQOZCVcsKmFpQDg8pMFT3XVwn+xd/7H+Xv75dHrp9y+vozzcRmj5b+S38MUxvtEOiBoK5vD4iu91vde8w/JiZijKM7o2no7Yy1tsnEfHEdXf5L+yV6icewuwcOfaVPVY0hsOHcdsSTPYCssLPuajGQtYcZuxsYF7soXjCp2a56P7LncduT7RZ+WoKAvUJLZYQZg7mMR8428Zpfyh8hhwSsaHgbxPeCg+FGr1Qs+jSJtq1t0xQjAZeMjYIn00wecie4CAyCcccqABZjkIlLz6B32cTBP6pDiZKYZw113dG5y+oS3uaD24TC4wbT6h1rVp+ooOUi+ixpo7ayxs9vCtrtagrtnTBQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a9a620c3-0eb9-4d77-46d3-08ddf5fe4ab6 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 15:24:28.2049 (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: WvuvidYk0BRPZM0ctpU4/9eZOA/naBz6TUecpeP5olu/flLqAm268edXFNWzMiEiSD6UDG9ikzf9KzoiJNrL3C0bfQrz3nFIh2M9zVUaSLE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFD020A49E6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 spamscore=0 phishscore=0 bulkscore=0 mlxscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170150 X-Authority-Analysis: v=2.4 cv=TqbmhCXh c=1 sm=1 tr=0 ts=68cad2b1 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=VwQbUJbxAAAA:8 a=yPCof4ZbAAAA:8 a=X8XlAeXZIpgir3S8H8YA:9 X-Proofpoint-GUID: VWyjM9dGAmQutzAk4IBHpBwNH3aMVu6N X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX2Cqx7uRmwukb hpQ6XTho0GQpaAwMVJyPXZPK9WjtdYgRG0twh3VQWjy9LkTyekQ7r9pxj4kV71qWiCHe2v3bWoK tRPk14LVV714aNiRghPQQ2564Bc1ACTzDoAwKR6iN7Dg9VAB8P5yjIsgPsxzjSncRjE1QknA49j 5vFi31Vt1TdGjeZyOzveSA98DMlNIjMfCwpLTroHu6N19q7Ec1M1VFfTnn0PNvfOaNT/F6Tv42B qt/9Kx1x56/xn14mPjiuD6oX5BJfH5FLCfs5s+Cx0Ft56bdjoF/qV1rEArE6Pj7YISCoLfG3vwv Era42bL/C39NvccBf7ZyJoea5NZldZkogWmebhUdukF73DZmyMV8lYsGYTR+rSlfcxkoie0EudY /nEqK49n X-Proofpoint-ORIG-GUID: VWyjM9dGAmQutzAk4IBHpBwNH3aMVu6N 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 allocated buffers map with pagetables pre-populated. Reviewed-by: Namhyung Kim Signed-off-by: Ankur Arora Tested-by: Raghavendra K T --- 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 60ea20277507..e97962dd8f81 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 @@ -286,16 +286,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 @@ -306,8 +323,8 @@ static void mem_free(struct bench_mem_info *info __mayb= e_unused, struct bench_params *p __maybe_unused, void **src, void **dst) { - free(*dst); - free(*src); + bench_munmap(*dst, p->size); + bench_munmap(*src, p->size); =20 *dst =3D *src =3D NULL; } --=20 2.43.5 From nobody Thu Oct 2 10:39:57 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 8BFD633AE83 for ; Wed, 17 Sep 2025 15:25:23 +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=1758122725; cv=fail; b=JFEy+vjkuTVnNRiv8lBTplXAhXmThmDsDp5Qu1woswulFRvd0OwVYsjoGQWFuz8UHhFhZtumQTMiU9vzo09ot5ZOtYE4w6hF0QbfMKm2hvfYjqOM6vaT9Bhdv2d6/3DYp86nl/firJeWXO9skqUvIaanXN/QbVUcMtK+chqpRdI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758122725; c=relaxed/simple; bh=C9gGyPPyWIv+0iB5OBFf5pZQqz9LECm86ltUmpBqnzc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=OG0Zj9kPTd+HxXFFF2+dkEi5qGvm7SkJObC7Tj7ih8bJbpzNHYF+uFAznN2olzJ3b9QpsYvXVFiuR3oqMZw+qiR7EWICdhQXVXk2XmjScJgCXf7pOJT62S1Iz+D6Cm5A1Ta5FQbVxduWlt9jgvi/TK817OtLRDh5dVvJzi3PViY= 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=fiZd8mcy; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=0AgBrpI5; 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="fiZd8mcy"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="0AgBrpI5" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEITIe007394; Wed, 17 Sep 2025 15:24:58 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=KFLYSFGZD5yBxLlMBY2/zl33FiP/qx6R8CwaZA8JDWA=; b= fiZd8mcyHqGSrlKGeWCe6mm1TnieYWaLA1qrQYyQPwR0EZB+YE66266KN+Uy0POn idmhs4c3AF5Cic9u+ngzg1s+fiKJhVf2U0dR0RLRiW9LaOXs/0Wry0IMKG39qq5N tsjuYiMb49bXMTPUwynOEy0qAa0BUYAafmfPdjiwt0kCUulkjn7l3ET7eUwhw3+D QefRkvVY49N3pw9MCbLudWUHtwFSWiV3kVZe6pRuXmoVwd+IHvOewUCTcXoBnUXf 3X56JeWObKvzkw5gSrgKRMyag+3gTnyoPGJZU1M+COue7eB0HD/KCpZAa/6X/AX2 tBF8AW6IZTt70dEeQYZmug== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx91gtj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:58 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEnin8036777; Wed, 17 Sep 2025 15:24:57 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010011.outbound.protection.outlook.com [52.101.46.11]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 494y2dxupy-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UgNTSL/Kzk6FKYUHlEQWo6yAUuu1X1Sv3zSuzbF+c/3ngsxa+ktb8q+pdRUezxoIKEzLKWM8N+EI7DipceWmMXe3L02r13hQrrCFNLRDiu/5lLIy8Fv8dXWrLWhybsPVMh0qkvgzTdo7Tqzbu3qshH4z5xOnJOhyH24xYf74g/Gr0vkQ0UTSwPwEh1FREHHgahxZYKz79+PNTZBRs1ZNjrUUZZ9Xzc2lY4QRgurU24kFXTDGekQaqLEyewUtWhKlY5/RBt2tVc5wBA7DPHKyx/YTv4bwSJaPGM6tUFbPqPTxbrlK8b4Lvq6VnbAI8xJHXFXsv9Woa2k+t6SyDqfZAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KFLYSFGZD5yBxLlMBY2/zl33FiP/qx6R8CwaZA8JDWA=; b=Jfuo+PkdhgMUXViR+uvAXcUEbB0CZkics1QoVRucz0KgXAuZKvTpmOQOyofsc/u6Ka+sxq6S9ZejjpuVWVOT+9k9IyOPxZIQDNHdv0qqjZ/o2I0jcGAZ/AoDql3renmXIBzVHqDUT6REXXcVP6zgcddc6BEZsLkJjNgGy/c7ZlzmgvALSWztu3e4J/AZWxE97sq/s6uOK93xK+u7bFyRriN5HNFEOJ57ExglCsxP0go8eoxcgImoSTgap9xRRvAWJ50o7HZ1fxiaEfL8eBFuUj4xV1EsTjYLX4rCoCBpT/0LC+rKiAc8CSsM+4Bgi0CNIIzKQelaGYH6Akkl6ULjrg== 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=KFLYSFGZD5yBxLlMBY2/zl33FiP/qx6R8CwaZA8JDWA=; b=0AgBrpI5x4DpvZfi/paMsjlM4QhwiUA6wl+Ttq2RwHThvX3izJTfz1TX+aJ4zy1NSXCViJMzN2CYSzQKlqSWtaO0c6Dd4pzWC6XsKdyD6pVGdtL2bLqg8Qa5qvAEBOxDAxpi4KHSnACMToxV9SumbfksFWm7bQsvbbHq540v6yY= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS7PR10MB4942.namprd10.prod.outlook.com (2603:10b6:5:3ab::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.13; Wed, 17 Sep 2025 15:24:32 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9115.020; Wed, 17 Sep 2025 15:24:32 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v7 06/16] perf bench mem: Allow mapping of hugepages Date: Wed, 17 Sep 2025 08:24:08 -0700 Message-Id: <20250917152418.4077386-7-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250917152418.4077386-1-ankur.a.arora@oracle.com> References: <20250917152418.4077386-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0031.namprd03.prod.outlook.com (2603:10b6:303:8e::6) 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_|DS7PR10MB4942:EE_ X-MS-Office365-Filtering-Correlation-Id: f73044af-d5e3-4a3c-e6f9-08ddf5fe4d56 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?zcOVKhciC4oMEy77lyNzCHV/lOt2Sry5kTK29SpN2S0nukeyx3q+O4GHWSfp?= =?us-ascii?Q?4dISBNPK8Zh7OvLX+1MGM+Bv4YuY6XQkogifP0laORIqbv2TgYqGrVGMl55M?= =?us-ascii?Q?cpIOGkODK4B1rCKTVkes81myH6MD0xtMP9OVb5A45qRSGctsz9bizKOqlV4b?= =?us-ascii?Q?cwJ/aDmV1Z3L+NhnmaPFdh+0Ceh1KzIWdUB6rK8zEYkXim+Ktj/sl5xuk7EP?= =?us-ascii?Q?FvJ8XkP21Iyf5nmU1YxHidVZmnRLseTB6XTQxJLIymwG324macF6SKna57c5?= =?us-ascii?Q?BiDF/Hk36xOX7XgVj8Ty39Oj1ktar8TF/0YwTsRiKfkR58ouxO3MnxnX5tdi?= =?us-ascii?Q?m2gV366ZW8XMvBzXcuKsc7NgxU428JstOIV/sNb5j/x1hBcCjAFM6q31tJbA?= =?us-ascii?Q?zfQCs4raC9mGKmTvZZ6aX9teN5wD5waa89bzpkDC7uF6/YVai2Uxc+Hs7AUG?= =?us-ascii?Q?6cgWa5nrmydLVZ6kcRhcYrdU5a6hz+42MybVaz+uC7CZaPADcB5HfWc8M0VL?= =?us-ascii?Q?kGSsmy3Zspq7Hlf7KkV/IjxgTbpOoBtSfF9vD5BjzaGdqBA6XdAKl6puhB+c?= =?us-ascii?Q?gAxKrK499zpq2okYGaCqOGjfm4CXclN9YavJ63jQe7GVyvncUP/e2eku/9pW?= =?us-ascii?Q?rTjddigNT8SK60JVJ1oEarNsC1u8lPtjSact6QQOxpUim8+bi5h/6HehNzFu?= =?us-ascii?Q?KwUStVPj1KaFJn+ac4wjsbjOM+SF2kc8xNfPeQqlLSkK1kZY3ukDPYnBqoQN?= =?us-ascii?Q?GDUDa4UoR6iyNDCLQ8WDWUwisce7z8lMx2+63myL5sIhy0GVnRDEVn84xtD+?= =?us-ascii?Q?5UtGVlfLVunQmD29Wh7AlzFSN+Mo8aJOHobVN2foGkKcWF5gqnNWTGIcw6A2?= =?us-ascii?Q?qzAl6PVuQQBfkiM53As/FF7IfyCChol5ubyTxomMIXdCv918aYL7XAyDvzY8?= =?us-ascii?Q?AVTV0vz0tkparyY7fy9FDys3KNxtlT5WbBXbIAkBTUZinGprKClQAn8JbOpi?= =?us-ascii?Q?n/nRj1LtDagwDPZo9leAQJiWmjD2AZETMuJ+8R62G6eUo+DH7+k/EDk76MkL?= =?us-ascii?Q?ogceKEt9WHDAZ16myClKNZ3vYJ0LQl0p9RN03lpSjv6HhLCTj1QFnbWMDFiS?= =?us-ascii?Q?pueqLqD3EcPu5+7qNoV8aPzSqlGZQMazIvcWfvQKoMP6sL0N57lR2gxHeLWA?= =?us-ascii?Q?rfHueKOL4Pizw2UoXyCFAT9teFl3QJiLGB9miKAX+iyT8MnXelRAzbDmKf49?= =?us-ascii?Q?UNTcdYdss6USaRldUs6+HS+3soBwOeEhvFKa0f7rW2XWxiAYg0kV6JeWN6SQ?= =?us-ascii?Q?t7GWQT/5RAu/vKURvWic0D3tu7lMDv3F+Xi79cSFm7F5ztDVcjy2PzruwjVV?= =?us-ascii?Q?Wi7DjAh80zrjoLpR2VZ5Np+3ev9uyf9DC3CjAprkrOWcpjilDw=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)(1800799024)(376014)(7416014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?1TVyEA/jWAv9YF3tX3Htplvu5yF1OJL71qnaxzehedpLdcYHmM/0LaaxUY6+?= =?us-ascii?Q?uLkOBNc+z4btL9vuHexfiHbu0HFKuQK3/Daa885i2tBz4j3eJl3z8stPnKVL?= =?us-ascii?Q?JKrvN6qfS3FphWINb9kB7LZLAyHmMqDC9m2Y1ZIzqTuBpXyg+3jv6HTTffud?= =?us-ascii?Q?ORXU3HkWVpM95j1bXEK3VDj553raAdFanNw91lzCS5QeHU1wQty9wv/wtmgQ?= =?us-ascii?Q?OjEYy8v+FbFP4l+faO8HAtur4pJJcmmr0Tq7z2DdCmOf7XXZkySdRFfVQKsA?= =?us-ascii?Q?2skUZ5+Xf50579NV+kIb0kzddBh4ocgAkMmAkr45V0pN0K4weMcSYv6B5Dem?= =?us-ascii?Q?0/zevwsJPEt8JrHHMcJdX2Mbb/SM92Q2tfH+nVM2grh/CGI3td23mzzjRKef?= =?us-ascii?Q?RXlQWdKGW6UDcT6HSSeJO/IvlQcUMphxTvGXnGbTSRkF01e6ZlQHq0/D9wS5?= =?us-ascii?Q?fgoqRfMW7azloJ/OWlm0o51siJRbxflRoYTiJQWROXzzBS9h0mTLbYfmffsy?= =?us-ascii?Q?4KhY4lFdX61mQKB+Mm9o0VOWuHtUqN/HWQ0i4OjVmfLoe//Q7kE1/GuUa9da?= =?us-ascii?Q?5ihXx9toInlcW/HndK5v2WW9skpWLDCIAyTB3gkdrsRmsDbhmlHMLRUhGdEw?= =?us-ascii?Q?iUkdlHusjLqECEa2GhKZcZnkFMOirvB/IcBxdFtbyLKLt/e6HUrG0MqLxUUw?= =?us-ascii?Q?dc81RlHqE2wOOJJOd0II4s8xz1hTXyNTZlbiECr+H+CGa0AKPmBy0KPvNPqN?= =?us-ascii?Q?JAo4LRYbZwViN5QqMBxdjjm0KPb6LO6VjS4NdsFSQ1BkrhgYG2DijA4Il2g0?= =?us-ascii?Q?9JG2XnNRsmgtAERkElT32iwlRiZsZiLesUfaBDSHQPkdkBuyIvk635fx5JdA?= =?us-ascii?Q?W6ed6OSDgQfYAfC/TSwdmqKAyeGHXH8pkXhB2VwqqXvVudPUjhhX/CD+d9H8?= =?us-ascii?Q?7dvxAvKCUG8L3nrZ5YiwOdW1DxzJ0GpOaCu2RA4OePgN5hyqW5p/Q0aaBGST?= =?us-ascii?Q?3JDf9FZWNDa+G799S9hzbxewNgbEMnbcEsiYjG8L7QcQY/+90RweIb92nWbx?= =?us-ascii?Q?r1CY1BFTwb+eI1FmCK/ExnTPugjSHP4HcUkCU3RXrpmP18tdii1mCShSvfxx?= =?us-ascii?Q?ZbGbLD8V/tc+MeU1BtD5IAc40ncsMswcXOs4a1wFRxVU6O9i+qXG5fRUaga7?= =?us-ascii?Q?aorQs1ebEnW2u3jNuB9LfVSO7UZtfCp5yWkWYYdtadsAv99aMHq2Gg2J5kXJ?= =?us-ascii?Q?rZr+RRiVCiK67+ZB13MquK3fgK816jx3CgnxT7Ss/V/0ibiUU4WoFZI237yq?= =?us-ascii?Q?1ZGlx/mOtv43uvhMF3dDT5lEMXrZpMiTvePoXQoTBdDjYMq+UIJXVUEi+28O?= =?us-ascii?Q?wAiqcEWHcvOIhO2W2TaaA4hiNwsLBA8EMgmi7V3bVMkvx0RyzDS8JcssNvsn?= =?us-ascii?Q?FuU877aG50/OeWK+38nfNv7F0jJf6JEYzlBKdXiJnpv2x/7DbRyduXHBlIUs?= =?us-ascii?Q?ZcHko71nqb3ufzSfMACs6fHJhRi7Ob/+k0qIycFnBMdEvjw0z7lMsEjEJT61?= =?us-ascii?Q?A0XObV6c6v11v8X/DykLwJxECmOc3KAVTuWM3TNfqFYScc2DAwkWXCcK2HCZ?= =?us-ascii?Q?mQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: x/mbVVa2+cAjJmR9pLAUFcMs222l3SBMOkKMFHB5ljddymkbm6bDnaXrZ8SRp41qbZ8vXaOIQIxC9685t4eDSe4Rbd+Z8WLMH7O4MxkxJIODc2mg9QRAw8qVq4cueaeaVwq8Bb1MNv0xYLSi251Yzz0BqwDxiNP6kH0J7f+C0Bx4XdDzbJszCPMvvMMj4i3FkkXHyHJiZMzNiPYto7nMmO2TFwPSSeUbHT18lhfgbosCgKj095YZjs+LJq/20kdeUh4LWIOSqQFxV1NCsLZr0iTzDE3rbrwMzzlPF6OHvTendmded6RFK0fRUz87O4HXaDioYSKMRjtL5jHjFL82LIKCy39R7om3iKtCr/tbzANBorpi4WQh6GaccU6RI9E/aKbXA5Jd4FJEX60/+TzUz4paAorrIlXrbtZBn67mS2luh1WVZhqVUzMz7Q2lovlpkizYeRrnlSJZhG97Pc3Ot9VItZSMT0CRyDzCuSvYXaXwLImca28mqyTS0c0kcr80MAH5WiXJKr1h7yJ+msdfKFfUWVgWNdE+jMcaq03jZY1pthMSD3uDnvA2K6Y9h0QTnhdyMJ8F7UzZ+UNtcXU+UgRFaYW/sc5TnJ2i1Pgh12E= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f73044af-d5e3-4a3c-e6f9-08ddf5fe4d56 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 15:24:32.6024 (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: 6/0T75Ep6NJ66wrzG7YtFB8S93blyNY6ucOTyPCh5iBGaq1xQ12yAhZQGugS/OdGMsr4YfYcKTM/UP0I6YNcFkUm+AKVCPRpa49Ug4YGD+A= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB4942 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170150 X-Proofpoint-ORIG-GUID: jqodXdPgOcXxKsxD_sZxbA2oZWQk43vz X-Proofpoint-GUID: jqodXdPgOcXxKsxD_sZxbA2oZWQk43vz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX0cYdvJD4hVBO HSnu83Z6eU5PXOkcxufGnGfgnhdJusYotSiOMlXKINKyD3KZT9QRzH+sKskz+WFEeUM18UyPVmu h7ztJxMa++9J/JngtMirIcAprgBx/SNiCBFnIdXT/cb2xzJT6muBT0/+VnVpvXgUy4QT+kVsG62 rejsYVYKbwvePbniazbMaMFBGBMKx6VGWbU1jFPaqIRFskFlPWWcE/0OQIfpz0kaabXO1rkcCv5 wOy0+3U/2YMv9XQO+KG2ZZ8qBY6ARPhOMwik0HKECXIvj6v3e+KLWuDIUTWOIzbRUMSPd5XvazJ yb/53U8sOev1rmr9mkHHQtlxsIicvdsnQAcnRzsStcbsgmeEuCxxXQqrRgwmKe25JhRrdn9m+1G I4W+83sKdIcbII0a5/u/DQ9LYknu+g== X-Authority-Analysis: v=2.4 cv=N/QpF39B c=1 sm=1 tr=0 ts=68cad2ca b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=lQCSvQGvPXAejg8cu_YA:9 cc=ntf awl=host:12084 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. An example of page-size selection: $ perf bench mem memset -s 4gb -p 2mb # Running 'mem/memset' benchmark: # function 'default' (Default memset() provided by glibc) # Copying 4gb bytes ... 14.919194 GB/sec # function 'x86-64-unrolled' (unrolled memset() in arch/x86/lib/memset_64= .S) # Copying 4gb bytes ... 11.514503 GB/sec # function 'x86-64-stosq' (movsq-based memset() in arch/x86/lib/memset_64= .S) # Copying 4gb bytes ... 12.600568 GB/sec Signed-off-by: Ankur Arora Tested-by: Raghavendra K T --- tools/perf/Documentation/perf-bench.txt | 14 +++++++++-- tools/perf/bench/mem-functions.c | 33 ++++++++++++++++++++++--- 2 files changed, 41 insertions(+), 6 deletions(-) diff --git a/tools/perf/Documentation/perf-bench.txt b/tools/perf/Documenta= tion/perf-bench.txt index 8331bd28b10e..04cdc31a0b0b 100644 --- a/tools/perf/Documentation/perf-bench.txt +++ b/tools/perf/Documentation/perf-bench.txt @@ -177,11 +177,16 @@ Suite for evaluating performance of simple memory cop= y in various ways. =20 Options of *memcpy* ^^^^^^^^^^^^^^^^^^^ --l:: +-s:: --size:: Specify size of memory to copy (default: 1MB). Available units are B, KB, MB, GB and TB (case insensitive). =20 +-p:: +--page:: +Specify page-size for mapping memory buffers (default: 4KB). +Available values are 4KB, 2MB, 1GB (case insensitive). + -f:: --function:: Specify function to copy (default: default). @@ -201,11 +206,16 @@ Suite for evaluating performance of simple memory set= in various ways. =20 Options of *memset* ^^^^^^^^^^^^^^^^^^^ --l:: +-s:: --size:: Specify size of memory to set (default: 1MB). Available units are B, KB, MB, GB and TB (case insensitive). =20 +-p:: +--page:: +Specify page-size for mapping memory buffers (default: 4KB). +Available values are 4KB, 2MB, 1GB (case insensitive). + -f:: --function:: Specify function to set (default: default). diff --git a/tools/perf/bench/mem-functions.c b/tools/perf/bench/mem-functi= ons.c index e97962dd8f81..6aa1f02553ba 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 @@ -230,6 +243,15 @@ static int bench_mem_common(int argc, const char **arg= v, struct bench_mem_info * } p.size_total =3D 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); @@ -286,11 +308,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 @@ -308,11 +333,11 @@ static bool mem_alloc(struct bench_mem_info *info, st= ruct bench_params *p, { bool failed; =20 - *dst =3D bench_mmap(p->size, true); + *dst =3D bench_mmap(p->size, true, p->page_shift); failed =3D *dst =3D=3D NULL; =20 if (info->alloc_src) { - *src =3D bench_mmap(p->size, true); + *src =3D bench_mmap(p->size, true, p->page_shift); failed =3D failed || *src =3D=3D NULL; } =20 --=20 2.43.5 From nobody Thu Oct 2 10:39:57 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 AD8BA335949 for ; Wed, 17 Sep 2025 15:25:19 +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=1758122721; cv=fail; b=tjtUQVCIdMxAy0WxDdNrR6BalOJMGM/0jtKx8A2LhsTkqSx1BS59NI/kOeJ0ttblnmQ+3Bbwg08FrUVuDLqnAC05O5Nkl8kiepvnRaU/0WXfnsSmApaSPKMcOxt3Lrtfg/3bz+pc/EVZ0Hxjcu+Gxo5+gYahbM6Bjp+4X+7ymrI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758122721; c=relaxed/simple; bh=oFE1He2pcLgU56MO13fP+HHlHAS9hbAYChIDkffQWSw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=AqYpwwxI7bJUlkrK2AJ+rr63iRqwqtoyT9Tod8Q78ETvV6AiSyZR6mNDDCeZPsD579ZWw0aWvwSa4U5vrTxrIyzLIDWLvXqyEnOAFsJK7CC363n6HnnTcGIgP5h9cWeydrdGbskOhTwJPwsYXB8uyK3MhJV8sBM7zk8fO5DErPU= 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=gA2r3pKy; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=bqC36uNr; 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="gA2r3pKy"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="bqC36uNr" 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 58HEITRa008296; Wed, 17 Sep 2025 15:24:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=JhJNwVlggWvhdVgvWTY8KzHTWZIgpo2fNw+mzLIOieM=; b= gA2r3pKy4rxvB32LwxhdNTTf5aEf+3wk8jmsRdtCms6u5qpFJ9iPEHELdaZF4EXa blqln/NNY2Hm+Qy3mc7V5u6IZf+yu6rhjz5Sjzl7VaUzQRPFqfZSNOHLiQ+0oWB7 RvwmjaENQK2QuiXJ0qaVI2fbvPeMqEpVLkiypvBZDsG5Tc7PIF2DAYfLq5ANQg1L wHosLaB4hFH6iV35HUUgkxrQiTzaTn6C09fAgpodBj6k4c4g68iLdXKp9UoytEZB oa7VLqwCmCd8JaPmn4e2dF9L0OSmVbpZqujtBwzaO5ffZWKeRUrSBTcaGPQ6x4WH Yos9gsaUUrrFQOu03aM+iQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx8hfu3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:37 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEbBbb027235; Wed, 17 Sep 2025 15:24:36 GMT Received: from byapr05cu005.outbound.protection.outlook.com (mail-westusazon11010059.outbound.protection.outlook.com [52.101.85.59]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 494y2m70xr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fdZCTfwNg5HH7v+BoJQ94QTqgiqrKF0AtWO+E4GBTrNjfedFrzHDG77FcEuaDvnNy0uveqbNRRlA4SRrDmbbd8igDpy7JqpFzTuG5PZTSetk5fWE0Ya+5ijoC96X0cI/UnpqNfK94TkZyCTTzb7oYWMM2VkVBnO29k/iNhlg4h9mlVM2xMeI7Abgm73VAH8cqT3Lpqt1Wnz/hh8aS16loCkWQlCftzJddaPx4X585Ki2xs97eXY5iI5IwRIe8PZHqbIXdLPbVrPkxQJD7r2MlZ0BcVV95nC+7SDPBkrjzlT4UwYPKsfI/SetT1pDLJl565gjHjjGmwx3pWT/PWZLAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=JhJNwVlggWvhdVgvWTY8KzHTWZIgpo2fNw+mzLIOieM=; b=ZWC5fUtXKLJPZ6s40oXZMxjShc6bHt2Id6c1jhR4rutcJEXFImua9C/Ui0XShEn6c/VS++95kWKnPz8nNTc9plFPVjh8nXk/rTWpgPXqTeFDm+Qez0jlyJekFTq/57DbxaxOBA3ASD2iCJVTqgjflA50Ev+ma5IBNK3+3Sm787YELEo5RxlrrhWYCWfqQFQKUuC7EeINCtj7YwelUJwQe4NCtV6vvnWJHSyC4KptudI6zCo8j1rYZR68HJCGMt04LEjVpfEl/csk4fYvnr7osfrQeFr6KukivbvjLpmHKaRLZraymSeqBrfaKpCVEoe3N8H/gXsa/eSLEfVx5tzwUw== 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=JhJNwVlggWvhdVgvWTY8KzHTWZIgpo2fNw+mzLIOieM=; b=bqC36uNrksRjhB9oCBO47NX3MCJF3mdjMdF8OalStfn9MBmJXKlZhw3v7StxriqMiTvUBlhkyeHPRdt+QCofewQHXgBrZ4CtiygQ8VTDHR7OXvmuX9sBiJYGXwB50q4Sov6CfuTXYfQOwg1hK9Ebk+/ifx0i03C87ExVLxML43c= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SJ5PPFD020A49E6.namprd10.prod.outlook.com (2603:10b6:a0f:fc02::7d0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.21; Wed, 17 Sep 2025 15:24:33 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9115.020; Wed, 17 Sep 2025 15:24:33 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v7 07/16] perf bench mem: Allow chunking on a memory region Date: Wed, 17 Sep 2025 08:24:09 -0700 Message-Id: <20250917152418.4077386-8-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250917152418.4077386-1-ankur.a.arora@oracle.com> References: <20250917152418.4077386-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0171.namprd03.prod.outlook.com (2603:10b6:303:8d::26) 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_|SJ5PPFD020A49E6:EE_ X-MS-Office365-Filtering-Correlation-Id: b73ab240-8000-4f19-a197-08ddf5fe4de8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?/W89agPtf3npxYs/nvIMo6HXQ6JwZJ5y9AFKnHeU54AgVDZ3T8UPTfr5NJWR?= =?us-ascii?Q?kxNzTS/i0aKi86LV3m9eD4v5gGlnAcGNtbOT1BO8Rq0QdgPpTPnP/K+rwrap?= =?us-ascii?Q?xqsnFE0zLtLrtTsigopMBvC7X7YJR2sCqod3zhfiFmOJT6ORkvnZs/65gtDb?= =?us-ascii?Q?2FRHr9yXOoCBV2cMZbNg9ZK7knIyCmITDgauIAEV1zKp8dM18pHsMpBP4y9Z?= =?us-ascii?Q?6nT0DUaAMNuEvwOmb3i9kk2cDGrilB74TPNLngLR6lx1HXChD69/8WhmSkyO?= =?us-ascii?Q?gGLAtCqexB41c28V1yDIbz8xTj7/bW2Vvtbu+2DdmWo+3p2QB9uHysleipIj?= =?us-ascii?Q?0HZwtC/Fb0N1q3knzQ1IHn19sPkHQ4ipWLLc+Z9LFYyOy6AZr4PpjCNDM9dz?= =?us-ascii?Q?JDzppFA6al0EYBuF15ULU3elIhXb4iOpo9bs3NuDJ+mwntGayP7xbvkiwbN2?= =?us-ascii?Q?inFkamL5+tZif/n+zQ824GJCWGZ/qtqaRCyOR1+Q42xjoezzDsxRJ760CitV?= =?us-ascii?Q?B06GeuruMLjVbtOCi6Vs1uGcjkfw/JvXYw4XHnKQUQAmwNyIELp0XniTr6nh?= =?us-ascii?Q?B7ft5WwZ8KTdFoiYSvJAbPSPK2QO9RaK/2lTMcvV2FI7UxYHtqPz7hIQOtiA?= =?us-ascii?Q?BfB6BZUgP9x0WA4lW8jZbFf/9/U1XP+ViTswqtwRZnE/fdO20wel69iDgjcZ?= =?us-ascii?Q?2gLK3dJQkllWCBrcFLDOSpegGdULQBWL3OVauhR4zg69+c99/4WAODNDkGq5?= =?us-ascii?Q?/dMfjCtHBxPSEnwxhUKmz8WcMVKrB6zNJL0oLklb8XJYCrSrmmFF8l/6jlXW?= =?us-ascii?Q?Q4XmbTg4UM1RehIEvcJEdh2gjHwMmFHMGdwf4vUVfz01v/rIoI4+KqnlEt3u?= =?us-ascii?Q?H4gNwpK38f2RkNkyTQTxTrAalKDa6YBMgxsoJrvJFHAJ1nXVSLqsj9muy0Me?= =?us-ascii?Q?lamKR2+NUapmHbZu1M3nStshFZU20Q1/xtTFdRVqu8VG2hXWkHnJJB089QGI?= =?us-ascii?Q?9YVNOrzIkaXrpa82TL1PeyN7mKz+U896uzusoheMOoa7qC4vxRE3VDlPkfJI?= =?us-ascii?Q?lchQSPKr6NSGSX6r3GYZj+X0OCNnPkUlO8Bt3s/LF+mVKSAZJcfuNgGtw0wa?= =?us-ascii?Q?MmiCalqUze60sz6RboLIFdBqs+9/hKvCE9cLIi/bsPntvZwCvqTLPsOFguaI?= =?us-ascii?Q?DR1uACVcGRM1pO/ZXsjS2rwROySrse/pARESJ2JdGwf+eexnrg80kKYhxNJD?= =?us-ascii?Q?vxbuz8Z4IBckqRjtSWbc5r7GzM5+WItugvKVPpaHHhFtkTSm7ifDcBzijwIS?= =?us-ascii?Q?B8a+3Umu08wcwGzMFbycZ3q/VHH1FWegLJrvzJXnafZc2hlCnCx03PmPS57x?= =?us-ascii?Q?PCev8ZeX/mDcSlBaP6Kt7egf/zO96FUDAmKdKP6PNEf4JKWmbA=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)(7416014)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Yu6X+dETAfEdYL7+ovcj/rgH24narWVsuE4lTOkOABymLqYn6LKJIDDEuybO?= =?us-ascii?Q?7CNNwzS4/NYptxz56t3pPpsj56cgNFeEMqjmYtMV9GPRS5x2t65SUZ49QjOi?= =?us-ascii?Q?itgDXKa8gsLFEtkh2LNI9X7KG9oDhWI42znLkQI5VdUUBXIWnT5PHs9+8bBZ?= =?us-ascii?Q?HjGsAaDoAeqdoJL+Ylnrk/F+NLS9JoUlThE8xMlbtmlpHRldp5L8VNbOdwJT?= =?us-ascii?Q?ReO8uqAv8B2uYNaeqGpDBl4e+K5ShPzk2YWDMc0/+VUXbVfvcvT9xIY1RwWy?= =?us-ascii?Q?qKLUdCsltV7FINEf0O22h1x56zrvxEUy1a4sZiyeoimSgx+aJRHl6fTgazvY?= =?us-ascii?Q?OTcLL26LOXkYTlwb1oTmrYrcU0NTdq4ihfoq8Y8T/v+g+Q1F75OhFwvoYRtR?= =?us-ascii?Q?03e98EMiv3TU56KzwyJhfhjatzArRBQlQvyKiKcSss6xG11F/AjcfTqNto+O?= =?us-ascii?Q?DdmSPqqJPz3v3Tpw5skNyUGaEfw0PfLD9TH7a8R2Pnwwjk67y/vSHTv7gRMO?= =?us-ascii?Q?tM1IJwotEwJXxw8GBnuncFp7fDqcAuWfmhj/nl1CHJdB2bXz8ar01Q2gj13O?= =?us-ascii?Q?R0wlOYXculagvczMtSW2FyCmQngiOdg5xtudvNQ5vZT70KBTXRrXyD1MAUg1?= =?us-ascii?Q?3JKQlgRdpY0AmrVz3MoQki6+4uJWyysGvueLvB59sD93pB+FISqdXA9vZgNy?= =?us-ascii?Q?Si3bocRHbc2Svrhu+23uh8tAcxZaIdZG4ul+a+9vIIpybNuLbqXcCZ/PdvHm?= =?us-ascii?Q?XTwmnAh5SSKVqUG0Nhl/kt0hxiBV9ob13AyTDUjE4BrPapwApDE6vuQ+AH18?= =?us-ascii?Q?CWrIhO/Cp9O354eA1YUO+4dWiNh8P0He+REtrpENFYJuTKsBVHn0P2ffBV3V?= =?us-ascii?Q?uSiTX4+nQKLXDoWG6YISJ+uMLe9tdjQJnUcj772Ffgg7gA2gmJhgyc0mM+Il?= =?us-ascii?Q?aSbiMho5mnO1UfvOGlk6mPkR6XAVOfBQ6c1VTDHd/tyx62Nv5FclNHglAu0+?= =?us-ascii?Q?6cWIaCBjyGLQ+LQuLiIgRJDLES2j26ieqV6JUvR8C15w7vq267jWzgs2JMNv?= =?us-ascii?Q?Kun0ZwOH6DqLB8dCu+8iuQWv09cJGY6T32kNFZjTgxUIQb/jeP/uS1ZvBV2K?= =?us-ascii?Q?QLykTfEz3uAeLhdlCl55hCqEVl4FzBH0eGcUN74TdEBOSNCoyweS/P0TDopH?= =?us-ascii?Q?Bj/4GJ/ZN70gZSbHvZhXDEWKPgvVBuBPmb7r/qEKS47wMzfCyjVRR2d4W/cs?= =?us-ascii?Q?yOVc2n14Sbqx0slRfZzqNMzcaz3Cz6qKVVfjoiOtjNGV/lsqY3EEOt1VIIjz?= =?us-ascii?Q?Q3xaYS4MSNt7jj+CjrgiOy1OKFZwHLbUOyOnOm8OzfSfykXmvxVKNZIkp6CV?= =?us-ascii?Q?zCgZ537ZWMnIGLMEMs2+UE1dEcqrkq23SIlpNf/JN79dHU3wgLGp8rLEU/S7?= =?us-ascii?Q?goULkcUsszV4G9Sx+TjxPu4CpBC12Ug3DQgHmCI8zikoU3jttTnGCE+TfO+3?= =?us-ascii?Q?2pMd6ZAqeH6YcAwiS0HtJ3nfgF0xRDNIjJNraGSfhBWEnJu9e7bEzy4T0UZD?= =?us-ascii?Q?RHWNhaAq18nUQkyWXZJoX5nbKg+nXLdCA8wguT35orwJaYp/vyoLci6JB4y7?= =?us-ascii?Q?/A=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: aq6YS8ANA9BdNee3e37X74IEhWIcGkDmwhXJUlhoLqpW0WBbjc572axwtgc97XT6eOqubrapDhrA9XQolGA82HRswjAGe8yuXh/SmHujyA42cbYFE0Wfi6zEzdhBxzc47N681tLICcCuI8EI7ZBmpwllh2FbRUvcPDJQ24A1od+/aGHM9RY3x+AgCb8lvnf/cUUEN9rt1r7ylCSgKuIGrBtXHIIuxzURlsu4pzgC9jlqYtp7Dw+oSUQw5ajsQ3Yr6U/pWU4gHbOM0ZXheR1TlJ6Rt0kNQaFL/BsGVqHBz13ehGCBltrt+aMccf/GZzAQolFwOEFoqyLS8OXU+IGlqf4K78tlMoYJRbAdAAesGy2ySJ0s5VY5GCqIKHwex0RCKSBYac51bIGzSMA6RyJFm70muEN70QD8LYvf/5dE6yUVKK8KTyPUY8zDaySzzwUMLoh7Lz51Dqw68n/4ScmZZMCCFTSV6/c2z9hd61cBLGs3cDk4OI37AF5qvizfDlgDDrzqZ8WvjwzWzaArfv9pVHeSJJZJ6mEdF9N+5FVN900J/x86l+K09mDm/Bekr8PydqwHB92oDkQDwFLv1Tp1GQdhdF140JMXZlXlmqLnapE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b73ab240-8000-4f19-a197-08ddf5fe4de8 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 15:24:33.5610 (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: mHuKYRfPEXhdYgARHKQNTHxUpIS3QoxA3qywtj8lhfiUV6IapiDAfS0L80qpzExp6I6KJzijLncUZMbbxvdykLwdefMbtWb+cNM/qTI2Zto= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFD020A49E6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 spamscore=0 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170150 X-Authority-Analysis: v=2.4 cv=JNU7s9Kb c=1 sm=1 tr=0 ts=68cad2b5 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=VwQbUJbxAAAA:8 a=yPCof4ZbAAAA:8 a=Us96s6kiNGSoJA3BlCYA:9 cc=ntf awl=host:12083 X-Proofpoint-ORIG-GUID: RsML2-9Lw66XP5xSPvQq0PmHEQmIGqqz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX4VBAhrGXO3vk sdKwaSQhZNpBnK5al0NYP2FVFRALUcYIgbaD/nBdBdzRDd/R23G77yaMtgK3+WLt+T/uRnDDXfg UFd/ZXtzCcNkJq8JDHstGYuqgS+boVA5FecaY/sXuyK9tf1oT36IInkflqM3spAVdb6BJhImY46 uBzhGvHjvygn4eJtdoB6mFYkfJEU7yZC1OD4q5xGSFlUDKZgT1ujfsOef8ZBQHHs/MO8SxDaySo Guq1kt6aK7TNCuZDuom6/qMga7WRwP4e7578xLNBOxd5J4y1pquHeGNMsQe+MIhYy1Uvydxdux8 /CLFnWi8Nw1QQyPceuenAW9mrQx/kMXVJT+xxvgLa9W67HfS0c8UWjbOKRYCFiOnzzrUS+98J0L /Dq9baYW2KhQRrNKH3++IRRphbYeWw== X-Proofpoint-GUID: RsML2-9Lw66XP5xSPvQq0PmHEQmIGqqz 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. Reviewed-by: Namhyung Kim Signed-off-by: Ankur Arora Tested-by: Raghavendra K T --- tools/perf/Documentation/perf-bench.txt | 10 ++++++++++ tools/perf/bench/mem-functions.c | 20 ++++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/tools/perf/Documentation/perf-bench.txt b/tools/perf/Documenta= tion/perf-bench.txt index 04cdc31a0b0b..3d1455d880c3 100644 --- a/tools/perf/Documentation/perf-bench.txt +++ b/tools/perf/Documentation/perf-bench.txt @@ -187,6 +187,11 @@ Available units are B, KB, MB, GB and TB (case insensi= tive). Specify page-size for mapping memory buffers (default: 4KB). Available values are 4KB, 2MB, 1GB (case insensitive). =20 +-k:: +--chunk:: +Specify the chunk-size for each invocation. (default: 0, or full-extent) +Available units are B, KB, MB, GB and TB (case insensitive). + -f:: --function:: Specify function to copy (default: default). @@ -216,6 +221,11 @@ Available units are B, KB, MB, GB and TB (case insensi= tive). Specify page-size for mapping memory buffers (default: 4KB). Available values are 4KB, 2MB, 1GB (case insensitive). =20 +-k:: +--chunk:: +Specify the chunk-size for each invocation. (default: 0, or full-extent) +Available units are B, KB, MB, GB and TB (case insensitive). + -f:: --function:: Specify function to set (default: default). diff --git a/tools/perf/bench/mem-functions.c b/tools/perf/bench/mem-functi= ons.c index 6aa1f02553ba..69968ba63d81 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; }; @@ -243,6 +249,14 @@ static int bench_mem_common(int argc, const char **arg= v, struct bench_mem_info * } p.size_total =3D 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) && @@ -300,7 +314,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); @@ -402,7 +417,8 @@ static int do_memset(const struct function *r, struct b= ench_params *p, =20 clock_get(&start); for (unsigned int i =3D 0; i < p->nr_loops; ++i) - fn(dst, i, p->size); + for (size_t off =3D 0; off < p->size; off +=3D p->chunk_size) + fn(dst + off, i, min(p->chunk_size, p->size - off)); clock_get(&end); =20 *rt =3D clock_diff(&start, &end); --=20 2.43.5 From nobody Thu Oct 2 10:39:57 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 DADF53064A2 for ; Wed, 17 Sep 2025 15:25:17 +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=1758122719; cv=fail; b=ENAUCt4RKipm36ghIjG0QRsN08UIH5qIwo49IpR3uNgbQbYOxzRR+HwCytpuDk8uvgHDGTQtzNRXBVVVjr/Ogt+Ac4uaYUpMDbHQWQkV4gC22U4k2XkNmidT+WvWYZkGU8ziGVCqIjxB38R5VwqxYneCp90fzIKrzK8g1fVf6iI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758122719; c=relaxed/simple; bh=TLjwBgdN08zvZ0tPxVOZT6FUGWsYfIom6QvGD7j5Mho=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Y2ocnhkWUwB7u3qWIicPp0gLm/dO8hW8gSkXdWHP0InvdUHwvL9RrFnItbr7Ggtl4pVPq2DiEEabpg+OW1+Byb+SONN5rBMJO8HTC59s9xr3PeH8oCwn1DI2gqZscZMFEP0oAnoyeFb3Zb/4RQ3wfbTewDa36lm3g+M0Z4uV1xI= 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=Y8bgp/qo; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=GTWUf2eX; 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="Y8bgp/qo"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="GTWUf2eX" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEISXP007332; Wed, 17 Sep 2025 15:24:38 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=E+qSf1qFl2cxfz5au0Rkydfar4LZPeBi53cDe0EjHzg=; b= Y8bgp/qoChfD/OAikGvmkCiBJMK60vcunaOompbZDmKcYcLBu7c317wD/txeimcu VLP91g2kyiySO8o0RTMYG0BfvCdJOJByUAZ6a4c/Rmsln5ykg6wOYQ+DDGCNBSZi 0hOeuuaLqjbL9u8AMO82HdvykTuujsVbngBoeGL9A19w6RnSZ3Ky/lOpEkDMyUuo YAJs2kAD13pLbPbFF+2IudbjRy7A7GE4VfkRJoLof/ElC9zGDdPuf3pxBDymFsJi noVCnXBNFt6GGDYSSyIg4I77hrxYvS7MEUVBfYcoQO3y9FJCLll0N3sJNdmwsqOB IAOsE08TA8rXYwS0VQnWKQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx91gsd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:37 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEbBbc027235; Wed, 17 Sep 2025 15:24:37 GMT Received: from byapr05cu005.outbound.protection.outlook.com (mail-westusazon11010059.outbound.protection.outlook.com [52.101.85.59]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 494y2m70xr-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=K1ylje0qO7VnMaQso2Q846Idh10+SsozMRd1i9MHp022mGFGV0EiHq2uqUsbhvSS+4SEtdQELEF+L7Tfyg4GK2hArAk1Q27GrSORaMKkZZRfOJyJOWzEQgwpvn8/qjXODHjEOPejHOowKKDjwTQtu1hm5JSi73wvH1uEOHuCLjXl9bkHw145Ir5oNLFbrs/cJtYGKEpOzFYsFhYneM9q91xRTiAHyd7fhop9B/7SAYUPcIMNTAsWiRVeJ+2Lbqk2ySzqhjiDOzabXDEoYwbcks8RNt3FslWO8vfGs/Q37ySWncf2lYxpHIKzBA5O67cu0B0vmET32U7GA4DkqL7Y4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=E+qSf1qFl2cxfz5au0Rkydfar4LZPeBi53cDe0EjHzg=; b=gtOndnYEcnrrAFKCZI/abyzofUN38VzaR1ds23SkWzkNn8PGieFY485i2wdy2qKcpWxFYL19KU1oqsO8OI3EwA7Id799TihcgHEO09eHqBJMFyZ4seE9g98h5rEkjbuGcD+Lq5vWevofw05K7UoVyLTTy8ZGvlIHPYY+EcTcxraiKYdW42XkRCBL8tYIXaG2tJY+FHa3lsXFqJP/LcIjvg2Cj/iWHVjOOicrf/C9X1880LaBPC8iJ1fu4quY6e8LnYtDAiqVMSMiyTQu3RUNtmr/3Yw3aOYEpk/rq78oBUwz1tPIrRsHZXwoHKEQBxITGYfH8abG+MnpGr0WU+u0Zw== 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=E+qSf1qFl2cxfz5au0Rkydfar4LZPeBi53cDe0EjHzg=; b=GTWUf2eXgQDjH4dMQTMlN1Oyy2z7KiLii/r+5+eGNrDXAOXqQL+ZpB7moEjRXFjReb6bYupaKaXJ5ioAXUn790sn1s8f6t2tatm83BZQ+Vlhwvapivf0i3C9tlVCuyYjloxBgqQZ/RXHeuoCXA+onEs+T/xWFwGgh7DfSFemVw8= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SJ5PPFD020A49E6.namprd10.prod.outlook.com (2603:10b6:a0f:fc02::7d0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.21; Wed, 17 Sep 2025 15:24:34 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9115.020; Wed, 17 Sep 2025 15:24:34 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v7 08/16] perf bench mem: Refactor mem_options Date: Wed, 17 Sep 2025 08:24:10 -0700 Message-Id: <20250917152418.4077386-9-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250917152418.4077386-1-ankur.a.arora@oracle.com> References: <20250917152418.4077386-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0178.namprd03.prod.outlook.com (2603:10b6:303:8d::33) 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_|SJ5PPFD020A49E6:EE_ X-MS-Office365-Filtering-Correlation-Id: 4786e0b9-d629-4933-c3ea-08ddf5fe4eac X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?X7H5P2lmhw7ePmAvRfK4r/2BmbvU9bp+HhOeo0DjotOvsH01ZsjtmDmZnkPt?= =?us-ascii?Q?3JSCDXO8WG9sbEasU1apVBsm6ZrgnugMMBS48QvJUJ8PEl1BtCTidQSzfnBJ?= =?us-ascii?Q?NE72+lJNNoYM3YzIijydm0iB58UWbXMshf7ns4tANiSIyJ6bPMAbWXLc6YcY?= =?us-ascii?Q?oPpnHvLijGvSs+4bPwR/MtE9Z53+ejYdbynnNSNnAFGw873Kda6MT2R/LZ66?= =?us-ascii?Q?3qQQQohz8gUpcXQGyYrJS94tkQxJIAATTj/1Xb9Ft+hFv+wZWR4Hz0YvjMxl?= =?us-ascii?Q?FwQ+YF7/zQPZ2F+9DxNQpVVKMOFatABvpNXAM3Mfr9AJe3AoYFk1X48wUyor?= =?us-ascii?Q?AvPE93hVKzh6nfF9WpqtYd7ECqFvOgnB9miNtMEBXrjYcHASDS/PBIdQpJ2p?= =?us-ascii?Q?zwVulTOtBHK8aCFL0IJKzFO3zeB8KZaqLBtoBOeKZcrq1CRg+p25DkJWhIq9?= =?us-ascii?Q?3pJcD0xi0XHnZaggru6Jp2ZsNl2t3l3Dh/klsf1CskO5eWL4ntVXHiycykmp?= =?us-ascii?Q?Jd0C0JkyZZPYYmez+tZxBRZfdLXAc5+h+OA89fJ1RJ7CuWR/4YOYvUAjwytX?= =?us-ascii?Q?zcjstIyd0CIz1IDUa1+eZtYjdgRb2tJRI23eHePrUmUDlUQwYUWRARL7CdPC?= =?us-ascii?Q?20xU7C7YCq1lyJznE7lEsR2F6ASyj6begg1w9ONzBANIzeYUmOksUli1RImV?= =?us-ascii?Q?K3Oe11xZwH4eoE77gsbU2Cje8tA7I2IdAZoBMX2TH0LszktcqJB1V8ldd3oW?= =?us-ascii?Q?rl2wbJEbsq5CuoTj5TUQOrWUnHPeky82WHJ9dlzOwHPW6xlcIRHNJzzPrp7p?= =?us-ascii?Q?EaH9uf+bLkX7/wOwpyS+VTOrsJ1I42/0eRZ+a2TKaR0D2/FGVO9Hp8jPfaX2?= =?us-ascii?Q?NWqSA09f6TyvQaCXShL0BjFwFEHxXNlKpECwCPkAi2+sSdABBpXkGkoYj0ts?= =?us-ascii?Q?sLj9D4m+084lVR4XQoWb7VoGY5DY99DKaKEpILo5rUXkWd1fW7K0SYwC27el?= =?us-ascii?Q?wSoCRvs8NW8CKp2mbLhR3pJghjYoPOwI5hbRi7MEf8jt2/e5d8HWwFSzDGGY?= =?us-ascii?Q?DxmxqW0/x8C9EmJqpLXwoVAUbNUtoviIbTKcrkxGen0RgIVdQVwdFcY12Qtr?= =?us-ascii?Q?bIanrg7cPMdE/XBHhj8oPmbOnJ80LOK+LUs/wGuxcxIIZ+NHkNhzBVVUPu3s?= =?us-ascii?Q?pyzeDIjGklXsF1/WFS1BruldUCdnPgZrFFZ9Q2L2Jhs981DApOcsFDUIO+9X?= =?us-ascii?Q?AWOYfAkxlm4ue1CowC4/xTdJdA6qnNR0z+tbJTd8ZzLgihXK0moIBMQouJrk?= =?us-ascii?Q?s2xRfm09H4Bd0MeI1z0OVddXb8aAWm5ZT48juUC3KSRXmlFhFQ+2Z6cc4v0p?= =?us-ascii?Q?SuIQKnxHmPtxCaLE1PCGF0n3YTx2hAR68xurPEOAFIH9C6o10w=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)(7416014)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?TVw5Ek9bNoIJ3tfSWzRu39SrTCfroHg2yldOAAK5PdK+tH89W/3vXkB2NJYm?= =?us-ascii?Q?Lg82G5SC1c4ynCeMz8jcnHjlsnmHTMMWvZ/KvzUr/gdHOK9A3Um8XEXqhdU5?= =?us-ascii?Q?EKE2yo96AlYlSK6rbiqyxy+P10ldmgI02baSVcvUQ8jK5+sAZT60Pt5UNpIS?= =?us-ascii?Q?pGI0o7UCMIo/JZYJHviGtaljtyf4uQs56Waf8Udc2lvmgm5R+8rSLnTMcBmR?= =?us-ascii?Q?rXpxEIPs7xPqFBPQNeMs+sg3ZME/H86irRjAeeQogNGEcZEERZsEojelGKM8?= =?us-ascii?Q?q0Sb1JD+zxhJbUPqd5LYBuSQ0hsyXV1Wo1euIjMJRcz3JsVvxNtBmbZG8Mrl?= =?us-ascii?Q?lBjFhKhcOAiOgSnUZbpoACktEAqdJaBD5SNXoPkXrcLo8zxzpnqJ2m0Kjm0f?= =?us-ascii?Q?pFLmHczewPZK5rEm1iep/4AYW6IKFrTZtkot1IKr7X7ew48esMgJg7x2x6QY?= =?us-ascii?Q?hrpq+H5aTcLbYoSN/eKA4961k4nAQfPa4FTW56pQZu/gr+gMhHoQMNygl+Qe?= =?us-ascii?Q?g0CqJ2jHWSmz3CfoRRPk964+YMxUHtsrBZ40FtgNEWkE4FUW7u6K3kW+GH9l?= =?us-ascii?Q?Ib9wRIW78fVEUY7UKhf2LNTokEwdnuv+/0YRe0bmJg/TpnAgZ5HoEpgDvKIz?= =?us-ascii?Q?tY3Obg55anZb2BAqEVjVm1gOrqYL/JW6WADjc8TVoCW1324QIJsnEQ8/OU9g?= =?us-ascii?Q?7brRiPLT1Ydux6/3KZ98clPUOPKbUayYSblIhP18PYhQT91/kY5iwl/fwxmY?= =?us-ascii?Q?ZCjNIY2MY5mPCFrPdD6xmEjmvp0ws16tUmudL476bW7PYcWhbnqGYZPJck8Y?= =?us-ascii?Q?t3MYJzuVgpwp++iXwSEjDn+GuQt3Qo43iShRxVi9YMcagMTQebaaTtAHaCMh?= =?us-ascii?Q?OrYsv6pnGoGlzOKNO6/lqQg/pVsT4qOBiERT7QiII2jnvmkFsEabEoMO2346?= =?us-ascii?Q?aXLJBs2r5OQRTOKaGaGXgMX8870OzL16CD/93/adorIhodreTaPR1ycO/AwV?= =?us-ascii?Q?z8RDBd7ieJVa0n1e7pLawDLMCIVDoWCggpMlwMUsn/yNWmataaREDV+h6tL/?= =?us-ascii?Q?0rwUluopCwN872Fj9xKWQGJO0zcp6irXOBk1YhA9slwTP4ks6eoClScjshXr?= =?us-ascii?Q?2PuKABzgwGaSsofBmegNg03J4tmfDzNtgtxFMt7qyNW+aW6hVbjP0MoKER8e?= =?us-ascii?Q?8viqRlOmcor1QKe3berQuJvwCcB2FFNnZw3x8NJVOPAPxMRoMw5fdozT1rQa?= =?us-ascii?Q?K8VvERoWe7zmKVMjRSXdRIFWRQctHObT8nd93ejXWUlpd1M2p6dJFT7SKN7H?= =?us-ascii?Q?1H8gmMvRxJHmQ9MIXshrpJTrnfbmO0E9uLf0dSP7wyjU2I+dhx9CacY5U354?= =?us-ascii?Q?hZLri571MxJ2r/9cYEGN2Y5fTJtTvytCS0nz/a94Zl3ien1S44JZj/BtGTQC?= =?us-ascii?Q?GxGeXiCWA4tXeRfIiW/8Xh9xIO/MtVkY8uR9E354+CuMqbev7p0WwrnkgVdk?= =?us-ascii?Q?cFKwlx1ckRJuAaEnzeWPtnZyopGNO3Ewh0uKN9MuFA/8i6AtVG0tAkzFkOLv?= =?us-ascii?Q?tciXvQJwDuJb2yCoHjtZMd4Wzy42GPJuukO4eYdbuIENZWatbp/MEr7COM2E?= =?us-ascii?Q?Fw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: TYaibFWSyP9wG70XQa4M5Qtf63TlhA1FREuSL4lN5RUCrJ5kkCoNS6QrhV6esnlIViFgMR9K824lpq/cNy34NfppRnDqa/65AFSxxn2jD8A7pq9tgb2gRPG1egGlI4oX51o0na+h/5oplenUi4eV1EhGnU0PbESlsSGVckZRS+Kv5GcbIJCopzEypDAxLN+9k1ARU297u6uM6fZwegazZ7DaitI3+SSGTFirdqdQUbdv7Oqw0+LzHVAfKii4ApYPc0uBxerufbNHcpyM8LC9dO+CQ3aGr4ZrVZfTpiqoKESCth4R1lmlEIRlYGvke8VXBZtEvLoQFFVhhsawIqOZI7FvCBTdH5ATcHQRgqkumlVSwP0IZohXh5sITA7IMJXEwpCo1id8cSGy7+4vT64xQ5Sex43ujQ3wlFFCH04LlenEIx0fEKKQR7/Ef0i/KDRgXt3EdUfb2rJ0KReZoDcxf5WyIhZl+5nBPGCUELqFabsnPm2tcIs9Fpj+pNZ5k5SY9SnRO2k2FH9ZMpmSEMQyG4wFmTnNc1dDwprx+s9AEiTD4xLWwQvtvX+A57qY07Hb1KgnOB4cLA7tgTrcAm/pku2S/GiqmXpUVUjsqxTYQ+U= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4786e0b9-d629-4933-c3ea-08ddf5fe4eac X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 15:24:34.8259 (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: aFvrEk30EfKVANly+EDPhW+XqA+mOw/YzGuyNLr0zNYLwamb5B3m8n99AS12vtMAgCfFHAbsh1xPZjVE42pvxwbNMMa7Rq/vZ4IA9s3doU8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFD020A49E6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 spamscore=0 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170150 X-Proofpoint-ORIG-GUID: 0AHnILUj1u7VkzZODwm8VilYIuONC7GX X-Proofpoint-GUID: 0AHnILUj1u7VkzZODwm8VilYIuONC7GX X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX8g7F7Fk2DXBF g1LJOq/qPTpm6Yl6d017jYjBzbUeuISnQusyPFKbNtkct+2GmZYyJT1B6muRGBvU6SNPOyAOEGK r90jhBGqMnnJzBkL152QsIWMcatF8ws02XZ/tAFKEPExwo0QDdDSpTPnR72gxlxJSnwmt5Nyesb DpmzJxLcd47f9h1hM8bpAZxYAZucRUTjqBMDEP7+hZm1zCaxICuqeTYfhBhQncxi377HCMQIrfp H6ThT/16is6yX8GPMW+6U0gvcNJbfAcM5GhY2L5Kws+cMLg7l+guyFtkfw0EEmIbclidbcTB5BT JQtM+5zvNYV8rv4ZrN6D448+bDqgP9zUSl7yyaGrjJy29phaIEvGyyq80Mcff3BHaebgHA739d3 RSl72mawV+Ubwj13rCSdgtgIlRVFBA== X-Authority-Analysis: v=2.4 cv=N/QpF39B c=1 sm=1 tr=0 ts=68cad2b5 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=VwQbUJbxAAAA:8 a=yPCof4ZbAAAA:8 a=_oAs_-Zd7h5Ft3cs7ucA:9 cc=ntf awl=host:12083 Content-Type: text/plain; charset="utf-8" Split mem benchmark options into common and memset/memcpy specific. Reviewed-by: Namhyung Kim Signed-off-by: Ankur Arora Tested-by: Raghavendra K T --- 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 69968ba63d81..2a23bed8c2d3 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(); @@ -397,6 +402,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 @@ -454,6 +460,7 @@ int bench_mem_memset(int argc, const char **argv) .functions =3D memset_functions, .do_op =3D do_memset, .usage =3D bench_mem_memset_usage, + .options =3D bench_mem_options, }; =20 return bench_mem_common(argc, argv, &info); --=20 2.43.5 From nobody Thu Oct 2 10:39:57 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 3BDCA335953 for ; Wed, 17 Sep 2025 15:25:18 +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=1758122721; cv=fail; b=Tq3FLYgse/snTmL8rUDblLKB+ZMyhL0s8kGxifIDxD/VPqUCTAghdzwJNVWY+tLB+kxrGR8YfRxUv3RXX9+dxNulgswvtOZhoHipYKy8LctZGT/rHv9o940H9c046oH2+NJbtbjw1jFsvN4l5UrrmxRUGQx8fvlPj43s7DPv628= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758122721; c=relaxed/simple; bh=va5PjuVET7bMg9lutx+/F8phNNFvAW8z8zgI/Z/NEeY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=sElhY7Tn9PytddMcxnweHOV2TaZMbn+QXeobXsGape793NGXrf8Uq6rz1sPvhIc+f5ZHe+45VphZVhlBG2jAn1MFuo7VgzAc/NH3UZaa2nnIRNGC3s9cxRXXG9GbrGNokpgKZ7XV4hSdOCRBQ03ymQe9F89g3zXnYsGs7YXNgx0= 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=YpSnufRc; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=JKmxrDFX; 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="YpSnufRc"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="JKmxrDFX" 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 58HEIVFD008348; Wed, 17 Sep 2025 15:24:42 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=fwqg6TK1hb+Lfr0elQAUySw4BRRSEzNjjtEsU0h0Mb4=; b= YpSnufRccd7tNvdMS9kQK/Aj6mGtvOP5q5oOomKscdQxkUr8khl5h6/sCj98r3f0 Qj2G45LGRDowRsnguvYOvzROccFAjBkjj1KrADzkJiv5s+lWg47jAQGYKSQtgP+j DZEG9Eh9G5nBcuXn6hjLOCXuvXF/8+Qu5R561wCZDzkGbhGSTN9S3RQoZb5LvIXt Unb9sxv3lJK4gbSHbNpofjququi3tGc2HfVkrLI9EEBJkjEO3oHj/3Q8nJvApRkl czuNcQl1b2a1w11VzE8HeNCIoRZJOBqO+OyUozSPpINumDBqZBi8fzIO31ctJYdU ZsQ1rSL8WREeReu4GWr/kQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx8hfuc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:41 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 58HDxEIP027229; Wed, 17 Sep 2025 15:24:41 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azon11010016.outbound.protection.outlook.com [52.101.56.16]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 494y2m7116-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qJnFRKk8r/W2ljLb66y0rPzX+V4WAzMy38MIHir3G5kLXRre+6NjcfAohVQvIq5KO7fMzw8i0AxXPSJq9iMxF60PRgtsY2DQdFkpVrfiQ2PzNZ/1wFR/5tSC47Dwu4nIzt7tmHJgHo3IAQIDRbgCOjsqS4k7ePS6SuKRHV9BW++uA+ODlxof8kPVxQCURqHBBmWJ//o5+zO2m3pC+C+BeBiJZInWh4ezXL+a2BZIM2ruxQepGG+V8rgj1FXugRnm7aObXWVEcHeF+HlkRUeRqQ0h+lTztBLTUbGduIQD3IGHg5bw3JXliUmChU+UWrzPmPCGkrFI/2zoumLRCMXl5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=fwqg6TK1hb+Lfr0elQAUySw4BRRSEzNjjtEsU0h0Mb4=; b=prPH9BZJqif7wMsp45y0NQlysFN9/LNTEKO/Bpwwlletpawe2H7AlJ9QZmp5d30wxGZtSON5tnj8af4BQQfCwZsMNBwKLeU5WoA36YrS5aUfVdFbuTIrw2/cqlZHcIUTM3Bsn/I75ljCNYtTbQDhvUUxD+VcfmasAmOzHAy0yLGmr95ykpbypr7iu30O20HlqEBA9l310vKHXLHbXJ/w+1cDVPuA+hjxd5WB2C60Wshhuz6+kqbRQg0vQOegr5Q+g3VCITyE8lGwm3s7cuU2G3u220Cj4fhQt5JwO9Mg3cxCCEfzKuH4Tbuhd4mzF8NUZXIsIwC/EircD7cXaa1I1A== 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=fwqg6TK1hb+Lfr0elQAUySw4BRRSEzNjjtEsU0h0Mb4=; b=JKmxrDFXEm83OYehBArqagQ6eG+Vmfje3+w6BwlWHUIeNHzae85TiMj7a3qprJuDi7xjKWAKMS51HE6MMrt/aMnmpXVv24tuiu5ywVVoLPwGCx++IMYn/fZe+lh8npwSFaOiErIxFgl64hwzCV2NvDLrZSYibc0rGKr5Ks3Q/7s= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SJ5PPFD020A49E6.namprd10.prod.outlook.com (2603:10b6:a0f:fc02::7d0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.21; Wed, 17 Sep 2025 15:24:39 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9115.020; Wed, 17 Sep 2025 15:24:38 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v7 09/16] perf bench mem: Add mmap() workloads Date: Wed, 17 Sep 2025 08:24:11 -0700 Message-Id: <20250917152418.4077386-10-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250917152418.4077386-1-ankur.a.arora@oracle.com> References: <20250917152418.4077386-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0158.namprd03.prod.outlook.com (2603:10b6:303:8d::13) 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_|SJ5PPFD020A49E6:EE_ X-MS-Office365-Filtering-Correlation-Id: a956b466-59a6-4a5b-a5ec-08ddf5fe511a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ZkpScP8/DCBGkX7w3KZu2+TfcRHzIngiOWi1axnvcvM0bEptp7tjoAiQ93jq?= =?us-ascii?Q?rzYbE5DAI17r0HoimjVNhlRe1hdLVx3bzJdvRJ4KNQhMo3duHh6JhD9SKr1t?= =?us-ascii?Q?n7yWrRBL0OED3RneoJcNJgeR+xEq6LNb/oHsrGeUBq5Lrz5SMdXKtTUcogXm?= =?us-ascii?Q?Sjk82juurJkLr1YXG3btsfsn+f20zbMWc+Jyc6VYhn906Pt708gMrSZ9yCc8?= =?us-ascii?Q?zRaa8EFWpGqSPXZVYYK9XwtUkW9mjBrhJxKMD9d2t4pCnst/8GDXc/JGkBFh?= =?us-ascii?Q?rNtzo+MazNnzkcGwQ+jA+4sJ9LtI8nVlWvRsMi82U/ticA64ZCVfyGsvMllY?= =?us-ascii?Q?2wHg1qg92Y7s9F/TOk/5kCGLmSheUZTmYvRGKIkfU8us/meVcvmImfZ81qhI?= =?us-ascii?Q?2/dIBrQExSo+qK/H7I3PO0pshpxt/JCPOW9vxCKMNK9pHE6h6cueyAqmmkZh?= =?us-ascii?Q?HUxlD58M+oItjI2NZR7YFqduTlnS088Uc2KrlwV3BrgGmBxH7iDTLoIt6kBJ?= =?us-ascii?Q?juqUd9+Z49Aitj2cpcEhvXOVsiJBUE1SAtlE+N2UmSIorEakQP+uoAdDbnoz?= =?us-ascii?Q?r46RmHl0grSt5PCPz7Z4GcVXyRCUMD6ZmoSwyL1GFZkQO3h9kh056wSogHru?= =?us-ascii?Q?oJ94sVDsMTNuIJMcjp68gZyVENdNKLHVEleM+H+ItBl06u6GEZ3awv7B4C8H?= =?us-ascii?Q?l0hCc9WEIOb9Mc6xmUOG/rLxl/Hlq1GDpHGwztJg/5wGBsyO4CVtarUpo4SJ?= =?us-ascii?Q?quvqpcD+1fc2XDtHKdxlYwsID8Ao+FEupzVU1TLWYXssQhPFCfsxaPCngbNj?= =?us-ascii?Q?NnF7Jep/jm/D4N/gFJPO0FebXdyySc58Lyg7oIJghbc/mdC+RkTdceuSRJq1?= =?us-ascii?Q?U1IUUZeGJKheVTbX3+YE+SA+jptmQ91LmR6c1SGa3QGEDpZZawSDqN32vGim?= =?us-ascii?Q?PdrBQQ6wEoqq4WUs4Zz559G1N7MtzbwnvcitBfVjC4XzlNKeI7I1iWukvgYW?= =?us-ascii?Q?bZdgyN7z+w0Bop/lqNFE9YFx7j2uDJYtXRYp4XIMMpgZy6auUiH/1bUhcVfn?= =?us-ascii?Q?h0FYFkODFD0RcnnC19iY2n/fUjVVMDb8i2XJhzw3sbTD0br+jE7t0kToaA1y?= =?us-ascii?Q?Oaj1WJZ7sOij9uyBNuvTohYMs3iITfWwppZCDrmnJ4nyKRYtrRD9LAFtKMfk?= =?us-ascii?Q?s7dHc63B7cFvTJVOQ1oPOw2xs1vubrooTmfYSR2Q5mNLVmfYfjjY3ro4SQnP?= =?us-ascii?Q?hpsKCSf4/tRny2V4aSK3udo/sOyDU+29d/P6dxWfUNg/9cvEn30PKbgEqwqj?= =?us-ascii?Q?ERp9e4WxFAWKn5Ugkifcf9ix9yI5hWg3GCYY8Py2TjWTgAt55neTCOHgOw3l?= =?us-ascii?Q?Xu2MBYD5/cQ6TNfResQ9DBEIj8p4vEPmA/ysEqJ5fHvZYxJiHRdq+UuVHb3m?= =?us-ascii?Q?AHwWP45Qdfk=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+YNZ+/GCulAxwQ/SjvCg8cwxBY0auDMkJzRi/iT8Y87VTSPghoGwpbexuw4v?= =?us-ascii?Q?YEUFLSHuYx5tC8lXhnfQ2fYqDzXbAI5x8kL0bj5yJLIH+/t7gfLbo2lUBhJg?= =?us-ascii?Q?SV7kjtuA4YPq/l/bXo6tIay3K5dqtGweVaOhPq8txA9XUGdAYmcv6v9UslRr?= =?us-ascii?Q?3ZM2OVJXRN9mTabKfN8edOcfB/zXrdicCs7ijzq8XXkuTw/QBnGze1kBrGTC?= =?us-ascii?Q?eLo/pbebvAbionxu9+FxQTm23XSRYz/GhwuQ99duk9dL7pjpopU2xnG63a+X?= =?us-ascii?Q?5hsdWWoXaunbc85+iyIlP9RL5fUAUtkTE7bJ2qhOvEEn7oDSsSVpCofDcdp/?= =?us-ascii?Q?65pKGEHYA/zqdHAIoc4axmTfeWTlH+Zh3Q724r8S/XWtzeFR/DV1FI13CngE?= =?us-ascii?Q?D1yLgnKpi9helu1qvKbzFCtdaDzbmxegL++XbNKbexiray2V4Ovm1Ceh1fpl?= =?us-ascii?Q?ITYmF5DKCldQFgzKlf0EdN+3ymSB0XyrmhL2SMZUH0P1b92SuE4MNRGZxe6I?= =?us-ascii?Q?QHafFAnF+hBi++wfSPh6DAMp0nyQhgQFQbosEDqyNqYx7ElmB8ctvWXzU9pw?= =?us-ascii?Q?dpcglneKDdxYK2quC6BrTbcys9DU/FDZsyPjgxzZ3JrjGDrJaOKSFqJcFgQX?= =?us-ascii?Q?5BKYGjHOTBEytP88RY6EEcH7WZbVq+yip9xc3YMQKq93Jja8Xt8GsNf6HwuJ?= =?us-ascii?Q?RF+NuGuY8PywNO0HIyZt0u93qaeqoGfzhkg8zq5RCea+elH6VPjgn5UjKFKK?= =?us-ascii?Q?/qReOiD7NjVAcWynlGU5Pb+uXX/BL49XBaB/9dACVq3AQ1tfDhtqT5jCLVyd?= =?us-ascii?Q?L9aQSYEe8HfFD/KNPZjbIFKFKmZye3d710b02AKy7EJuOueZ/y3Pfi4ULtHf?= =?us-ascii?Q?xgy5jLEBuCQugRJqxygExZjrJN1N64Zl9Z19gvErBPwY5LKG4uyzGqIwkbdz?= =?us-ascii?Q?035AV/w3JnMU+XpF6h5LGlblWVgtf/VMcbiWUynDLGmZkd9wL6qq0/vAi35v?= =?us-ascii?Q?zTOFmgtfKxf7mf12ZwBXf5Zx5iZ0BARd3Zx8t2j/EKA9eJ8fOXEjZ+rSOs4W?= =?us-ascii?Q?LP4LzJK25KY8Cr2qFkeDzbyll0VHOuxpR+xQ3CcgLezDOd2IW2UCA10h6LcF?= =?us-ascii?Q?EWN91AgpjhwCOjffkrpkVUG0afdA01OfkolIVq9E3sZfL+OlPzsfVUpnpd4l?= =?us-ascii?Q?Yp1RIXAUru7/qQgJnYJ1tDAixvwil+S8MVk8iEX+aRkP5EAd2PnhCn+E4p6n?= =?us-ascii?Q?7xlgQMP7cdYiM9L8v4Eu8pUj2cZiCPlixHmeqEq3VbSBrBbd5Nucp7n4P4qB?= =?us-ascii?Q?oILnzcVPW+M7NelFWz38gP4xhZZycW5Opw+jf4GTGqMxJx2rXAMmR2RqLv8/?= =?us-ascii?Q?Dvie5S3KcYSeXTRHKBOvMH4f/moCB8yNTqB0xwfmnyzGBL/50YeuQmgbEcMl?= =?us-ascii?Q?hMnGrymjpsDOxE3dJ0Gi+Tq4VrJkETESO2L/+1UPNz1KJY/Nkbl/fpaF1Zdw?= =?us-ascii?Q?SXLXXIWxonIwkjx+k3sN4NbhCjnaCVFePyf19FHxf3cpsoK+UUb+1xdBK8+5?= =?us-ascii?Q?HBr8/dG1RhmqlHL0MuW6MZVnPEhbQNrNJstIFQW64p4jVP6Hx/q4ZRfwX2Ko?= =?us-ascii?Q?Tg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: TpvOQLSMyTOt2RhKRpIhsbPopfk1P37ogZVv0wPKI/NA2ZWLr2TcMDfo77IQJKFWVWLvjlARVuZLRPgEpsbF8swduulgsczBRmMpid3do3grT8BAAo7knYglaka3wc3VaXc8gJZJIqb2VYwMFvtoxyVdPSQjL0NXsZ7+GSuOBfTJT4RngVnojeWRtuyypgfqc7KLC7YvoC9ZQWW8TwI/ly3xpB/g2yrg+VUKn761airsbfw9z0NPIBRd1HMcG/k5k2s/Gd7PHb00LjMoGTEpyIGbftNBHrt1miJmxWZP8Rc1s+J4vY1y6v5EZFazqf9UTeYO5WdpDASjSopo9Lo8HkB4RJ0HYk2iXc2JG4BiDze6UH6EWu1wU/hIYnEtMtbTVAXyXEsyuA+Y0A3Uqd6i20n/OfHVL4wqUXB0t6wPIJ/jUXiuZjCO6e8BdD8Sxsw5SLU2KRKXkuIscUC9pa1rBjBo8IENFIm+dgMLyzQcWJE1T+WYJNh+E7VqnXpNg802OxNpHGN5Sh1gGAGXkZjv24TUD9VVRq68Nt08ALY9XjsS5NKbdhAsd7rkMg3lpFIk+9vMcCR4tXHqfFI5gzFB6/+plrcj26IUt3dm+xBzhtM= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a956b466-59a6-4a5b-a5ec-08ddf5fe511a X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 15:24:38.9017 (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: rtCxlJvBN4GNZRAct+72PMPvwzqQIJfmMjuck/5kra0YJDC7ta8Yt/sZPGGE4fnFEChwctb85xEwMB7Xg4erSzHV2TpvYLFxOGQgqtK5Wgo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFD020A49E6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 spamscore=0 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170150 X-Authority-Analysis: v=2.4 cv=JNU7s9Kb c=1 sm=1 tr=0 ts=68cad2b9 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=2MWhjARPlSRgpm0SOp8A:9 cc=ntf awl=host:12083 X-Proofpoint-ORIG-GUID: Kool9WOgdaC58kFuojGTvFpWgrEVhTud X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX0Lzpqd14QDSG GG+xmMOio5QuiR2yGYKlRtpsLAxTiiLFX2YtoJKEaJbF9n/SNGRqnEHruWZmjBLi+R1J6Mq2kT4 K3iNPi5FACbXGx6+yBz2zsNCJpnMQ3rkrQRF71AXPF43C9Dv9Rx9lf7dF9Jy9h8af41Vj2peSW/ 6uOneoXqxmMii1iA8ImKgIqD5Vt+ypxUFiAVk4HsfDNMAx9ihdPT3pHqaVhy8KqxFDCnnhQZBeD qJJq3y05+DGFr9M2X/YSeLXZJvXUxNa29IwpluEBLuCNWiLTiZUxojlIygyno3xF6L00wLIItRS 7Lv5MQMVebMiBqog5Su6ztEN10pbJaGbzQbC0RxdsbliAN8y1Rb0M974C9waoKDMHguClpfoLId QXivmCBJmEJT7oLiRIQuMsV0izq7Tw== X-Proofpoint-GUID: Kool9WOgdaC58kFuojGTvFpWgrEVhTud 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 mmap -s 4gb -p 4kb -l 10 -f populate # Running 'mem/mmap' benchmark: # function 'populate' (Eagerly populated map()) # Copying 4gb bytes ... 1.811691 GB/sec $ perf bench mem mmap -s 4gb -p 2mb -l 10 -f populate # Running 'mem/mmap' benchmark: # function 'populate' (Eagerly populated mmap()) # Copying 4gb bytes ... 12.272017 GB/sec $ perf bench mem mmap -s 4gb -p 1gb -l 10 -f populate # Running 'mem/mmap' benchmark: # function 'populate' (Eagerly populated mmap()) # Copying 4gb bytes ... 17.085927 GB/sec Signed-off-by: Ankur Arora Tested-by: Raghavendra K T --- tools/perf/Documentation/perf-bench.txt | 34 +++++++++ tools/perf/bench/bench.h | 1 + tools/perf/bench/mem-functions.c | 96 +++++++++++++++++++++++++ tools/perf/builtin-bench.c | 1 + 4 files changed, 132 insertions(+) diff --git a/tools/perf/Documentation/perf-bench.txt b/tools/perf/Documenta= tion/perf-bench.txt index 3d1455d880c3..1160224cb718 100644 --- a/tools/perf/Documentation/perf-bench.txt +++ b/tools/perf/Documentation/perf-bench.txt @@ -240,6 +240,40 @@ Repeat memset invocation this number of times. --cycles:: Use perf's cpu-cycles event instead of gettimeofday syscall. =20 +*mmap*:: +Suite for evaluating memory subsystem performance for mmap()'d memory. + +Options of *mmap* +^^^^^^^^^^^^^^^^^ +-s:: +--size:: +Specify size of memory to set (default: 1MB). +Available units are B, KB, MB, GB and TB (case insensitive). + +-p:: +--page:: +Specify page-size for mapping memory buffers (default: 4KB). +Available values are 4KB, 2MB, 1GB (case insensitive). + +-r:: +--randomize:: +Specify seed to randomize page access offset (default: 0, or not randomize= d). + +-f:: +--function:: +Specify function to set (default: all). +Available functions are 'demand' and 'populate', with the first +demand faulting pages in the region and the second using an eager +mapping. + +-l:: +--nr_loops:: +Repeat mmap() invocation this number of times. + +-c:: +--cycles:: +Use perf's cpu-cycles event instead of gettimeofday syscall. + SUITES FOR 'numa' ~~~~~~~~~~~~~~~~~ *mem*:: diff --git a/tools/perf/bench/bench.h b/tools/perf/bench/bench.h index 9f736423af53..8519eb5a42fa 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_mmap(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 2a23bed8c2d3..2908a3a796c9 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 (*mmap_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; + mmap_op_t mmap_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; @@ -271,6 +283,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); @@ -465,3 +479,85 @@ int bench_mem_memset(int argc, const char **argv) =20 return bench_mem_common(argc, argv, &info); } + +static void mmap_page_touch(void *dst, size_t size, unsigned int page_shif= t, 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_mmap(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; + mmap_op_t fn =3D r->fn.mmap_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_mmap_usage[] =3D { + "perf bench mem mmap ", + NULL +}; + +static const struct function mmap_functions[] =3D { + { .name =3D "demand", + .desc =3D "Demand loaded mmap()", + .fn.mmap_op =3D mmap_page_touch }, + + { .name =3D "populate", + .desc =3D "Eagerly populated mmap()", + .fn.mmap_op =3D mmap_page_touch }, + + { .name =3D NULL, } +}; + +int bench_mem_mmap(int argc, const char **argv) +{ + static const struct option bench_mmap_options[] =3D { + OPT_UINTEGER('r', "randomize", &seed, + "Seed to randomize page access offset."), + OPT_PARENT(bench_common_options), + OPT_END() + }; + + struct bench_mem_info info =3D { + .functions =3D mmap_functions, + .do_op =3D do_mmap, + .usage =3D bench_mem_mmap_usage, + .options =3D bench_mmap_options, + }; + + return bench_mem_common(argc, argv, &info); +} diff --git a/tools/perf/builtin-bench.c b/tools/perf/builtin-bench.c index 2c1a9f3d847a..02dea1b88228 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 }, + { "mmap", "Benchmark for mmap() mappings", bench_mem_mmap }, { "all", "Run all memory access benchmarks", NULL }, { NULL, NULL, NULL } }; --=20 2.43.5 From nobody Thu Oct 2 10:39:57 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 1B7E6335944 for ; Wed, 17 Sep 2025 15:25:17 +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=1758122719; cv=fail; b=RmT6ZOGoxoJH+FoD1lJ9rrIAJjuDpwxIZYfqFhIk38BWAV0hc8TBACyCnjvuthzJ2wNBRCF8PhLlWsC2gk5xtJCFZC0AnKT8/NtawIGJTirZAU5zGgvvWMtnShQeArLYTs58jeMrrNlQr/l0jfAIEDKvZ/ews3C1N3c3VIjivkU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758122719; c=relaxed/simple; bh=rxzYvBeS7MzwzRCh4wsHnCtMqLlXUYHZmifC+h5Koro=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=oP79FQm1HoW1z+D/dN5EO6IU4nDZ6ZbKtDhR6WwH7J+6YBTh/FHKBeOCBpTY0BcoSwHhPEH5+Hy1E1Y1gVqXxVLjJZvYxCveAQjhiPqLdUzOrtwYB05x1FSqbQmFoMH9Et3MtNSa3xhZGjIZWL6i7sjl1+0HE6fGaJkhblI3HBw= 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=VQrkAp19; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=XAvuifQ1; 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="VQrkAp19"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="XAvuifQ1" 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 58HEIR61001799; Wed, 17 Sep 2025 15:24:43 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=0gtPsevvjfTF1ExhKn4sOeAYT+OZvZoqZh6GdkcevmM=; b= VQrkAp198JBsgzW0NFte83yjpQk63xuK1RMFxkHZCSC0Su3f8ODILlU+/RVQgVUM ZSW88393kxVAPw5Om2r8hQHAMBtsYJ56Bxpw5yX0BOq0eDL5WE9Mkzfxqes+Ro+V St0DwEIEPkxolv75aAErKGXZO6cwLs+G52gvdWV+rC9wT4R3N4OLf35yypkv+Nx1 HJFuOvxi11bGLQ5ESjn+46AKadhJyH0v/BffKVuee5N7dsn+WrIIauIRT2hKd1yI lv/OEjgNVLbJqCN3jsWO3dkVQLmkXNFpkiYr3nYbP7yXogkhGox38jn4bmFDSCCE 2WGwGlf6cWb6AqE6NaG6lg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fxd1gwp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:42 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 58HDxEIQ027229; Wed, 17 Sep 2025 15:24:41 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azon11010016.outbound.protection.outlook.com [52.101.56.16]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 494y2m7116-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eapRurKy+YUxB+XIZN6gS9nTn+B6ZqvX4amoINB/Luctk8G0DVNNCypODCKOEO9vuvnIIluUH2jwBVKfCGGm6DhigXG2wRKojEAZ5o4ZCd37fyoapw21FfxDWRttPqtt8mat0IMJqRwqy6FBqJD6A/eNIFoTOYD27ZqgppS9MIPkm4m6sRbRZaI+KImZT/vE3uA4CxWVm3l83PYfjXINPT7pMYtz7w1AVLon2Ae5mDuZbE3uVCsJpGCSLZBMjeHJvGZNvUu/+fkobxolWh73tR2OPYEi2vEJFs099PWk9EkcW05XZqOGA/3JohcSAQJRd8pNGxee38xviQea9f+rkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0gtPsevvjfTF1ExhKn4sOeAYT+OZvZoqZh6GdkcevmM=; b=gHG5Os1IxlSmZA9P8rBXg2VLCJSqHyBy2/N5GEHGV+gQ9CMO2gJzQNSBVz27jmMeHyEZ9v52J/aUgzkkS6P/0/ylOfzJ29nZa3Ax1c1YCeO6r5RyceBfPWEqctgpr+Q7CKYpmMfhblR8hsuozE/BiTZmuso9ZB8lnfuZDi+QIkMB2BQZug/YkvkZA+EEIZxEGXOpZukYQkCX1hz7AnMxbXI9lqbdeVE5kH73L7F4Ul9wa4IR8DLFHCVDXP9iZ6pEWEBRojKb7+pwCnfPdi6ZHdhLL7qATwU7/P1h/Qvt3e8YcQTVw+vq2zoXTYVddLhWYUlK8ZMC92E0hH0+22CAxw== 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=0gtPsevvjfTF1ExhKn4sOeAYT+OZvZoqZh6GdkcevmM=; b=XAvuifQ1/kDiC9kGEjyKYrwHaAlZvjPmWQZCsAX5LmxoE8rzMzOSHg5uPA4kFi5Jq/nQ4w6E/NjJNcVSlWVQ5coxz6UNjBB1j5fzSZnNHSuZ4iIZFTLhz59VlkipMrMgLHSUGRok/6dCM0lowaMbueL4fU4+AKjBjaka0vMuozw= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SJ5PPFD020A49E6.namprd10.prod.outlook.com (2603:10b6:a0f:fc02::7d0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.21; Wed, 17 Sep 2025 15:24:40 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9115.020; Wed, 17 Sep 2025 15:24:39 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v7 10/16] mm: define clear_pages(), clear_user_pages() Date: Wed, 17 Sep 2025 08:24:12 -0700 Message-Id: <20250917152418.4077386-11-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250917152418.4077386-1-ankur.a.arora@oracle.com> References: <20250917152418.4077386-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0164.namprd03.prod.outlook.com (2603:10b6:303:8d::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_|SJ5PPFD020A49E6:EE_ X-MS-Office365-Filtering-Correlation-Id: ef01ea91-d224-42d6-5b2f-08ddf5fe51b1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?mINFUdUtBgfFgR40Q7cmijKXz6AdMadQvNFbLDtlUxiOVe6I44SHdVjFwAIZ?= =?us-ascii?Q?GhbKEiqAQmIZFJu9c3+AuTkOCA4HGG1fm4Sql3/g1haWcYLRtlAfDHxWc4GX?= =?us-ascii?Q?xd+qX7mYzkN8PYrafBHe4PKLO9hs+aVC2xPj2xYsp2KCj9BoJdu9enfMcfMo?= =?us-ascii?Q?Gv9mMRvuRx40mVUA1QD22JuV2+sS4daIyodbv6pDH/VDnLw10YtbHyGg5ZuH?= =?us-ascii?Q?nq/qheehajHzYaJPJkInGwLcNwH4AOSuX4yvvHFx99mx2inJjU2nj3V0Cgju?= =?us-ascii?Q?vBh1/lHYubgKDvzYzFaS6cq4n+Opi95uYGijTTTiJZWYFFIzcHZHfBw/o9CH?= =?us-ascii?Q?Z9LAKfbE1zXpZMx6gMx2/BL4Ccgb1OFOg38e5l4Rv825tXHfYva11+3a4Qxr?= =?us-ascii?Q?q1MuyNrCsfnoMdcWR4hSa9kyZkM0pDRBKhGgGQakO8KzqIxdSRpJaweaKmde?= =?us-ascii?Q?6Ni/AN5+dkwyh3ot0MoC5QGSdKVGkIbydk4K4ExDOICy41xh+DUg2XGNAdNa?= =?us-ascii?Q?smCCylyJHMOm+7dIckIPi912/fNNFU4wf+lfz8HX+fDenn386vffiUSIJdh2?= =?us-ascii?Q?kBYHtKohx3e8EBUy9yQq7nl8gEdt+ndIq9RH9eArUVB5ebNBp4VV7RxZRQPM?= =?us-ascii?Q?d2NOW4tOJCt6J1y8kkxc1reuZXFSR8eWc8w8iwQevXWmEqy77BWgJSMAOmha?= =?us-ascii?Q?/OVtDrsYuAtZ3cYkNFu/EYi0DkQgGC1ZHhRKxlHS9JpeNlj7IsdlhfQrFvyd?= =?us-ascii?Q?3PnOxUtoZNpk65bgv1A+y4GtUyqWgvY1Wks7yXL6Iuf6qtkikqJ06UgXqDRF?= =?us-ascii?Q?oa4Vap8PveapNo+UuK3aXVqwUivXRdlu6n068t7sXF+qzWGRjzNEfqAo3PiX?= =?us-ascii?Q?5MQoOzNCOQvZmcfOdqy01o2L1cd6+DPYcQHbBOS84LhEo4+SBu/QjvloO/RT?= =?us-ascii?Q?4XPE7utdkmrOavWMSIDSuZgbW1vbgnWtGDFqYZzk+HE4QXyWfTLga0PwpfEy?= =?us-ascii?Q?N9pAvX4CAPYuh6rp31oboD/0z34MurJQaE4AjS2ZZ8vDd1pplwHPltH4FUl+?= =?us-ascii?Q?7NQhRjXd9JmLAsp0RdWXrgIvfGR4mYP6je+JOTPV1mMV7TlNv2wARiFqSSir?= =?us-ascii?Q?U2Aq3zvRWE/sSh3p2+jl8MtnCfz6vqPdE/Oqb4ZaZWPuzESrv1FQ6UrjIRHi?= =?us-ascii?Q?nizqbe9vuO4WKrpGJ1Wmzrh7Oci8UJQPc6U99C6YcfaJsNJJutKI9uk7h7zv?= =?us-ascii?Q?rH6dT6CYUni7Gn3Tr9yd2ys1JAOZXgheOWhK7vf6FyfUHAQ1z2y/T6R13VBa?= =?us-ascii?Q?g69HUqii4JVJxeW4yde2iu0cTyrfnw80WwtaLPco/C2AnpzgLECho2uMiY0j?= =?us-ascii?Q?RnBNjZ0HER75jRVyhIqSuNTUALN7Z5p6VY41TTnHFYiSpKe/IaNPtJ+P+/WB?= =?us-ascii?Q?Wvr4Xy9jrXY=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FbIa5bGMTqecq2B55m9vThTNi92qKvp/pnl1xEGciTP85iUbj2xyutQMuV3o?= =?us-ascii?Q?MSoJzFzBCYS9LhlaCBzChMlpOaxSvlNUaelomHpNaF3vMa1hlZ4jPteez4to?= =?us-ascii?Q?4PC8dhdnFAjk2PjiNsathDQMT/MY4+xuoYyT4joSVrcu6T++JoYN8YevtcFl?= =?us-ascii?Q?JgOzbgS2vU9PlHBYFCcWRn9UJMOUhiHh9etjB3ZKmZpotJx36LEp7Hcu4Ihc?= =?us-ascii?Q?jtmfvEizpmbRn+/oRHOK9bXISJUHe+XCIbWXMTbM4EOC+qjO9Hxgmhz77q5A?= =?us-ascii?Q?o4A2SoOyxPXnquf8g1KI1FCPF6RwDYAQD2L279SLe6FO1L34nsVkFVvfCltk?= =?us-ascii?Q?jthCleHxS53mQBNJ8xl5Ogj+FPdxjVv3FlztiE789UjGDrKjGbNnultkM8xI?= =?us-ascii?Q?YxgAzcnh4cNe6IOWqUQMQc8i7+jqE+XMqGUWErFxqP3LJ2G+lRQjMsyfnzBY?= =?us-ascii?Q?oool0Z37sS/QFtimj6r0Y9tl7S5vJDrmrmsSNqinGJs1a5fi7GzCmnFVLZtI?= =?us-ascii?Q?0aoiKdvp0n4d23PCkKkkBy9f2a+79C4QjpfYyaLaY9DeSIGeEkMcbKfvpZ8D?= =?us-ascii?Q?JFOMsXZw0ZrKa+X3+Kv+nJpwQCBUNu4VU/R0c7rS5+cuiv1UCJoGfrMYE3pJ?= =?us-ascii?Q?gco4bnNHtyzpc6WjrgFXQ8yLVu7I+4dHFqD5L4bdWuR490h9/UshHtWBwcSC?= =?us-ascii?Q?sF2rpE869+md70c0lB6pu1WTId3oue8owrRTLVVo7hX8BBYLykg5qBAHguVP?= =?us-ascii?Q?wD1tdoa8+9MOfT6Q9CIEY/ZjLPfaAaztqIMBYJ83fMVvBD6x4Mk5xozzy3W5?= =?us-ascii?Q?T+9Nq0va7QaFGu+UvUeuAZI/U5RUALWQGeJSuP0/cYbfXmXR6j3C+a1L+/6X?= =?us-ascii?Q?tK+0AlHdJGxyCFjxTaHLjEiaDvyr8SYKvqwuU0zWsk9YwDz2wgDpGtlm77VR?= =?us-ascii?Q?z+PcwFXgFT96qdQV791FP3q8ir5X94A09znlWYfVV2zU/ffUqIfz3jaJXLCC?= =?us-ascii?Q?rOuwD6L1YpPFF0i90NxrnKQ75ndsmqZ7PkAYwQx8McfbZw3DmPQ7FYRlJ39s?= =?us-ascii?Q?MdlW+W7VBzDjahs77RzO8NgYNy9cduJgVzdLoTwkuQ+jgieXH6oBnD9rLpXi?= =?us-ascii?Q?TDfaEEBxF2K/3jlPG3aj+9sLySukFIjDyqopYHgxjJxftGFKDrr2w1xY50+q?= =?us-ascii?Q?LpC6oY4fkHPmPBfnPuxt0LBLTk6u+Clw3T8h+YCbCNSUPfTu0rmNco7XCBUu?= =?us-ascii?Q?I2eNBpGYm7u9BIQ4jEIhqLok+/CbOfmkn4RjtDigck5TxT5aONpFX1wAffeD?= =?us-ascii?Q?At38mSzhvd1QMtKPWnHueEKvDh+j85WKOz4RlQOp2Eye+7GH0TKcWjTjBewb?= =?us-ascii?Q?pP2mmHcdR6tQw8iQNvq2HMqgGB1ArXgiDX4hclVQXDSJ1sh4Bcgqtr7Q58Ut?= =?us-ascii?Q?QCP2gFzfEQoSPNioV/UDa8Jt0mkLmAHEyRKJDEmS87mWM4bbNwQ9iLBwng01?= =?us-ascii?Q?tiVkBOAk/7sYC/Qqn78kLTBt33ZCCEJc3hQcY76xjoyZsqlnCBmVArAVI5O5?= =?us-ascii?Q?OhoHMAOwj/GWl8HckBjObjL8jFNmTP9pgWha+T6q7mWO3j3tGWAxwImnujTn?= =?us-ascii?Q?SA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 5+Pgc/zczGUaZIoVPxPuyauljDyW2iNJrMX3ORYGCXb3nMn+6G6w5io5Kc9NqJrk3RnOqoo4VETzIXTTnliMTBrQ3aE1/tKTi2be1j2pVrmBHKtG2P6XIz4kaVVvh9PTzoHnXszJw/5KxM4la+m79nMs5LyCMhVBnbeFl8bI9MQy4m/4zZkvgQNxg9rWf1w/Na3vecFH7RdmOFljLywzqcFbEg+XJTVnO2uDRaQhN5WirPi2s5hiK4rNxUq5WtBaRxcbWGJTOcxS2qhz5P7MbmvSGZfWQo7hO3d2kQ4rVu1Gu3eZy6t6cHCgZlKAGpul5CowOrpLfSX63HTOiq4lHPUy2h60bgaLtJhaazUGiYzUYyAOCo6MMCY3D5QJlhpNAwoW9raVWE7v5AXnPWfCrTwBS5qJC8Z/t/mAPzIMxpwpLPIg7xOQSsfQDck4QrsnyR6oZPqLRZXmNejxf8tsCov2xRsmIEoOBdxvlVccObag3r+lE4ccGmvhl1AhKs0cf0WoAbbF1c3cM5rrxcpihFH0VC6TkHGY6CSok/n3+cCa3ooOb17O+Jf43xS1/8QuKKCkxnUBvomn79Fyjk6gJ8p1AGV0fT7d4KIZwWWT2+s= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ef01ea91-d224-42d6-5b2f-08ddf5fe51b1 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 15:24:39.8942 (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: Upb9cRZUcFbBg6U+3JAONEyc+xAqVs4MGeTOtm/fxSefDsz7yjgoODVHGcSHuch8KlnzGlERNSUdUYjrSOA0g1CcioJHVQdgA8FYIfkJUX8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFD020A49E6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 spamscore=0 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170150 X-Proofpoint-GUID: xoWDTPuKMtGEH4uVsH61OM249YcCpyK_ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfXwdoFLj5kRjy5 rk134euoH//gzEzzyYDadCPCVmajf3n2I2Lwvxp0w6DwMp8hu4GaJUi7akd7Otg7ndtRhQA1ieo /mFLFLisNapBsShn5BLgDbwysEFx+PCyqUkWiDcUoz21AXQYuu+QNnPqpwHuoZ5w6Toq5rtCqWZ yczZeh4kBTlmaJd5vVz1byvZEBTHRJ+Wi2SpogUBsXakfEqYbTGOBNXKiCFduibjB+3/Uk4/PHT CLFYwANS6CBHxhkfSHw9SJdfX7NgKFfdrh4y6hy9i0UquojIzJFvnhjMwMqWNNTyLdF72fUaln1 t/BXtAjvPfZvycjdnUWzcAHyUWEvSi8EKIeGjjzXx4uvCtqZ2NEheuavtAhImKLxAODK4znAQIU Rkkf3X1Ah2VI51PBwvQ91C6PIjifww== X-Authority-Analysis: v=2.4 cv=cerSrmDM c=1 sm=1 tr=0 ts=68cad2ba b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=-FcHfTexsUZGmB1RXeUA:9 cc=ntf awl=host:12083 X-Proofpoint-ORIG-GUID: xoWDTPuKMtGEH4uVsH61OM249YcCpyK_ Content-Type: text/plain; charset="utf-8" Define fallback versions of clear_pages(), clear_user_pages(). In absence of architectural primitives, we just clear pages sequentially. Signed-off-by: Ankur Arora Tested-by: Raghavendra K T --- include/linux/mm.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/include/linux/mm.h b/include/linux/mm.h index 1ae97a0b8ec7..0cde9b01da5e 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3768,6 +3768,44 @@ static inline void clear_page_guard(struct zone *zon= e, struct page *page, unsigned int order) {} #endif /* CONFIG_DEBUG_PAGEALLOC */ =20 +#ifndef clear_pages +/** + * clear_pages() - clear a page range using a kernel virtual address. + * @addr: start address + * @npages: number of pages + * + * Assumes that (@addr, +@npages) references a kernel region. + * Does absolutely no exception handling. + */ +static inline void clear_pages(void *addr, unsigned int npages) +{ + do { + clear_page(addr); + addr +=3D PAGE_SIZE; + } while (--npages); +} +#endif + +#ifndef clear_user_pages +/** + * clear_user_pages() - clear a page range mapped by the user. + * @addr: kernel mapped address + * @vaddr: user mapped address + * @pg: start page + * @npages: number of pages + * + * Assumes that the region (@addr, +@npages) has been validated + * already so this does no exception handling. + */ +#define clear_user_pages(addr, vaddr, pg, npages) \ +do { \ + clear_user_page(addr, vaddr, pg); \ + addr +=3D PAGE_SIZE; \ + vaddr +=3D PAGE_SIZE; \ + pg++; \ +} while (--npages) +#endif + #ifdef __HAVE_ARCH_GATE_AREA extern struct vm_area_struct *get_gate_vma(struct mm_struct *mm); extern int in_gate_area_no_mm(unsigned long addr); --=20 2.43.5 From nobody Thu Oct 2 10:39:57 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 153CD34A32F for ; Wed, 17 Sep 2025 15:25:25 +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=1758122728; cv=fail; b=rEttH3MDCbyPhf6PYChhgadyuBdVATU9GUIIHMOAu1ATpfpOP1eUKrn87IageVMxlN3uca9C195eeO9c4tlZTgaUHBbcFAX2f8fa5WoI4mLsJL5hDVD1/WTROiHtXhghK5yJAATfFdCDs36UvERHzgALZYSgFtRbRy9JtEXqn3Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758122728; c=relaxed/simple; bh=8hPsNdy9qCXf125riU3MzFZFPfQw9rsCP96FCuf3gDY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=YV0DQZBDFdFsSLo+Hd3iNCXO+EkVmXKNVUvqqlLOaOADpv6XW8LigukMi/ibNxK0NQJ8zNUEedVKnFSxCItcaDtGg/SYQmbYdp+K3BASXzRIEG1nIssNiVd3B3i/3QRdJLY0Um0cyuzkelOHXXVr3H0crPI6gQVwB/cPpe4OLVA= 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=Qo9oF15n; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=vZ+YcbDl; 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="Qo9oF15n"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="vZ+YcbDl" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEISxZ007341; Wed, 17 Sep 2025 15:24: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=1jhh2wbXgvNKGlkz07LK3EJ3G2Jr6Z6dAyuV5F6P0xk=; b= Qo9oF15nCG8GGsM7dHIDGb3LuqI8TzIZmiGN1vQMa79CqqZu9Pw3w8FwGpftvXfm sSgckhDFNbfVZh8EUxuyT4RcolcBXzljQNV/TSylmX68wMRCegZd3e8XmoGLJvLh uF6dSuBCI32+oH4Op6PZkSaRrWvJ1RqAAQoJ6pCpacUQ/s8ErKfwdKTQWLdQ5/+O Wr+BtFQx38UuKySokWhIcLU3bHZPmkTbJYNs4AyPNVw4eQV/+IGcckix46JqeJuq E336x68DE2hvkoa+E2S1yeP1cxvs0lBWeuKHbmfhm8whJ6mu3Gi5ENkmNnHJWuNl 0eHEpGz9DrSicNFF6qFt/Q== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx91gsy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:49 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEm8dH036930; Wed, 17 Sep 2025 15:24:48 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011054.outbound.protection.outlook.com [40.107.208.54]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 494y2dxufg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MuGxvxP/YQe76pSKJEvSj/b6f8BhE4GU1da0jdzLZX8nrCYyY64ORVbsmeE+8ywV75Brxe+YkGguPIuCXoENBgRE1ceoETMjUa33+rGm62VmD+H5/+qhJneDWrKNCytuILzHppe6gVnB8VILd9FjY3Y9GpMy+2OS7erJeKhcIOc/xyZEM8oWDh2ckUbEZStdc4ugTj26buAMRzTprRAYglg6k1eq1cDOfw7L2YG2jPCErTH0SvnOzgoa22rmLe5UO7QUbo2bERMy5bnFcDr+bKQWcMqVgvP9a9pKNS2cVsNoPkwkRwpa6bDHP93Pi3Q5IwJifm267H5yREUBI+DmmQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=1jhh2wbXgvNKGlkz07LK3EJ3G2Jr6Z6dAyuV5F6P0xk=; b=tNdOgFAH1o0BvEmmpU4YqM4g97vPpsfOLcdfbNHkGFkRFGUDAeyJIFh5oJcqbMsIC81Xlw+WTX/Z5IxNLQlFUbBQsBmSQBtIos+fuKYd1zOQZFuAI2tNADj7mfjGGQIEQoFhEKW4VObQUyTR9a5M+cKBVfp362FkhRKr4LbQ5+SzsiXydbpMU3MYXmY0+9kOBmwrLAQ+XbSMn5BIBlp1jrU77U/ezw3q5T0oiLaVwiC8D3ArV0EwwYpvMrCgjLxuxTql9ALL0xb3jeQD1MK8ihUrqovzUrXsCjJJg+8WyjpxrqictrsCvBN8Pxje7LRrz3SjisAywM8/GFHrvYDPlQ== 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=1jhh2wbXgvNKGlkz07LK3EJ3G2Jr6Z6dAyuV5F6P0xk=; b=vZ+YcbDl2qoEu0d3v4Q0D5YjLQYj6Pdez2rCUiA5msjn7vGutr2VoaqG9l/ijtAO51F9KTAwwaKtF6ESD6PzA2oUT6lZX+tvhgE7yHEew7rTF1ylOHx3tu0wvvmre2Aa9h8eMH4V30JyOFRxXLtRZYqyQmaIPLL1DSxv+AzlNZU= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SJ5PPFD020A49E6.namprd10.prod.outlook.com (2603:10b6:a0f:fc02::7d0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.21; Wed, 17 Sep 2025 15:24:41 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9115.020; Wed, 17 Sep 2025 15:24:41 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v7 11/16] mm/highmem: introduce clear_user_highpages() Date: Wed, 17 Sep 2025 08:24:13 -0700 Message-Id: <20250917152418.4077386-12-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250917152418.4077386-1-ankur.a.arora@oracle.com> References: <20250917152418.4077386-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0176.namprd03.prod.outlook.com (2603:10b6:303:8d::31) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|SJ5PPFD020A49E6:EE_ X-MS-Office365-Filtering-Correlation-Id: b0716c09-4eee-45ce-334f-08ddf5fe5256 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?F1/luQa3ar69KbRC9isGlwcjOdsc5LcXYo2Eym/TJ7h6TL17XNJhFwMHSRaj?= =?us-ascii?Q?20qbLlTgSj2+3u5elOZb9QPyIP/UiwK7ofDjS1NFCj09mZdP0nyw7IHXsU7V?= =?us-ascii?Q?xBoMpnFmOL+NToFu0tFUgLPh+B47a4VqsLWKm+en4MIFa5cbea/6QPpEqSYJ?= =?us-ascii?Q?X3CLKakdxX+lZAFR3IgETM0vwGyv96PN1YzCfISlwAZiX4A3mIbVK2t+1c8t?= =?us-ascii?Q?Q6E3IsQbGaTNYOqxxxc+2TyGlZ4kwKig32Li/uQYzybo0nbGtNfALoIyvqiJ?= =?us-ascii?Q?dwqL4YgtFB0n75QjIfV+xBC7T7OrUzeYgODQGDSsAvg16UIBfMXP7NbDdGM4?= =?us-ascii?Q?UADVU+QCjPXiJEIJO9yn4S1cC29c46dLAFodoZ4+8zQNQ40+48UsyxK09DEZ?= =?us-ascii?Q?WP/H63/0sc4LsabHpzPvKErU6tV+K6+cD0dOh3SU2zg6XHkSSpeUKFxb9Xpy?= =?us-ascii?Q?DVhKuc14IatwIxx4tYQHuGVpBja9Jwywt4SsMFQQ0sRt0IP6M2VsUYt7cEtb?= =?us-ascii?Q?9f+oHysCrBmVU7Bd27iaoP7uzzcDM4IM7vQk6IP05mUtB3+GZ0oXKbyKbJCj?= =?us-ascii?Q?kj7tc7hnDUgBIh6q5linbtyrQJOK+NTaDRvm1U0kIJShZjUmSXr3AGn8D5mN?= =?us-ascii?Q?/zB3Dshr+t8nBG3vqyAyigbcwS45Lz8enHnGB2NVY1E1MLO2IItTHjmQ6g1+?= =?us-ascii?Q?nMDci7j4C2gKKiO02V6hzqbrt/eYZifddGqlTKhK+GiZBmpvhKK1m3IeFK2P?= =?us-ascii?Q?ZtOSKUrQpoKmQCeOi98rqsHPX0QEHKhkCdzobAKO70C4xYjOuW6XuCriA/Wl?= =?us-ascii?Q?KCWiByHbCy0zCx8MGquEbLqmV09V8vpQf9Wsr3SQmUeTpEjF8Ow6DZXtk9wr?= =?us-ascii?Q?FQF3lxjKz3hCfst7140cD2Zb2oQ3zIjgIEBT9XOFG8knhK3GftY5XZ28PYsv?= =?us-ascii?Q?8Fo5Bq7J+fc8AY5BODZio+3s8Mx1q7MXg0vC0cX+j2k3HIp/lP8tWfUdRi/+?= =?us-ascii?Q?nQPxjU5trONcBapx4ifyiMe+0f036FBfIcYFaidz8I619N8+tzrbP2do9rP8?= =?us-ascii?Q?AgkHGNLsMr3qn+Feht6JzkbO4Ku8ACBzMyt1cjId7FWpRheIDENin7iHJk+h?= =?us-ascii?Q?sFJ/g0kCuFIPNBqKUhh7Uw3TZQsYcKCID8/83Og3AP9XHdnm2zR0Wxk9Kf1z?= =?us-ascii?Q?Qq5DsQRlurWhfU59GBHzILgVHw2hmCsRMOzLUI4WT/rYeVHsdawSgNpnPjev?= =?us-ascii?Q?wcmp58xBZ+pS3LCyID6AmCaOTU7cZqf+7uRVmy2veeWVmqEVvMzm8WfjsO89?= =?us-ascii?Q?pzSd6BT9sQ+F5veB7GkRzJuhC5xJYGEt9q4uSsB4AtPe3JMzPX+FI7PoupoE?= =?us-ascii?Q?M0kKBRk+xu4Q+Gw+1YV8cI8vPxXUImEsnpid9u4MUyCHRtxZ+Q=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)(7416014)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tX5jAygqLRF0VvhWPAswLRUIg6+pBs0ROUhYbaFyN9/bb1WztXfmkuHGqydY?= =?us-ascii?Q?NbMSF9z2UiSMUqiYIgwPtOAvUWnYq2y41Vv/Cg02FaQoxXuZ9GAUfQKiN6LY?= =?us-ascii?Q?Gf/PdWah3FHub17l+E03ryDR0CqbJBQm+gV/yu2L+7uRi5LGmg0dRrY8hvKJ?= =?us-ascii?Q?2cBacn+kD1y9VG4H/dzX4RRvrdbZweNg9sV1hFakomB7ORwaj8KMF48YLjs3?= =?us-ascii?Q?ncG94+mjaBl8boqDbFnDE2FDodDdGdquqUzyIojkuMJhCrf6oMkg3jLE9Q8r?= =?us-ascii?Q?6oSKvuZsg1WYQIkSeq3zXQu28TkRZOPkVWon8kwnpJbFEuaprQNTiyDufk5W?= =?us-ascii?Q?fjMjPr5BFSjkfdDDpBKkVSndu1TU1l+ZJ4VRBq48mfvRKllBpd+rhPfYxSoC?= =?us-ascii?Q?FNgFr8znCbnO8ck97lsQhr9CQTPmes8YpHriKoHiwYGAShRYj2eRFw0Eugu6?= =?us-ascii?Q?0A8W8HHcFs8Ihu4roLooty6bGiDRjuN3rvt3jtXM3TgTvSvvudQ6nJZeuMGP?= =?us-ascii?Q?Fa7FwkN4zTp6+4beQdBboMmMh7Jn7KlyIr8ltgWHMMtcvspETwJoWJlpzJ4I?= =?us-ascii?Q?NnE4N0yHEiErcrBHFtn+tQ7ppj5ApxcDi0LXLY6fZinWqSSkmiEJuniJ+TRH?= =?us-ascii?Q?b4O/Dn8EnsCyzLWGQbNHIkTGWcS2WPdgNJANFac5UE3E1uhDF0F0U+VDA3g0?= =?us-ascii?Q?1sfKrHclqFiG4RgqhVmk8aNE+XkjnSIjBzU/xY9+APWbVCUwEei8ar8Fc8si?= =?us-ascii?Q?3+Ighk9X2Yu+7eis2YHCtiD0Uxjp5UmnBj0T57XgVQ8RdQowLVJrgEMD56xR?= =?us-ascii?Q?/3SwR8asi3SBebolrAellLXd93tBRj9kaYzF1dO8o9DEs34uIDL0aQUJD37q?= =?us-ascii?Q?2e58KvgGxI8pZqOz8Xpaq07IlxPGwENxoXBw88UWaUCIxWAhgomvFtQgjev7?= =?us-ascii?Q?Vgo/H2DoVyGPeRm+s2sfpvHfRLRVPsIQndYnIgoNAz8SIoPFon/foyeKTy8p?= =?us-ascii?Q?Uq8PaZ57x33LolTfU5Drew2OOaFyvxPZ+2JMUFkRzejdxupxSFPXqVNwncEq?= =?us-ascii?Q?Z+cG9g0VWX4BuRFBW2UrLr8NJ+c+hUo8AuiCCgMxeErfpuezHw8XQsawYefX?= =?us-ascii?Q?G9z1zOSqbX/CZ9umZcmUytMvysfcNQ7Hxd1eIfTOVEpTOI1oyHiFx1sro1d4?= =?us-ascii?Q?+CYii71TyqxQC3Rrx81+NYbtAgbwdS/lH6Q/ZvnXQzA8LM7HGebVKmNdlcyc?= =?us-ascii?Q?Gd8sudAS+j4NlSI6dPbsexnC80UBzvYEw3TdP7Y78Wnem9fMcTKEyCiLE5Wx?= =?us-ascii?Q?Mzq0pUrwBfIMq9HZ3LxkSzK7Uwp1DXJTfhpvYAc0nCsfEt3H4X3wND/IGVEF?= =?us-ascii?Q?ymMgJbCM2SJgMqme6kMl5mcX3OM6KK/g/PBy6nl4M/nB0MSgzWK2Ujc2uOGi?= =?us-ascii?Q?gRbRJLxbFzYV1a4EAvDvIPq881WPD+QcI9EsUwUq99i3L24JthRS8/fAkwla?= =?us-ascii?Q?KsUOWf0dodwp/CkQVEp6V/yoTzop9lRx20cjmHLxiDDTOEevN2Nkciqztmgz?= =?us-ascii?Q?PZl3zrQ2v7tTkq8zYGtpHQiNCLWKPzKpraVyinf9f/UbvFePzg75j1RG6tVo?= =?us-ascii?Q?3Q=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 9Q4aSOZ+XbYAjiYBJvtxrirDBiQXW6L7ta5cu6+ZSI43R6jL69dikK44VxH4xH31pJ74IIbUCX4N91cZb5nyQPSZtPiNIIPp9jLC27ehVKK11Hry4EKXq0Tw1glnpQrRx+2+6chnrm8bbOBCn6IfCUGkknpyZeljNrh5MbU9sVaDANqxktmUoYY982SnST2Wr9LdTSLrWYQ+g6jxL2vg9wJXgQvAFeA4puZJF1d2UMzgiKcNkoTUEIYwIti3i3NuzKdi8zq6uyZIz5G6l9hwn2WFd7oHPx58LhoObWsOdXaaDAktk5C4Qc83M7u09aIM3rLTfH1VWBfG6GBIiDHMv+BOLJMfKt8Enj+KqM5JlS0c0VDG7x1WxY8iQW1b1iq1XgPJLQbSdraQqPaylb0UtUzh7Cn/yiV/DRfQtB1RHFTHCyuUO61G8g+NICIjAbTFmVhMKMdPrdVgBVGFNT+XofAhLymSfhmVc4OBmgqwxky5ZICq8t6Wz8+8R/1ElooWJxCNLSMAvC+b15TLxTAtw/T+j/v66/A50T9cK0USGuHWkoDSb6r9YcqzumpMpYtoYBJvpGHQ+wGeS6e0Wtism2V+1M0oZ4GZEsYEu3favWs= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b0716c09-4eee-45ce-334f-08ddf5fe5256 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 15:24:40.9501 (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: GAYdNLOlzogQITsx8RuF5GwZZT/hPl+0OugOyQr/KpaVUI8sCQQIPV/EKQMPEUAs63tPTjQde4UFoQI0+G7VL6NMOzkiOq8reCyc35n9wgQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFD020A49E6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170150 X-Proofpoint-ORIG-GUID: spQKExu2GpdOFS03vw98aI-xenEBs8Zy X-Proofpoint-GUID: spQKExu2GpdOFS03vw98aI-xenEBs8Zy X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX9xb+cJT0Frpj AIWRRSKYksUeJc2WRG7gBniHRTih/maMqXVHXIpbCDNdPz3aDZOVmJurLG/YrjCMQYt1k+9rr4a APT6FMjHmvvP9D4deIY5ubQJ/wgSwTBDRJAOA3wHoIsOhfBHSukBTtiQXvqsj3fYkeURDXGWgoU l2vD8z0T861lRoBu8nvv7HjRAmIEW0R+0Fx7FcK7Yp/5zOvhYHV0UkuKxsz3wOJvWTqJppvApMv fkXqN65EHSRRmpNI9v93jx9D3eNWhwmaVsKna7Gw452D5Pk2OG+qZ/21Ghxf7o/go1OAaUDaoFe L0drBsmiUoHsrHyvv5dJg44jwcw1eHu2fFCdB/BSleVOGZrp3Rh0nRPoMmH5BKJKIHWZ+6w6IP1 Ayaa/6f22hhRTNFmDdr2GcPkY4EzTA== X-Authority-Analysis: v=2.4 cv=N/QpF39B c=1 sm=1 tr=0 ts=68cad2c1 b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=0BMyZFS9aL5pxuX05u0A:9 cc=ntf awl=host:12084 Content-Type: text/plain; charset="utf-8" Define clear_user_highpages() which clears pages sequentially using the single page variant. With !CONFIG_HIGHMEM, pages are contiguous so use the range clearing primitive clear_user_pages(). Signed-off-by: Ankur Arora Tested-by: Raghavendra K T --- include/linux/highmem.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/include/linux/highmem.h b/include/linux/highmem.h index 6234f316468c..ed609987e24d 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -207,6 +207,24 @@ static inline void clear_user_highpage(struct page *pa= ge, unsigned long vaddr) } #endif =20 +#ifndef clear_user_highpages +static inline void clear_user_highpages(struct page *page, unsigned long v= addr, + unsigned int npages) +{ + if (!IS_ENABLED(CONFIG_HIGHMEM)) { + void *base =3D page_address(page); + clear_user_pages(base, vaddr, page, npages); + return; + } + + do { + clear_user_highpage(page, vaddr); + vaddr +=3D PAGE_SIZE; + page++; + } while (--npages); +} +#endif + #ifndef vma_alloc_zeroed_movable_folio /** * vma_alloc_zeroed_movable_folio - Allocate a zeroed page for a VMA. --=20 2.43.5 From nobody Thu Oct 2 10:39:57 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 13675346A06 for ; Wed, 17 Sep 2025 15:25:25 +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=1758122728; cv=fail; b=M+WZB/CpFN13EIHV+N2p9djAHQAasOWIBIb6nmJONbJ5O5c3jxpZfouBunIuSrzLwUqituQvcGjZ46y4Tnc20JcU4USK/G1ABXp0RTRavYoY90Mx/B2FUddQHrajEIzoO2ynCYIA+whjUByo1QeXb0VMVuHbektXd7Np0HYfJcQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758122728; c=relaxed/simple; bh=luiLulfGUt/XNEqFPjeC7hPuoD/YYW6SyFlPJPFo+Dw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=VmdXahoyi05VPLjl6SJ92g7tv8xLr82jxS9QSUnUxRzy8T5MuKCYSlHA2pznZiCq4WoIxapyWuHrSKYqDTVfp3XH9r7Y9SeZkqoE7RAzoTsIhBFxRjw5U3gnNWermwD0LYIMqLBaAudqMqXbsgnJ8Fs7yqT9xUythx22p5bpN7g= 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=cdUXIpX6; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=yMkEzsYJ; 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="cdUXIpX6"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="yMkEzsYJ" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEIToq007388; Wed, 17 Sep 2025 15:24: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=NpT4FKranfHCGixLzEkHiSjzmAi6D1IA01h2Qdl0eRo=; b= cdUXIpX6zqlWoGGA1OpsU3niU8C9JGzqJFSI9b0Z/knxNmOv1mlnLUk2Odbjf/MN 256h9WS2Cu7gqrzp4dcU3s2Kk/+6DtZk6ZZqq7cjmNHe80VGgxj5LrhYtsJ/JeJC xOZkJ724lKjiwvn6bLi6/wi7zUhLXUpXp2mtodT/XzICkTkh4PkEo1WEO3YkNyDs 47G+zYyT0s8Zm/2ui6eqW0MYgrSCeBZZd0jL/dIcOVI8Qau0H4Tt2epy/rxp1lXI Pd+Ejv0htIuh1N4FHgX3SegZ6TuBKpzU+WgC0TSNeaQsLVvk7l+sXFElqDaBdemH 3w6lg+xtzf/4DfFXIkUR0w== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx91gt0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:50 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEm8dI036930; Wed, 17 Sep 2025 15:24:49 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011054.outbound.protection.outlook.com [40.107.208.54]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 494y2dxufg-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gBqDfRqbCnAeDO9p3axdT0vFb0bam8BoeV+UQF609bCZY9Gad67+VJofkS5fsBrYH01NRZbvyoCBjVupjIJT8srSWP9hRDJF8BiwoYhYC25DrRBV/E2vxj8mBXdP9XzG/KNV+ztSi4NsXKapT1PonkJpVfOdfhi0QnWngqhpLcCAritI5rbLh86wC7JNuwHYaNUyrpXLy8aE2ex7c8Csad4LoO8XN/nvXMvx7CKCEGYG0S8Qib1AdyDvfM5UenZI/+x3iXL4CItugb/E/ErVSbDH+tXW+9pfZKZlzCjWKUu/6O9vYWT+C3MIPBkDCaDRZd/moKSViuXYf0rLgPjaEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=NpT4FKranfHCGixLzEkHiSjzmAi6D1IA01h2Qdl0eRo=; b=X7DbfP8MP6UUbjFrcCIO263SMBA4SeThFCYF8/SjQm8RXvbyzfpx+dV+0D9V0KKps+UBLq4GQ/JJLO69oUtMkQv1L0SqG8/xvndr44v1Ccw8Cuj85TMInl7k1fezX153tT0w9EOwywu9DlsnV9OS9E2ByRVgZHC9xxI45XmOyzS1OwQwfjPrwLheCvBR5RabkRdWH/pEM2/DGCWop5svTPBAM88OcRkFk2th/rc5V1zkanBGx0MpKGvsmkrWsGaay6bMJdCcZMDP9ISWKkJ66Jiy55N+SnYA2arqdiQYzCBmVidNAtRCd9HeK91rxYPsm9xdbJXuzHQfYxGpyUPzCw== 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=NpT4FKranfHCGixLzEkHiSjzmAi6D1IA01h2Qdl0eRo=; b=yMkEzsYJRjlaIOPCYOTQ4FhkOER/eYycI/au7jDFOMbPhfeQNrXLymD8y9Pu5KzGn2Lv1LDeFQRCTcwNfccueQAeuKCWYeMihaA8IfgZyG48u0wetwi2CM4PGoI7jNZ+SdF/YgwjvJyNQrtYBEqI9RnryJaCKj/DtOSFLK8x5mo= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SJ5PPFD020A49E6.namprd10.prod.outlook.com (2603:10b6:a0f:fc02::7d0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.21; Wed, 17 Sep 2025 15:24:45 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9115.020; Wed, 17 Sep 2025 15:24:45 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v7 12/16] arm: mm: define clear_user_highpages() Date: Wed, 17 Sep 2025 08:24:14 -0700 Message-Id: <20250917152418.4077386-13-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250917152418.4077386-1-ankur.a.arora@oracle.com> References: <20250917152418.4077386-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0149.namprd04.prod.outlook.com (2603:10b6:303:84::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_|SJ5PPFD020A49E6:EE_ X-MS-Office365-Filtering-Correlation-Id: 1fe3ace2-faed-4d62-f377-08ddf5fe54d4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?MH5bdPslvnZ5jFpCTSFYAzDMqLtp6LdEwMV34MglG+3lZRqD6SbIdfM2z99v?= =?us-ascii?Q?rsHPi/yvygbezlr4YdYdZlnOI8zUEp3HaEawG2A9yEr/a33u/OU+w6Hpqoo8?= =?us-ascii?Q?L3LNjF99dz4h79JX7MivDLyQG3EtRrVgyweyllquw6M+yx0/3lyH1HGmRW/q?= =?us-ascii?Q?+1mCnvniCaTZvI62+yC4CdK9m2DKvg4k8D2rLicP/hYbTJaOSrKfUgEox8p1?= =?us-ascii?Q?5PL35hgel0hewRqh8UT9FxG1uS5kdYy4HmSPOv2uHog3TJaMWwSYaFlFcqSk?= =?us-ascii?Q?b9Tk5D1pFsm6K0ifeGvl6lmp7vtiiomX0t2P6M6abkqx/GSMB/6v0Ri6TyPH?= =?us-ascii?Q?SmRY5+PZuVnkVITTdZC62HqiJnLe084fdSAh6XqbhvN5KAW6mXh3rEx8dWWI?= =?us-ascii?Q?Y1Q1p5a2TT/DjhAyI9pTWZW9ORyNqAkWuw3abkk7e5p68Os9x6pd+ol9SSA/?= =?us-ascii?Q?l/uUHcVQ85aGqcVCAmMOBHyAMC8yyXffwbu8L2JxwzVJJGnpXSZbnRd2yvVz?= =?us-ascii?Q?0tewJ1LksXOulhaNmumwjDnBaBEIWhOwCN2Gw3HBumzN0FZOFsceBub6fnvm?= =?us-ascii?Q?hxTVFvGiPzoZuSia7OBSziaSOJkWC+7rgTzrOBcxsfFK+3yp7rH21THhJDN6?= =?us-ascii?Q?155YE3sAGRBGn4b01YnQPKeldoQHD/VEDD0/QuMkF8KuVzovi6cxMgEXVC8y?= =?us-ascii?Q?awggsg3sCmVE4h5riEnJvC3ejZ/uTrMzCaYYnassZ8FdLlK9jHSgPFIwtXYX?= =?us-ascii?Q?cFmGmBm7DBnp7DyU4xlZTh2AJvrinbkIAlDNp7nOLjC3YmmFe5hhCamHm2NZ?= =?us-ascii?Q?15NCJcoEd1pX9h3w008wzun8eBlC/C7pHXq073ZvW4+MSdMJJ6r5aXMfr8F6?= =?us-ascii?Q?fciV5a/xcJkdQaf2FvLZritL195/AwKV3f/Gd+NfnXhzN11WeL4pzVdSB5+a?= =?us-ascii?Q?8oqLiDYIYQJn40Wq24GyBxPwK23jgjcKe59GcGP2k9be1x640EoEN7/ZlA6D?= =?us-ascii?Q?CbW/7eHun35nCH8hVaxZrLDRnirWEris5uQUsLPeoUENVy/fErqV45XBx/Fl?= =?us-ascii?Q?XR/Vn4s8SPTjPJOs037aVuQ74UuIjwuVRcKpCXfyanFUc8TyFO7ymQNMds8B?= =?us-ascii?Q?A9chN7UUBawDWYVPfrCqtunS/7YLa2wnhrNxh3r0AwO3YBrciyVAaD+fO/6y?= =?us-ascii?Q?9cj7r/fT1vtntgGh4IRp3bql4ufsfZcVLYiHM0/qf956M1YBznsNhZA8p1TJ?= =?us-ascii?Q?OsQdkE3AcjxRefUk0IDYNCkABS0g1BvWUwjTO2pLBcgQ7tMJcransm97NylX?= =?us-ascii?Q?7udfzPy1753mhPq7y8zLlItMGP4UCTeW+vmfmm+MCGa79iLXdoSwoQ5Kg+NB?= =?us-ascii?Q?hApHpAbijPfG7pjv5Ilny80A/dnzvPrS9mnmas4c9rRAnOO3lE7XB3abg3Ov?= =?us-ascii?Q?FyZ5y9B2ipc=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?VeIjGXHLBnh4PPz2Pw99/qR96ajYz//SmFJrROhSL9LswfG8VhPynVYzjf+w?= =?us-ascii?Q?Ha/HVdZIH900aoyOTydeBi/rWNkj7M4CMhD2s9mlWwiOjgYJtg+XsU0pOyD4?= =?us-ascii?Q?SJ/4Ai5m1CN0L2FPUgC5NGXXUR5hX1IJN8Rk7JqiuHW1VV5QN8O/9GXSKNO3?= =?us-ascii?Q?ic5u0YlnMZLKnACTnQxRO3ZL/nfnb6xfwl71dqHwT0SE6U3meCV/UWc583+L?= =?us-ascii?Q?UAG6P3IelC3l96wkaSfJNwWE68MpPZyqXB1sfrEOk3C1NavNWweN0LIQpT87?= =?us-ascii?Q?+lziZu1ap6EOJbX/MtuzemQRRaQGjLk+EQ4EJKvmCJ4XhRtbI4S5B9nVtxtM?= =?us-ascii?Q?1OEibEDkwkkBebZpH9RbzgzvOYfXryMdPIQUPT7TY30g5k8xHDCPnjM4oNs2?= =?us-ascii?Q?PpNttkuorzGUK4bsunvo6wdiK53EiWFBJhSNCIpxQSvByvyL0DqpWSFR2e5s?= =?us-ascii?Q?LW9OJclec9HBajUV4xWgb9tqI/7OM8/Vdl48e8WclmTIbAHvhq7GnmqrocZT?= =?us-ascii?Q?WKTV9kuKHQjkUWwyB4qZdJx79ZCq/14DxnYbn1Mb2ReFPB806RJJsuL8BEn9?= =?us-ascii?Q?Ce73ztAGcXyionEK7i+EUn53vHX5iB8ovwP2nmV6FtTALbPsdyOPdyEQN2GD?= =?us-ascii?Q?uCpLJsdIvd4obR3RdjsEs0aXwpkbpimdzhlLpzfK6yeixxysIults9SVtRZv?= =?us-ascii?Q?jSJHgUXNXmD5lzvRBV51jTjSwN4Bhq8XtFQRpOMIJgLCFdsSPv/j8fH6/EOb?= =?us-ascii?Q?S8nzDAwOOPvieobtX3ldxaUWCH/7WQ9k2o7i80JeAwnXBKmz/O0an2DNB7lN?= =?us-ascii?Q?kGImuQd+/3NurupBPBICE9FdcyZhfCxNjC37vkjLzwGfAHIv57ZK/Bk13XL1?= =?us-ascii?Q?hMnvAnR+SEwJSXEpMU8Oy8kwFlsNeo2CYcM5kNFDsjg0Bx2APxcuqYvSheg2?= =?us-ascii?Q?9vYW0zqYqVy+s3RYMft8aDwSBrm7dyKi2x029VI0gkyZWrT8dnnyb68m73Kn?= =?us-ascii?Q?Wy2uwrrDamZ+1MNaFaDOEZTM/hW6aZ+erPn3t638hYDBZ/rcA8OJQHTbQycl?= =?us-ascii?Q?ZZ6tFDk+EwPVHeJNCaC1Enn5UQccpSuja9Qge+0gCc8M61FsrocjmDzoaEpy?= =?us-ascii?Q?PTfazWLkOMXg532zM0eZ5mV8iiiG5EnLdUTX8VZml1WoGEk/PEv0CWUO4k30?= =?us-ascii?Q?LjGcOip4Q4IqU7cxbkqsOlCkTF5jm5QSNkMlbGHoMQ1TI4euLGwklKJaH8M4?= =?us-ascii?Q?biqQaKRHTxkECCtTTjWOKTwpWZ6OLjwGhIsqzJL31OdTGTFLcGc3wURUkHt6?= =?us-ascii?Q?P1b5hiupJvzWwv6OI6jdGpv2GLzyDxgOzlokSh1x+6+c8xe0FoiuDQs7pn8i?= =?us-ascii?Q?0hUA8EV+xkNF9gNGDhREQfqCxAsSCRhKUPO4oPf+40zcrXOFVmJZdJF+nE7H?= =?us-ascii?Q?469VteEwK+bx9VjRR3FgMbkDdV+ZA6tf4L7i04QwHJ4m93DubZ9ed3A6c4DD?= =?us-ascii?Q?BSUpIn5x6DsRfkOJu1ZGG3u6s9SsawTiDQPm7SZfiA34LGIl+laJJylhVumQ?= =?us-ascii?Q?zF82fdmsuOzp2v1HJq+Cza7rW9f2UJ7964lmG1hD8z+XlSaPAE5MM2gusqq/?= =?us-ascii?Q?xQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: YBQWdOAjgTG/kXbcO/aZ4fd/+dWq4AEiZ8yyupEYuOTJz268y1mlu7tICiSnru48oNOZdLjZw73TD19uGjgCV4v0EGuwlD251K7tPBjOJjld7511k+PpZbudIig1A8wrCyiI3urKTbUM11o5zC6msHvFNV/30J9LEad/UbgjxjhrFdC1zqwuOXDPXVqz0+7o8eBA4lqG7zgjAy6tWOh3BY5flEtX7MaCGqiPbdfub4dTqkQ7Wz+QyDdlYuVqnwjfn4dkRBA63izCrJV+ll7sq3ipUPC4GucXxxSonVYAqEov3rRpSPUfWF/7LvljUFdUtONBthZ0Tx6knM1zLasx7Ej+HdnTGAmUcG6vyOlQ/uVTBFFcHbmm8jtcN2D8teOTAsxhnB40LOB2q82Q1lkvWIHojy29MKP/DkIDvHiwGhMrCo6pZdYEOX8qgr3dsSrOuL9A9PeRBE17AHaRVWbJUh4eso+4qmi9Qfz7/c51hydZq+7AofsioglqSR4k6o4JKzLazxqfUR0PMA6gP87YlQHdIepW7qo9MvKNWQt3nwFhUSiWCRiFCnUnR6HpVJa7IaHaFKFdjIRW1B6Y9rbe64443VSgbhQvqwQc9rbn/tA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1fe3ace2-faed-4d62-f377-08ddf5fe54d4 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 15:24:45.1897 (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: xQhW8EDj1LnvJ1ByjegFRxf90IBe9Ax5h96tcykAhS4omOc/lZtTHvieQxtjfXx4WXBWj3/pOQv7vkvTScTZwbh4LKfbJqUJSZJZJEplf98= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFD020A49E6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170150 X-Proofpoint-ORIG-GUID: z4uuvFjpi85RS9jCNtzTvJ-zaxbYe7Pi X-Proofpoint-GUID: z4uuvFjpi85RS9jCNtzTvJ-zaxbYe7Pi X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX8yxgyNrg27SD lxOHI0G4aTftV80MhlLzaAt03R0ID9u3lfCpjXNF43HHMNgzxrMg5rNuPHQmJx4nlnoCXNNEHSh 8iNeyB9QPhLuIOlS/pHXr08/+t0ZIGWYSEZI2M9sxkmT6uLUuXaLNmjdHp3uY2JNWZtcq/+gykL 80uNYfOYQ9DS0WjD9rmIIyyFCq1+dciCgWRjZVHy5nVXO8gVQzvgCv4kodVhpel+KDI/ZvV1v/r qyFdbVwBf3Ajobj/2qFVr0tJFOqsPQcua4kmcpV2sF42Kg4D1uXxmUX9XEHtZJnqnJr364t9oLN UUREBE78tDtvhSLataTA0QoyELmJ7eokmM/Nvdm62hrpG5OqvWqOmor1Rb5mBkDBH3y6/9Lkip1 xJ57Ub/Fz2mFcoh2EhDptsMgg4PpOQ== X-Authority-Analysis: v=2.4 cv=N/QpF39B c=1 sm=1 tr=0 ts=68cad2c2 b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=VwQbUJbxAAAA:8 a=QyXUC8HyAAAA:8 a=yPCof4ZbAAAA:8 a=a6qOOIzeGn4LGes8qBYA:9 cc=ntf awl=host:12084 Content-Type: text/plain; charset="utf-8" For configurations with CONFIG_MMU we do not define clear_user_page(). This runs into issues for configurations with !CONFIG_HIGHMEM, because clear_user_highpages() expects to clear_user_page() (via a default version of clear_user_pages()). Define clear_user_highpages() so it can supercede the generic version. Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202509030341.jBuh7Fma-lkp@int= el.com/ Signed-off-by: Ankur Arora Tested-by: Raghavendra K T --- arch/arm/include/asm/page.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm/include/asm/page.h b/arch/arm/include/asm/page.h index ef11b721230e..ddcc8159b075 100644 --- a/arch/arm/include/asm/page.h +++ b/arch/arm/include/asm/page.h @@ -151,6 +151,13 @@ extern void __cpu_copy_user_highpage(struct page *to, = struct page *from, #define clear_user_highpage(page,vaddr) \ __cpu_clear_user_highpage(page, vaddr) =20 +#define clear_user_highpages(page, vaddr, npages) \ +do { \ + clear_user_highpage(page, vaddr); \ + vaddr +=3D PAGE_SIZE; \ + page++; \ +} while (--npages) + #define __HAVE_ARCH_COPY_USER_HIGHPAGE #define copy_user_highpage(to,from,vaddr,vma) \ __cpu_copy_user_highpage(to, from, vaddr, vma) --=20 2.43.5 From nobody Thu Oct 2 10:39:57 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 1374C346A0E for ; Wed, 17 Sep 2025 15:25:25 +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=1758122728; cv=fail; b=t/gp4+/+tO+5OUPvPSEbjd7Yvob+CuslnBPAT0OnWvSQeZILpIuyMC8Y5UZLSkuTzwIIou5ll/7fUtUKYf8KNWkj6lBEGJ5T99E+WjWklJpPlRxRzynezZCfa13OoKNcWN6avYc4G8neqkxO/rA0krQsODW+FsjNLXOHzTXXkt0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758122728; c=relaxed/simple; bh=XVTiVC1Dks0MXaotLkV/wklpvYDwn3INJ7lN3Hf8GIA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=i0LWgv4II4IYBMsgysJT5PoeFId+vISyIXDBTnUjztYdRtVq7A7r/iHZr+qVonJOJeVvjs/rAzRKncExYymTdkWiEjkbeVXVJcrpEd7rgkrmrmfe+W3aSDj/4b3SWZJQ+0EuD31IoTZtDQAB/svjqazgg8Ke7CgBRQVceLZitLc= 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=jcGWdd4M; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=ig5MHWPS; 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="jcGWdd4M"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="ig5MHWPS" 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 58HEIUPi010040; Wed, 17 Sep 2025 15:24:51 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=kXqJX/5KXUH2wfT544pI/c+2QwYLIKIcRXS9l/Mcoog=; b= jcGWdd4MIasIzyfvWtBwQ31P2pcWKCe1VSCevJVCnnj5ZfX4DvuhUUr5Shaf9vC1 u/4ttEXgIVazpcbGyH51n99io5NfhqKzMzHmXRDY8VxA57fq801bBtXjNfRa3slx Yl9wV+GcUFgEFpZNwrrx+SpUcBkybZsjVypOV8xrne5FIszxS3HAfQ/5QWtsg/3B AbFO3UbG5ITBs2fCdtD6I4EncsUziZsGGCzJHizzbb82mPD3svmalW//HnwaFUmy hCmy3kdsdvtJHW4yl6o9oPH5cGxMt0dYrqWqoXHayN6wCqbzmGVzr4rUX7te9uKW bGOCEIluqvvLBf3rlMYupQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx6hhd6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:51 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEm8dJ036930; Wed, 17 Sep 2025 15:24:50 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011054.outbound.protection.outlook.com [40.107.208.54]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 494y2dxufg-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Qtcl25Goxq1aD/0EBRiVjbngDio1aNu0ovycx3QGtrHQ6mjpePbBDvw/4DRCvJnGoJErulP8UKnaffxdfb4fQbu81z9EkwxIqmXX2ESifHPgy8MpZStyB4HXR1/yC5nEQhWhdZaWq9uyFPFkvv/neslzLiQaB3rYE0wtC51enp8By3PONi3HvDUPmmJBMIoJy53HkwIeGkdtpgnskkzebdbwJQUOZ0a7lGulS+JXe9jhxsvok3Hbia+H3jDscCq4I0qnHPpYdFd/oYqowIhyEBCZD3Mf/Rjuoi6nbP8UilN29G/B4k/M6LPsvA82ueptFG4/gmWBKelqWHxf9PUEkQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=kXqJX/5KXUH2wfT544pI/c+2QwYLIKIcRXS9l/Mcoog=; b=scHr7xR+MaOPmQSCrRYziZq3QEzhA+UAVQePfKe/9zTKxbTV0dOqAIhvrSEf3E+v89B0BdPnDilMqj0W3hMGb513Vsdsr5kVxYAC/iADpcOZCxXlKrwpwRZy56iNfA45A5AjyZrYqy4XQeBnDEV+8s5QMkFQU4UdU29MBUPn5Mg+UmiXTLw/A03NcNzCKnFhxCn+LklE8pbQ6pUUH3CAbXQhfcBgeUhgRd0Q1BIvqgwYKJEKkSWITqpgicd704rx7Zr7j2HGP+wzbmNKa7BNO5e0TUaz89MEB8ROJlfWhKrt9oOWKE+fhRukaFNW/nizV/wT9WzElFhXzr/4C7SUrg== 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=kXqJX/5KXUH2wfT544pI/c+2QwYLIKIcRXS9l/Mcoog=; b=ig5MHWPSLwM7PmvfWeMpHSTvCTnOZ6hXvNAWvIZQR88QwpejNlMMooao35NfWSVBWCkkzvOXHdILEboXj7eJCHVNH80OkxuaXMejk0xqKUDhmTfvFPMKevtr5Uu6sPOVtXQyaCvOezzGVWL1UBwtgxNgE10VxZJxIKOyLLPvMaY= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SJ5PPFD020A49E6.namprd10.prod.outlook.com (2603:10b6:a0f:fc02::7d0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.21; Wed, 17 Sep 2025 15:24:46 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9115.020; Wed, 17 Sep 2025 15:24:46 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v7 13/16] mm: memory: support clearing page ranges Date: Wed, 17 Sep 2025 08:24:15 -0700 Message-Id: <20250917152418.4077386-14-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250917152418.4077386-1-ankur.a.arora@oracle.com> References: <20250917152418.4077386-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW2PR16CA0054.namprd16.prod.outlook.com (2603:10b6:907:1::31) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|SJ5PPFD020A49E6:EE_ X-MS-Office365-Filtering-Correlation-Id: 52281f0f-96f0-4991-9ee0-08ddf5fe557d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?wNYUtJb1ogBtpVg2dGe4ySyCPuglcLwd4aVrVXWpftKSu0DzzqSVRWfde7RP?= =?us-ascii?Q?UzwowGmwo2GQY1BAPmOBXZeupAhrXx18Ej5pttjLR1DxopbGBMpeBPLmwVJy?= =?us-ascii?Q?od9hbbWxgIMQDdbz2vv9XyZwapYzQrHJuYoYaOkPGfcACaE9HTZUzAwgZhZk?= =?us-ascii?Q?M5MvfWPU7gT1coxxgII5VlKYQ2lJaeFUgNPNGbmYscqJmVBzHKVTn4honQ1M?= =?us-ascii?Q?XuYYSatKmP2wWIRQjLpoEhI0ynPKapjo7IIu37VvU/pbook93R48Az91RbcQ?= =?us-ascii?Q?4F7+uef0XnYMRuSnuJBOUxsiMr3y3LFkB5hhvOdFB23vvyBRVk9vnwp1oPmo?= =?us-ascii?Q?HxkS1v06ldjCRkQAOHG3aIQXuzbm8i+PbSjIqx5ICbrztZMqI1kwhAlymERX?= =?us-ascii?Q?HJUoit6NwJCxObJYjlCTj/rfKfZoAse2ZjgpQkLOPYjiXumvRQ92mSj4vNWA?= =?us-ascii?Q?5QOhOamPSE3AEAvkGsnRFdB8EbxgPWWYcqLOMq2zQY8bIJjaPxhtSALpRFYG?= =?us-ascii?Q?2W8LZVbpP0DV3lP5rV93+AkdEVgyzy/W4dIw1tygL0YbWXI1brtRdn0tpC25?= =?us-ascii?Q?kxXVeeFTGyHMz6Lt7DaYjZ40H80PgWHDT/oPuUKtKW9k2S+O1i13ilmMe50r?= =?us-ascii?Q?JdD8tqgq1EJtsWKdjldGGnGYsMaU1+LiHDFwQ9/I+2ZTtotcd0xjhyGRRyNw?= =?us-ascii?Q?VVG1zMukIPOS8w9s56M0Y1fe+xFazrKYMlvS3QlI02KTpDn/ADTSiPAJ651w?= =?us-ascii?Q?De9TFeUUb4IzubAOkKsIm+Grn1Akz7XdpMiWTNp4W5indPQI8hJ+1zmw97cw?= =?us-ascii?Q?f59yXQlzWfBexmkYjWn+bScWIP38oY3aM8T9BNqpJmFZ4O/GibP+00Rxcg2V?= =?us-ascii?Q?uTB1b8SmxLX0RAS8i4r7LXNMFG8GH1LjiBR5REL3ZlK8KzyHw0ST7ajy5VFK?= =?us-ascii?Q?ZQ5w8D3ngDZf3cgnvY1HGrCLJ6sysTJfYshI5JEUV2wcmtJwO+UvL2RnPM3X?= =?us-ascii?Q?nRP+G0/DSD5Nlv/4/36Pyoontu6sG7+aJhWeQY6yBWI+STWb7T7nCVU5wanl?= =?us-ascii?Q?wY0a5sWx1doMSgtkBylmzgUAFx6219UlSfQCQRNo1vHk00wkpdnbe47/AgLb?= =?us-ascii?Q?ZeQ9TNgQ2vfZmirvlWWQ9ce0th5SZ+Bctrkjh1xj/LD4ylUO3mwdhRNa3P1H?= =?us-ascii?Q?yC4ZCLtuMxo3jmhdAeeSPMzAu0nxDaf+/5hY0hMBA5iItbEn1wviq9zXhai/?= =?us-ascii?Q?ecNyZeLZOA6ZX6ecbt4MmHTortkdaiZy0lFrrvHHi0otTDkFWPtVLPi15Rwj?= =?us-ascii?Q?Lb9oHtPCQo6/kySE4FhdaLfl1P4K27fqOAyS5xtriVsWHQD1bd1JIFNmug0V?= =?us-ascii?Q?z7a/v5fDMEqQrGDrK3nC45nGYEgbAzHobSQGQe878p7LeyhGCdxpbwU/5gi9?= =?us-ascii?Q?ODSXuIt3Q+Q=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?gkZyMFsGjofsmqQz+/8ET/vOqGRonuhErGG4OnPAlTOBdEHmRQLE3kbZIOlj?= =?us-ascii?Q?kc4M60CLBwCXimyR4HVjaf+g47xEC5V/PcNZsDKXRlCJX11z3+ne54qGvEIo?= =?us-ascii?Q?QodD0OcbrI4ejCMUEzRO/sUSnHDGyDCvsh5JDwVxR3dyZNLaRbqkRmUx4WvJ?= =?us-ascii?Q?m2f1bC+edeZyEWmpfQKyc3BOw2/g4Ihjr8JMKODM6LdYc54WDbJfyJYa+s+x?= =?us-ascii?Q?blNNe6nDiheN6YV6PHQXRWD8VZALgqodC+gSa7F7QkbDWk/p6cXmRvFZP+Gc?= =?us-ascii?Q?mVQ1d0g3lGOLjFDADKKMWSdTodZ+1Cd03UT9Ott2PlTAXMsC+EFJJ5GB0JhG?= =?us-ascii?Q?LSroEJ2qO4hiAdQYdIN7fwwsD1wDF+mI2DzWHWnV+j5JI47hGOxsxboRVXN8?= =?us-ascii?Q?82o92gKdbp4joHR5NJYwtCZhHp76H/ird3TqA/b2lP5Bcb/F6LvjZOEqJSwg?= =?us-ascii?Q?aqb3nPk3QEaYMTTkVDSfCIzloRKmPKf/07ctuuASWTy10ijfxLq8dq0e0UAe?= =?us-ascii?Q?JfmnYyEOcRIMVoWyp8sLOoO/Bdv3e8Vhtt1rnELkwvT44CifnGlaYkE82aqO?= =?us-ascii?Q?aFUbsKCX/iuMXLqUXt4HJ1Si3RCfN2DMPbdaZBHpY3pRyYh3CD/hZAn7ECg/?= =?us-ascii?Q?UDRqOXKwOUvL7L8hW2bvOBhrmNZE8ss8ZQBy+NJx4+MToReeAToNa3s26yOc?= =?us-ascii?Q?458sBy4X788nPp+urZK56ALPCAAiSmK7eAfsTEwkRACt2thugx2Pyu1I7r7s?= =?us-ascii?Q?xi/5jmSXtXFuToCPjpnBXKqpXt3N78EU1QW4AIWDJcWv8mD4SCkJg+9r+87+?= =?us-ascii?Q?ZbnhyCCN4+lAZHOdz6Ag6WI12FWwo2qEMcUPoEWGRndfZ7Qqbc6cBrDOzNhq?= =?us-ascii?Q?B3qFawwiIWkXitjpJicGFZRMI93dFTGgC9mKHWZoZ1s7/9yZX74iv8qTxdBH?= =?us-ascii?Q?fUZtCLWsrqIRmS9cuUtS8qs4/9FUJRxa6WcGDYQ8TlUT4XNRoMx7Sv6uAIgh?= =?us-ascii?Q?QmTnnAgshpj3/DsA2zxc0C6lmvfF/xnxgp0+HeINbx/6Z5xdY+T9eD9jrHOR?= =?us-ascii?Q?m4Wu69LQ44QhgHCipDMro3ptuYNEHEDskI079HrKPtAc79mMcNdLAGwBdIpl?= =?us-ascii?Q?jevTq+9MfrNJWFEnKr0D4oaLwhwudhsCE4UQXzimbw8SptXi6e6/74juQaVh?= =?us-ascii?Q?ih671x7XSOHTXk6VtY2QeScS4KnzFdoyr8pMtFuxUWcuZVLEXTo7Pm5sJZBd?= =?us-ascii?Q?J/OLVd/O3bUlfwXbO5BgSkIgAvE2OnSxY70Wev+uFrnssJInIUAN5Sfn8bLR?= =?us-ascii?Q?ZWczSch4IaJFkKweXKMmBYKu4nfbetSZFswj0w3VafBlaJ00A4VLb5RecTvE?= =?us-ascii?Q?ufOaMVTmi1MX3462SbTfyUqf56MDXo+ub5FSRVhrMZvC2KQ//8pJK1fS/L9e?= =?us-ascii?Q?tKYiHACI3NxtNwTa/rrp1RFP2kJZ4mBxgwC4k0YPRXOOPH6JyoXc32z1lb1G?= =?us-ascii?Q?yItwTyomQzVF+4dhgHMxEKUl5kXqOjpxTQpz5cyZ2PNRFHOcB18VfxxAJu0A?= =?us-ascii?Q?8pzQZp4bBAUylEXrswsAuP2tpoHbBvIMsqvt9k0mHiMWe3sc68LKR3Ws9nk3?= =?us-ascii?Q?hQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: DufOZiAHeabSI8mkLgt9MKIpuAr5HaOTuzyhxKjO9jKX+s3vTN2Y7Usd0FPc5zu0EoVlqVGNCioM7JT0Vex/xI/uUxp52rOA/dstKYgEw+0wMtdPp42RPZEVuXv/+1hT+zVamR24Y7Z8JU4cf27ZVZlvlI/cWyWD8nC8isfGsvHGs7lILcSCReTE2RN6Ww1zlFTE5htSGbW77wRbBH6wCWDBlDMXHcDF7kGOLldCUPtpgYfOQrJL2L3VyeXnQuU2sVCnpVRG4qkZ//bhN5jcijEu125P/ggTBUG1mmCmxZ9aiMXTqTvIvW7/9SGksgj/HRdT6sxgo6oO5PNMF6RQlheAYEpySZ5fMHcwGOSorHJ5w58bMsu+braDdilorzM1ayVpKgLLdLFQO37VVwXOb18xHTLvS3sVNCrR+YWye3Xw8xoG28UVq2/oF7sismJdO53X5CpaBa7Wkicrq4Mik3bj1/P3BltE5tXXCmMUI2j127Le4j17cMAgrJZ6nbfUPKYRav3eFgkyZwOAxJCkq31YPG3nk0IbwsdkTot+nADAzwkWa3jo9oD9K1X7DWpnrEAne514ilRHQHze4Q9azrKziEvxfTphE3tjaNW4g54= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 52281f0f-96f0-4991-9ee0-08ddf5fe557d X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 15:24:46.2498 (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: 8a18hrzZuTS3dn1+d5cnLjXqms8qfpLhj6xL7274abGjTHV+4RyViLcTksNZSJpSIuGLSLS16TMkoQkZJWvjp2m+tBmpW4k0d8PEmDbqR+Y= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFD020A49E6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170150 X-Authority-Analysis: v=2.4 cv=TqbmhCXh c=1 sm=1 tr=0 ts=68cad2c3 b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=mX9NMRdxVRmOxHn2ve8A:9 cc=ntf awl=host:12084 X-Proofpoint-GUID: hk1hn15YhOHRhh3P11pi7W62jMPiqMlj X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfXwxNI8o/oFeYq m89W+CfqbMyjjGprOeSbg3pFtHqK7S7qwlddMPAFsBsYOPVFlPjP/XbQt2nnk2OHvKPXH2R39RR fTi6Ndu0q8WyH9ou0ZAK0IeyURJLqrSAYwZds0OFPcBH7fjN/ZzPeT8xQMLQZEAyMnRqEQuDmsK S/PpKuR3mFk0/cIxCbuXu23y58h6+ZgnuTyfMtHwE7UExHbm3EyjWDY2pKSG6cAx1UXXLUYqUyY hxR28256fJ8opw62fuTXMEuobVRtz6rQy+391FzycA4oD+miqalTUdFg9m+dVc1NVhGhd1PbOjn KLmu/AZ4LTfUP0Kwr2K/mE7w1vd9T6lQ+9FR5MB+e0dMR38JPHT/B/7vKQVq4c/idPbDI5y4lIe S+1OPsm4NaA6PE1WjN79a0Dv2j1cdw== X-Proofpoint-ORIG-GUID: hk1hn15YhOHRhh3P11pi7W62jMPiqMlj Content-Type: text/plain; charset="utf-8" Change folio_zero_user() to clear contiguous page ranges instead of clearing using the current page-at-a-time approach. Exposing the largest feasible length can be useful in enabling processors to optimize based on extent. However, clearing in large chunks can have two problems: - cache locality when clearing small folios (< MAX_ORDER_NR_PAGES) (larger folios don't have any expectation of cache locality). - preemption latency when clearing large folios. Handle the first by splitting the clearing in three parts: the faulting page and its immediate locality, its left and right regions; with the local neighbourhood cleared last. The second problem becomes relevant when running under cooperative preemption models. Limit the worst case preemption latency by clearing in architecture specified PAGE_CONTIG_NR units, using a default value of 1 where not specified. Signed-off-by: Ankur Arora Reviewed-by: Raghavendra K T Tested-by: Raghavendra K T --- include/linux/mm.h | 6 ++++ mm/memory.c | 82 ++++++++++++++++++++++++++++++++++------------ 2 files changed, 67 insertions(+), 21 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 0cde9b01da5e..29b2a8bf7b4f 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3768,6 +3768,12 @@ static inline void clear_page_guard(struct zone *zon= e, struct page *page, unsigned int order) {} #endif /* CONFIG_DEBUG_PAGEALLOC */ =20 +#ifndef ARCH_PAGE_CONTIG_NR +#define PAGE_CONTIG_NR 1 +#else +#define PAGE_CONTIG_NR ARCH_PAGE_CONTIG_NR +#endif + #ifndef clear_pages /** * clear_pages() - clear a page range using a kernel virtual address. diff --git a/mm/memory.c b/mm/memory.c index 0ba4f6b71847..0f5b1900b480 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -7021,40 +7021,80 @@ static inline int process_huge_page( return 0; } =20 -static void clear_gigantic_page(struct folio *folio, unsigned long addr_hi= nt, - unsigned int nr_pages) +/* + * Clear contiguous pages chunking them up when running under + * non-preemptible models. + */ +static void clear_contig_highpages(struct page *page, unsigned long addr, + unsigned int npages) { - unsigned long addr =3D ALIGN_DOWN(addr_hint, folio_size(folio)); - int i; + unsigned int i, count, unit; =20 - might_sleep(); - for (i =3D 0; i < nr_pages; i++) { + unit =3D preempt_model_preemptible() ? npages : PAGE_CONTIG_NR; + + for (i =3D 0; i < npages; ) { + count =3D min(unit, npages - i); + clear_user_highpages(nth_page(page, i), + addr + i * PAGE_SIZE, count); + i +=3D count; cond_resched(); - clear_user_highpage(folio_page(folio, i), addr + i * PAGE_SIZE); } } =20 -static int clear_subpage(unsigned long addr, int idx, void *arg) -{ - struct folio *folio =3D arg; - - clear_user_highpage(folio_page(folio, idx), addr); - return 0; -} - /** * folio_zero_user - Zero a folio which will be mapped to userspace. * @folio: The folio to zero. - * @addr_hint: The address will be accessed or the base address if uncelar. + * @addr_hint: The address accessed by the user or the base address. + * + * Uses architectural support for clear_pages() to zero page extents + * instead of clearing page-at-a-time. + * + * Clearing of small folios (< MAX_ORDER_NR_PAGES) is split in three parts: + * pages in the immediate locality of the faulting page, and its left, rig= ht + * regions; the local neighbourhood cleared last in order to keep cache + * lines of the target region hot. + * + * For larger folios we assume that there is no expectation of cache local= ity + * and just do a straight zero. */ void folio_zero_user(struct folio *folio, unsigned long addr_hint) { - unsigned int nr_pages =3D folio_nr_pages(folio); + 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; =20 - if (unlikely(nr_pages > MAX_ORDER_NR_PAGES)) - clear_gigantic_page(folio, addr_hint, nr_pages); - else - process_huge_page(addr_hint, nr_pages, clear_subpage, folio); + if (folio_nr_pages(folio) > MAX_ORDER_NR_PAGES) { + clear_contig_highpages(folio_page(folio, 0), + base_addr, folio_nr_pages(folio)); + 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++) { + unsigned int npages =3D range_len(&r[i]); + struct page *page =3D folio_page(folio, r[i].start); + unsigned long addr =3D base_addr + folio_page_idx(folio, page) * PAGE_SI= ZE; + + if (npages > 0) + clear_contig_highpages(page, addr, npages); + } } =20 static int copy_user_gigantic_page(struct folio *dst, struct folio *src, --=20 2.43.5 From nobody Thu Oct 2 10:39:57 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 D452B33B492 for ; Wed, 17 Sep 2025 15:25:24 +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=1758122727; cv=fail; b=U2XHbAcHwyCaGwT4nBJh8AW2fse0vRibA+kzUOtrPQcMVX9AlDRJMhlhpPQikk8SrvjxyT4bN/0m0kVvc3ILeyWpuh9oNai3rsiEm0VtB/HXvNi3JXfuh8/Bq9RTprE2u8wPRqNrNNMecAfO6NGcg0CpkIC6j1E6ggag9GVJWGE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758122727; c=relaxed/simple; bh=eZz62m1tZ5mr1gdAtPXG8nOlAQdK0ZnMY+xW2NWwX4w=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=PCj8IAU6Zdc6ELjQO1EVSOPk/by1dtBFOdltd9jFsMIZo2lvyl6DHi3jmcO0eoe/c/kBOYh9l6V+fK5gEwiSEjPOuZQKO2jrNUmU6IU8xjF4caaqEdTvINGw5oCa6iNfhIydumdHAbJHPw5CvxmNCKY9ltWtVjvnb8N3HEAUhc0= 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=q8nK9drQ; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Fj0VpwzU; 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="q8nK9drQ"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Fj0VpwzU" 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 58HEIUaS010081; Wed, 17 Sep 2025 15:24:51 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=JlwzUlWMMRSMYfV2UGTcVTHX+hPWOFLb6bYmEU1LORA=; b= q8nK9drQSnHgjrJNgtvbtt71ZXX90NoI3wJczEzEeBaagbhP30fi/bKU5XYcnp8S zB+Api9s5Axii5RZJwwMe2NN4FB/3UCfWYHU5sF/MF592rZE0btrNBxtQRl1QPIW V8AwtUqPhDFoyoC0qNMTjAs1anWaMJ4Ybc5Y1KvCdkjGmWwNhsHVV2iG2ct1AZtU MHtz1OAC5k/wWNwPchLKwMacdvDMVu8aJQnJTwrWnyT5mvELoZ8YrYwzj7485VNE vG99IAM+vcMTl/5uo6k16T64PgAsMlji8oyW4RaB2FiTgWl2IwPgO6KKiX38sY1a ftrmB/zHJpFlA7v3Mh3Uxw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx6hhd7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:51 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEm8dK036930; Wed, 17 Sep 2025 15:24:50 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011054.outbound.protection.outlook.com [40.107.208.54]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 494y2dxufg-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:24:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HROmiQSqlN1NK1qgR5CRc2Ndde+ZQOwUQoNIC5s3gcSJq47vv0On6eV9X/Cl+doFc24Bq/kvSYa/Cn/EE3y9wiQcw90fyY4WFzjJVMmie96w9V+XMTYPGh5QwrDeA4u0l9D+i/KpndgRhg/xlL631422zcH4u4NuuRLi0l1D4PODoW3kSnTyl7hV9lyuXG2Kn9+75GnfM/V/csNuElBR2nSkUcRNZOEgVLiS4dSNpVWNVCqxnrtHaY/X5xVMve/4+lc+9+fOhan/xWHjZ5Swbshs8JzfF185AxYf6etyW+LGW/mNUCZ7F5VoDt7ogRUWnH/3WKfRk6wpO2TN1p+pvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=JlwzUlWMMRSMYfV2UGTcVTHX+hPWOFLb6bYmEU1LORA=; b=nms+oA5aupPQ8JqB5+2y2CQvnFsiS8C/8m/x/MhTe580aAThZw5COIK8vOVRFVXs/VezIBopJQJZnWLFD1gHIW+QdQ8LOFNthVau2dYwluzUsRPSF9c4yVOKF5TUoaiNmV9lZKi96fjFrRTE1NVKZMsyvZaVld5/7cckN+DaEN+2aiE8moYBwi4bdYh+NKkrlYZceviLoOlr1gP2pmhDNQ9xSF0Q1bLI/kTSBPD7+JMVj9mL5KZ8D67BMsT/NqPx0+2fZcnoboCY94y6EHv6eiMRSkDX4Eih7MSdnmi5cVRDldPkei65448g8G7ZlmYNWuhj9JQW/Y4OMIr/3l/9xA== 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=JlwzUlWMMRSMYfV2UGTcVTHX+hPWOFLb6bYmEU1LORA=; b=Fj0VpwzUlX3x37etYsD0+kg5mAmSUVK+Mminyhs7MFBb4YYtrtkZsVF7Gn6h3lU5pqbAng6/2ECvN9qU2PIGE+t1EaWwm16ouOkOfAGqQrB4E0jNmRYUuoeEHL2aHptJtzSn7Y5TO17ly25Hq8Htbs3NXfEnvswQjVk1yu3r6Sc= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SJ5PPFD020A49E6.namprd10.prod.outlook.com (2603:10b6:a0f:fc02::7d0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.21; Wed, 17 Sep 2025 15:24:47 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9115.020; Wed, 17 Sep 2025 15:24:47 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v7 14/16] x86/mm: Simplify clear_page_* Date: Wed, 17 Sep 2025 08:24:16 -0700 Message-Id: <20250917152418.4077386-15-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250917152418.4077386-1-ankur.a.arora@oracle.com> References: <20250917152418.4077386-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW2PR16CA0058.namprd16.prod.outlook.com (2603:10b6:907:1::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_|SJ5PPFD020A49E6:EE_ X-MS-Office365-Filtering-Correlation-Id: 8cc8e81f-68fd-4802-8f84-08ddf5fe5615 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?sGQRPMo9jTxjneszUG/lRAkbrufuNIT3IprBIYH80B+0uMl7gEFjWi9iOXMc?= =?us-ascii?Q?WMClETz9+LKaTaXQi4stOU1Rien5vh5TA85jh4eSbtQWQ8ladEsL6J2hFfg6?= =?us-ascii?Q?L7KzB6k6DrPF7mYdQoxlDBaNTXsgxjL7uYTx8g6sFxhOIaRwontclnCyXqlG?= =?us-ascii?Q?jLcSZieTghQDXb3kwSA1t33PSA+kHwIL3L+zb8Xzdt/J3JfqiE6gYw0xKUb3?= =?us-ascii?Q?4Loqqk7kn6gBde02hTXdqwBD3WB6uBpNduJ5YnYYIlO1cnAgBK5+q8cTrUIA?= =?us-ascii?Q?OrOOLwGYSRFbdFbqwqiYUW1HbDan1myhhbj3bsP1as9Fg7q66FEhtnhPD1Gk?= =?us-ascii?Q?6g7oukbW3oyLDF64ov7U8o220oOGV/6oefIOQMiIYs4ORUidlGMt0lc0fu8L?= =?us-ascii?Q?zZKifiPi96VVXWnshyiZJa3M/pa180dg9JQaB+y2lKHnR1DAq7Yfu6w8Jx1e?= =?us-ascii?Q?iWoa0okrOc7AUJ9cPQU7DlsvuLkdd5z76RQgNRs7s5LVNk/lP/D4siXHBkt3?= =?us-ascii?Q?rxGVVHH3ArLZRfb3eDrgsEY9XC979hH8x7L2mVBHpVVJ5wW+ye0cQt/qjXn9?= =?us-ascii?Q?1U+9zUBwzAfWBc0C9eJG8e+oeJ7FDQT6CIZ9zJXq5RFD720Q9UEorLDefd9K?= =?us-ascii?Q?Y7/GSaY1XKobdv7DOnBmBbXlG/N8EDHbyKLfFWoFRoC3/2oQTmJ3jepCO8LJ?= =?us-ascii?Q?GIr2S1J2lnoV9E76kO7qeq0Gc9M9ql48B1MleW1ApOLPnwNUvMpY0oh8+QfI?= =?us-ascii?Q?2/BG5kXGMCNF1Ym3691adqsx4GuI8mgalLil+KIQ8gnPQbvMDX0MdaXi0e8A?= =?us-ascii?Q?I9n2lcD0UZ3v+OvUvFV2T9pvDeQpKH9hg0N4kS/M9z60goHvNsdwA4oGLAVr?= =?us-ascii?Q?PzVPl+KaWL7LyI0z+S2wiYi4ge1j/pQTom5uOkMVz7XxF7awZWKYI3a+8MSo?= =?us-ascii?Q?gZTnGciwGI+U1f2a0yI1bJlOvQzku9MLTtI2Th3bI13lSx4X0xdrHXnH5E/o?= =?us-ascii?Q?FOhNfyqp1Z+BYHehCNcYY7iXhgl/RytoQPY3tPkKoc9fSMPiv0ST5qSyxemt?= =?us-ascii?Q?ZjiESyLgE72XbDdT0PfM5TIxO5xyVJbaqdQdPSksjzuQnTUuZoWZ4Vb2y16G?= =?us-ascii?Q?RR4KDKOi0sZ9ls90Qa4QwUhNVux37G1fA8l3lRIjIgkSAFCeEPC9sngBrik4?= =?us-ascii?Q?lHD1RN8BZN1BLRTQA5a9DMcqNjgmXFe4+DTRZtB1kYdXjh4FbahhaCLFh3fT?= =?us-ascii?Q?5O7dRXai504hmEDvDr7V0VCDge1BVJVvMkyW0MHgSF6qV/fAv56awHTMJTL7?= =?us-ascii?Q?PfO4s8oMj7o0TVDuhPp6ufRB19uMlGpM0YAOvxCQYZ4NDIiajY/F0aOuTYG1?= =?us-ascii?Q?3aodivdmi+Rg2LJfGj/CUVMtxAqlST4/6EnPkTQcfKh27SOfXg=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)(7416014)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?mRa6X1wvK2C+tlb/mw7XFW3KHsAcJ1MukzpN/mE+aNQtwFYFv3p16AF8fBIC?= =?us-ascii?Q?Hkc7F3/pdXbIjOuHfISrL8oQlQD6vMy/2AK4tIgPIt6euXRk0hGvm7gYyL51?= =?us-ascii?Q?O2ErXWuyAc+ZQKGtOqbhW4pFYP4k1pJfPfjHbYezy6jEYH603ajPKwM3j7nk?= =?us-ascii?Q?wKNfYwBST3I2dgWPrShcWxw0/0EPOZYjkLSC+CyLezL0o6s7m5o5wuz4FHvs?= =?us-ascii?Q?4wg6ZBi4vlXVRCX+jkmz1dII6d3z0JWilQyBFtQ6fS8ArxnAsAn0YvRUJc44?= =?us-ascii?Q?jeLmI+/E7erRoCBB/Ly3ps1rm07kEg+e8qspMFiiXKQBrzW+ZXcOcNEoyD4d?= =?us-ascii?Q?Up2LzAJpos57H7CijV1xj7V7jHFOgYlTi+xnI5/RfU+buLUTeCX4Am9y4l3X?= =?us-ascii?Q?/4sEvERMs1AcTl5YzndIQXc+4CIar2GdySGyBTnk1U3DBudjDnBEUaLbm5iG?= =?us-ascii?Q?Tq0KTm5hzkn2foQI86d9Hpm7j+XVqtFp1irrZ/lM0WVMPAp4UOHxj09pL6OG?= =?us-ascii?Q?h0CQ3AgkvyWEfzdjnXIlnoyW8YN3Vz6RMpPYvkFUzDCgJmXutNdpzqjkYd/w?= =?us-ascii?Q?QREhN2nqHKN+RUP42oBSaucMDeN8EhtuWi0T3EDRJ+KbDTB3jh1oxox/tuoR?= =?us-ascii?Q?C3TllUrULC1MdqmZcPL7bLI2QM+HYj0F52aY4wIJbUy8AJfU7ai+rbGmkzGf?= =?us-ascii?Q?CtMfKXIi2YDOOopcX550fcrL76qWDppgffggQAqk+fps0FUszVTI8bGQbTVK?= =?us-ascii?Q?1JvsC1UAII4+oNMcmKeFghMTF1Hs5UsrnH6W2sxx+bInrpFs1FNQ2vfUxtIm?= =?us-ascii?Q?lUF3GQzPK/geX5hPu2jy6LghRxHIfmq0vv7GZdXYFxMUgDNPQqEwbfCr6DzE?= =?us-ascii?Q?5TFVVHQLKCAj10Ir+y1pmp/XzSpNYCP8I8TuMMlkTPjj2Cc6u30LCn/NyEMU?= =?us-ascii?Q?wgXQWWzbdZzruFYOFkLfKLCjF8xJXYrDeypPR6RFC1GOal7XqKwO848L9RKG?= =?us-ascii?Q?b5w1oKlABVEFqh2rAfbSzUDlGwwJoC31Z30qEXc2QJx/RvaffXe90XsUnTPg?= =?us-ascii?Q?uelU+/3sPAkeY/lLe7UdAGn3ZWfaPj1U+BnLxI9VQ+RMIMMGcv71sp045BXF?= =?us-ascii?Q?7VHnPijPYCRuUzWRBkv2Z6CPR1Ug+7jA+TsDsg/Z7TeqlPwWLSWaqqf0PDrK?= =?us-ascii?Q?lyLDHwJ4HdNjr0lCgtsS9PhQMlV4slmAb4mrKiN9sYefD+UuvpMxSSbNS2aU?= =?us-ascii?Q?bn3Sjd/KlnBvfje5R2Sx864n1G8Q5E10LLRVaRBqUqVDzYq/6sFnOu2H/qXo?= =?us-ascii?Q?USDbvq61BsThMNz0o9KIBIPb9C2CDGFMj+wKWPxLA6nR9mX5dZ3k7jFs/Z/H?= =?us-ascii?Q?EwzjUguzPhSAA0eE3I26xgR7R042CyKTp2m5Jt5ZgzQlWm7IvaBgzUMMOXoJ?= =?us-ascii?Q?iJKM0sbtWHX+gku4ZRQCGbFpFbZlfT9xS7XJnoW9Yi3i7/vIVTiUoaBNs4hx?= =?us-ascii?Q?NRsmnR0Z48rEpP1R5rr5f+hAOUIc7p5B6fim1i8BZjDiOR+qMlWgGk9vWmUg?= =?us-ascii?Q?As6/+umZUvwBp6hRzhcg8AYifcHsGe1ORoBd3cvLs2pbvpnQ6hQOPl4PN+fq?= =?us-ascii?Q?Vg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: X6jnZjVXZ/TgeWo3FMu9hx6pgfU+7VVctgn+bjFPuIPDKf07qPN4LIKcQ2HcUqJuAY6KlC9Zez2p5J1IRT3AaI+vBQukZ+dP1/gr8jOSwW9o8+bnrO62qzgFi3JaoXQmuryzqLR0KfJ12tVX2qEM0nyq8HXQmB+QSoJcCQxSQMz4nWi/q5bXaDgSKX6M8Y+910CEpdJ7alHozr1ZFsPD9dLXQCSvXrqYwpUg8ZO/bvjBIS4PYurc4X88VSstzJXgSCl26ANEoLGdK26j2H36UhmqKrFvAb16iAURkTpp7iBrGzbDxQTxMa088aCJts+AOFEd/kY/NfTPoZUdVYP2Pw0n3JRwvRO2oRmk0P7sm8XmaK1NUnbZDUksmoLDUeOTTjwqrHZmG7KrrTT0VBzd5gFAvpO65CRgv2/Qye1BUkneInXOLhpSTxlbvU148ijV64H8GVeIhOZ5dIbU617eBkf8ZrZDhJUepb6NokZXrEvMHulQML0BOCzNsbuBEP544tVtqY5Dr6/1MoFR+ySxPVECuTxXql7i/eHU2vlVw7kYgst40bBevuZDsTnaGCa/889FWwckE6k/ZEoOfuakpp4Yy71SNZ0dmLfCPRXMGtA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8cc8e81f-68fd-4802-8f84-08ddf5fe5615 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 15:24:47.2793 (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: CvsN/s5j+Dd5tf+8Zi+9YfjlfKSNqnFbOaCYij7AscQAg9bAOdx1y3ZmdBC7o4m4sSKWuNK1ziKjjh2XcNLWqJR4VaBTOWNK+1oEJTtj8P8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFD020A49E6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170150 X-Authority-Analysis: v=2.4 cv=TqbmhCXh c=1 sm=1 tr=0 ts=68cad2c3 b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=3VxSRnZmKhVynjaijvUA:9 cc=ntf awl=host:12084 X-Proofpoint-GUID: OZuB5B5_v-c0Bc_W7UM4GpWesTQsKVDr X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX0wKWUPhXbBEd iHNYzM6R7NUEDD+Cy1pSxdENrQ/G8Ul3mppSXyGQkjpqM4QJCyM0SoTWbxBAfuNdl52Emv6otIp tZiAmTMsQ+SquoqloI2QU5w7/gg0pIzu+iqSjm/m1ahpE5UOJNxejdWUOcEB95037Iyd188pa1C BvNbhkLGyI6ujyCU1YWEO+495qx2Jcq3PC/VF+zN2sgN5UiqM2Ikw3mM+FuAG2ynCFfEDtawRS7 vXNt3d2IZ7fhijb6xoOFDMHu0XWD4Wj9AtybDZJhXOrKxun9YSnlvWI86qMkMJ0co2nxaqqN4bs uo4dk+Q57auLgeyOar7Sfldzqt6zJThwNEhXZG4le6BUzfzSgGpQEE4hq0m/BZN7VK8wqptjKPo 8HDBQtadBlqVHSIxDCK74Z+QTGUaOg== X-Proofpoint-ORIG-GUID: OZuB5B5_v-c0Bc_W7UM4GpWesTQsKVDr Content-Type: text/plain; charset="utf-8" clear_page_rep() and clear_page_erms() are wrappers around "REP; STOS" variations. Inlining gets rid of an unnecessary CALL/RET (which isn't free when using RETHUNK speculative execution mitigations.) Fixup and rename clear_page_orig() to adapt to the changed calling convention. Also add a comment from Dave Hansen detailing various clearing mechanisms used in clear_page(). Signed-off-by: Ankur Arora Tested-by: Raghavendra K T --- arch/x86/include/asm/page_32.h | 6 +++++ arch/x86/include/asm/page_64.h | 42 ++++++++++++++++++++++++++-------- arch/x86/lib/clear_page_64.S | 39 +++++++------------------------ 3 files changed, 46 insertions(+), 41 deletions(-) diff --git a/arch/x86/include/asm/page_32.h b/arch/x86/include/asm/page_32.h index 0c623706cb7e..19fddb002cc9 100644 --- a/arch/x86/include/asm/page_32.h +++ b/arch/x86/include/asm/page_32.h @@ -17,6 +17,12 @@ extern unsigned long __phys_addr(unsigned long); =20 #include =20 +/** + * clear_page() - clear a page using a kernel virtual address. + * @page: address of kernel page + * + * Does absolutely no exception handling. + */ static inline void clear_page(void *page) { memset(page, 0, PAGE_SIZE); diff --git a/arch/x86/include/asm/page_64.h b/arch/x86/include/asm/page_64.h index 015d23f3e01f..17b6ae89e211 100644 --- a/arch/x86/include/asm/page_64.h +++ b/arch/x86/include/asm/page_64.h @@ -40,23 +40,45 @@ extern unsigned long __phys_addr_symbol(unsigned long); =20 #define __phys_reloc_hide(x) (x) =20 -void clear_page_orig(void *page); -void clear_page_rep(void *page); -void clear_page_erms(void *page); +void memzero_page_aligned_unrolled(void *addr, u64 len); =20 +/** + * clear_page() - clear a page using a kernel virtual address. + * @page: address of kernel page + * + * Switch between three implementations of page clearing based on CPU + * capabilities: + * + * - memzero_page_aligned_unrolled(): the oldest, slowest and universally + * supported method. Zeroes via 8-byte MOV instructions unrolled 8x + * to write a 64-byte cacheline in each loop iteration.. + * + * - "rep stosq": really old CPUs had crummy REP implementations. + * Vendor CPU setup code sets 'REP_GOOD' on CPUs where REP can be + * trusted. The instruction writes 8-byte per REP iteration but + * CPUs can internally batch these together and do larger writes. + * + * - "rep stosb": CPUs that enumerate 'ERMS' have an improved STOS + * implementation that is less picky about alignment and where + * STOSB (1-byte at a time) is actually faster than STOSQ (8-bytes + * at a time.) + * + * Does absolutely no exception handling. + */ static inline void clear_page(void *page) { + u64 len =3D PAGE_SIZE; /* * Clean up KMSAN metadata for the page being cleared. The assembly call * below clobbers @page, so we perform unpoisoning before it. */ - kmsan_unpoison_memory(page, PAGE_SIZE); - alternative_call_2(clear_page_orig, - clear_page_rep, X86_FEATURE_REP_GOOD, - clear_page_erms, X86_FEATURE_ERMS, - "=3DD" (page), - "D" (page), - "cc", "memory", "rax", "rcx"); + kmsan_unpoison_memory(page, len); + asm volatile(ALTERNATIVE_2("call memzero_page_aligned_unrolled", + "shrq $3, %%rcx; rep stosq", X86_FEATURE_REP_GOOD, + "rep stosb", X86_FEATURE_ERMS) + : "+c" (len), "+D" (page), ASM_CALL_CONSTRAINT + : "a" (0) + : "cc", "memory"); } =20 void copy_page(void *to, void *from); diff --git a/arch/x86/lib/clear_page_64.S b/arch/x86/lib/clear_page_64.S index a508e4a8c66a..27debe0c018c 100644 --- a/arch/x86/lib/clear_page_64.S +++ b/arch/x86/lib/clear_page_64.S @@ -6,30 +6,15 @@ #include =20 /* - * Most CPUs support enhanced REP MOVSB/STOSB instructions. It is - * recommended to use this when possible and we do use them by default. - * If enhanced REP MOVSB/STOSB is not available, try to use fast string. - * Otherwise, use original. + * Zero page aligned region. + * %rdi - dest + * %rcx - length */ - -/* - * Zero a page. - * %rdi - page - */ -SYM_TYPED_FUNC_START(clear_page_rep) - movl $4096/8,%ecx - xorl %eax,%eax - rep stosq - RET -SYM_FUNC_END(clear_page_rep) -EXPORT_SYMBOL_GPL(clear_page_rep) - -SYM_TYPED_FUNC_START(clear_page_orig) - xorl %eax,%eax - movl $4096/64,%ecx +SYM_TYPED_FUNC_START(memzero_page_aligned_unrolled) + shrq $6, %rcx .p2align 4 .Lloop: - decl %ecx + decq %rcx #define PUT(x) movq %rax,x*8(%rdi) movq %rax,(%rdi) PUT(1) @@ -43,16 +28,8 @@ SYM_TYPED_FUNC_START(clear_page_orig) jnz .Lloop nop RET -SYM_FUNC_END(clear_page_orig) -EXPORT_SYMBOL_GPL(clear_page_orig) - -SYM_TYPED_FUNC_START(clear_page_erms) - movl $4096,%ecx - xorl %eax,%eax - rep stosb - RET -SYM_FUNC_END(clear_page_erms) -EXPORT_SYMBOL_GPL(clear_page_erms) +SYM_FUNC_END(memzero_page_aligned_unrolled) +EXPORT_SYMBOL_GPL(memzero_page_aligned_unrolled) =20 /* * Default clear user-space. --=20 2.43.5 From nobody Thu Oct 2 10:39:57 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 731E430C0E3 for ; Wed, 17 Sep 2025 15:29:10 +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=1758122952; cv=fail; b=BL7BIdx2emj//K8krvyoKlcf0TSK/hzBXMJgeIjzCctISkFOIkgrTQ6jdN3RdEj2O+ca2cCBOCj0Gjxnuj1a+R1VrAihiWK4yTsSaO1lV3yNpJXz5dmPsWwyH6aNe8VGwV0EIybITF8EFh7K7A5t+mbXmHJ5pDZSTurcnDvr4sU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758122952; c=relaxed/simple; bh=ayMKStnHhnfhA42+Fv3a7l7vB8qE1aW5v340YfkilBU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=CrJKrfUOWqb/fuUbBMyguJQGFRNN4WDU4eCeteTWWYi3cZf0LRIp8vt+WH2WQK02wgI42mDlGQzV6siT9qnC1JvCBE92l6hGLgVw1Zt0NHlPQN+PwCEtNZnvERWCsijON1ZPXaYsZOnb53WCRbURncOtgMPp2Zo8ihmg5Aq+CwQ= 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=F82baRTL; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=CgyAZGk/; 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="F82baRTL"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="CgyAZGk/" 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 58HEIUgD008330; Wed, 17 Sep 2025 15:28: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=HlbRQonMKDjbz4yTfEx+r61YgOZiBx8qReGx8lVlMqs=; b= F82baRTL4EQNp3m/RkAWvYB1DPAnqQad64zD546Nc3H1bVPMJ28zV9C6I/yun926 il8645Giml4R/jnQNSRaUrsymFUEQLskM0Nmw2uXikBpvPMXO8tEBzfK0A8radmf NlMEP5woNHmWlZ00BGTEMWwzncAXf2ID3HulldN5Uji8erTSDxZp5X9vZIknAkUC XBJvtFnETstSDq3DYt10boEzam7+LXgDEdcgK3qJgq6egUt3k5HvCbrnWtYv7smn jSXyIiXvtBGbMZGsUTcRnDJukPo4CuRm3NZMhSb+2/KC4tKP0uqP4z0SW2GbdVlH EshTaRSDHnr9YS6ZDjAkKQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx8hg37-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:28:39 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 58HElHe3036955; Wed, 17 Sep 2025 15:28:39 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azon11010069.outbound.protection.outlook.com [52.101.56.69]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 494y2dxydt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:28:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VgNhrIDVPH7VTM0t4pg2ABsveHRg8Sc1ArePaYlmSG3TDYU3HhsYd45zxxEn3XST+hdIRn/D+HN2D3zDIl2KFkRr/77QcQt/UYZ3QqnRAZkyIHq56nndxiIjpCPDGDVrIgvGPkuF8gIPb9gvz7rRAm8punKu5isoHQtVtjwdCJb5PBC7hzrsrCT6os7XiuzXQRikfzPo7py3gWW82uSoKeBbbssClVx1COqT1erAOqYT3NM99+pqQUs2c2pjuu3311LIbHXs1VhMzqr6anL9/6zjxRV++xes/fM1v91MfyQS990fEAvkf9dUkSPwHW9fJ9X2jvEfVLfBbBPLTa/DbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=HlbRQonMKDjbz4yTfEx+r61YgOZiBx8qReGx8lVlMqs=; b=JlR8TpQfzEJWIGQ/3j/QxQ2840gP9l/itrLAsNrRmNCFt7s5jCi3uR35sE9MxYnqBjDATL8zr7q/gSDJFRxMT1eMLEumlgJ/BfesNM3TJmmI/3QK/IzYtBTXzoewnS9l2HAwLCI/c5vmcb1Dvt3pptVJyYufUAY/gGS2Gnkt0afDszBco4TSdTWpHPEYRQKbj28h5ayFTWWcI2CuXjMhjhb44T9sVhcn4XTbn4leUG1r2d9Bku/967QO/gzQY83jSzgGEISQ/hDib6uFDBi+cFuoXDp6WDtiN47VirnGXhCmw7MqzdhyjmIUbcv5Qbbq5i4PHzXWtNin+s+GAFlLtg== 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=HlbRQonMKDjbz4yTfEx+r61YgOZiBx8qReGx8lVlMqs=; b=CgyAZGk/ZK9He6m1EGePETguhNlAeHFJyxvz2uUlhwd6iTgLLaOxYR9dcYjtKfcUlrqsdQghylwpNzKT4jQzmTCWuf3+rCdi93EvtsNnxWM3s/6qf/nTmB26gIDkvB3OwPsRsck+wWihCIJHtIcuWiFpJw1UzG5clpjtBbrorP0= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SJ5PPFD020A49E6.namprd10.prod.outlook.com (2603:10b6:a0f:fc02::7d0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.21; Wed, 17 Sep 2025 15:24:51 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9115.020; Wed, 17 Sep 2025 15:24:51 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v7 15/16] x86/clear_page: Introduce clear_pages() Date: Wed, 17 Sep 2025 08:24:17 -0700 Message-Id: <20250917152418.4077386-16-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250917152418.4077386-1-ankur.a.arora@oracle.com> References: <20250917152418.4077386-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW2PR16CA0049.namprd16.prod.outlook.com (2603:10b6:907:1::26) 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_|SJ5PPFD020A49E6:EE_ X-MS-Office365-Filtering-Correlation-Id: 7e34363c-956c-4207-4fc3-08ddf5fe5878 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?GbHZbqF5C7BQwF6vGqkIsbgQZy8BlTi0wDHRW/gPxuiFqseE9ie0DOAg8jxU?= =?us-ascii?Q?qegbi9TVuaYguI2SM6Ncnz8ibShY+jPXKtbE0CUqv1uM8S0lLKC1gJStiSkR?= =?us-ascii?Q?dVQrRJOUWKOJ0uav5Ar3fcIPOs7P/xwOj6E33Xb9TX1FrRkijEt8sRfahKqd?= =?us-ascii?Q?fNNUW4qkjFeyLxAL71JqavJIjVuFwFcF+dSbVGSC2mzfywcuxM//ZpTdF70i?= =?us-ascii?Q?WuP1TeZWS4SUjikC7j3FN+Y9uRHpc8eoAtNUAoDckrdSJ9yh4VUrjqxydJCd?= =?us-ascii?Q?ex/tlhz48nnMZS7gDxglWoxyYexKXiblzaMovCA21pH1jdzbZd3UjAQzbHaB?= =?us-ascii?Q?9Mok7YnqLKyRbpbSp13tx9/pxBpNRT1kf8lxqpheXjPtn0USBqzbCEcHhBmM?= =?us-ascii?Q?PcliAjr1ql++uMzhbuZzHI1jjAeK7LgxOeAYIl5E9D7yEC4j8owD0rourHhj?= =?us-ascii?Q?qCzRPBsRoPsbIYc7KucLp0hbZryrO06Vgk5jfSSIfw/mpfLU2+EdsK24BHU7?= =?us-ascii?Q?JGvebFw44ukhXLN1cvA6sqxFGpyMt4yuJ4yWHC9WhQiVGehPBo7KKN6Z/Gto?= =?us-ascii?Q?peJRLEELqS5Ltx2n2Ofzvq8cIfITbAlyl1QmgMRql2z37VHmLgKrGKfrmXy0?= =?us-ascii?Q?2ZPqM/r8c1vF4AeSyhHAZZYQepg+pIOHgzQ1c4xcU+ToNHbza3LLaGf22Ttn?= =?us-ascii?Q?7OpBSLWw/PTghvRS2yknlqAiSeE1nPsXYAINLWikZekRg4fsOyzL385Lp25F?= =?us-ascii?Q?DmlpAaNQhtL/YLNhFqMJ4Q08NzpMNOKC7kJwS2x+ngOIMqhPVbQO5VJcLML9?= =?us-ascii?Q?1t3pC3nhGxtVLCTs/IuFv8KVlLCmrckRMjuAtTQfKZixLAPJrlq6ygs8nHVW?= =?us-ascii?Q?u9GB8bhBIWwNdqnluxDDZ2pk4bHvNxLOgQ82og8x45y7HsCmPr5CnQrU4d3E?= =?us-ascii?Q?lsD1hxvlmzXLEEUXyHlgh/Hgh28GMyfmR4aeR5OIRiBpsQxwhHtLsxLvPd6N?= =?us-ascii?Q?czNLVZHtpjfyWBf6jc/+OeUSQIo77Dk/WvO2K/qk/dd9W/Pf2RY6P9FSnn92?= =?us-ascii?Q?mEcvLzt1cj8ZAWWNOKIBdbBLRQ+vL8tuj5ELP+kE4JTSp3YEk885C8ABH+Mt?= =?us-ascii?Q?CTdulAE7yV0V+VG+gMyC9Xp7teuNUUjDAgnc8qUOoMttsm5Vo98HvnJSdlOp?= =?us-ascii?Q?R8DVxnS3y0JZ5tL8GGPp9kxNhmSCpQgeLUWfSxPikmeW1BnoFXT42EL4gMBx?= =?us-ascii?Q?Q6CA+n/BobLDmzvzZ/2VgGD2V1vdPlWA3kRrRbzfa7ppOXS84bUJ8JFCQTtt?= =?us-ascii?Q?CnaBrVys/Zs3NqnzN9BcCu+VN+FWXF8rOSEDTJ9DaMalpRB91pxdt2ZOP9pO?= =?us-ascii?Q?JmO3RfnQ6yH8plXtA+E2/Vg371SPv5kQg2IGzVkvFSmuPNZqV/lYFS9Q71rb?= =?us-ascii?Q?oXBbb0fhsws=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4zUKHHmXI37Z4OJ/oHHlgEC1HnlKqMlHY4N6YM6qSU0Mzc7KpiGDgFxLOJCu?= =?us-ascii?Q?5Y67QCRf7d//p/GJ4khk8Vsg0sFJL0QzsdXAeTVuvvRtn3kIIiS+bC6clIeb?= =?us-ascii?Q?Gv35lhQr64tcms0vMr+kwvARk1W/Wbzvbi+aew1/QBjdH0MG5A5jmEcUOieG?= =?us-ascii?Q?epOiLg3PtkhQX6k5z18o2zGdMVzjuoaWF3F0dkYdbpSPec4Wo/KFRphqVVhA?= =?us-ascii?Q?fOetbJJOucqqWo+2o8SPyxAY29QmVO7OFkDXkkbeKioBFHuF6PS7HSswYQbV?= =?us-ascii?Q?iA8feXQc4/wJQHBdFgopObs+EdQhOt2EcvT/Bm1yqEKu5QprfzA7NMIlbjVV?= =?us-ascii?Q?CEeQwLPlaz4bNKJ+33Zob9y8vyCNB6IqilmSGDci5eibu9VuSQgVLiDhz8oS?= =?us-ascii?Q?BnxDFOz5ARwyNJ/VxjRlYz4hI6/Xbx/PtC7oFNLRK8XGm9OU5rIw5i5b3dLv?= =?us-ascii?Q?wWOMdkGmtelWATkh3DZQcG+r61kytJ9jHMTPwzKihBcN2uPT/2cM4bQrzWaa?= =?us-ascii?Q?HLtXgJcjFQwGlCTeO1idx6NWMGUbf/RHAB5aYcR+jYeQ4RJNcupz3GsOlTLm?= =?us-ascii?Q?3hM9/3ZhCNb7VOQ1/SNJ+cTe7SFR8fwL79GMXYH27ZBFGe/UljgTeuwxZxSI?= =?us-ascii?Q?lCDgC0pG+xaC9nL4x0/TawKtg3402fIsRtj7Hj5GItsrGPvc63Zdk9duYXDk?= =?us-ascii?Q?Ke+y2zEcIHIHIR711SWm+f0xhdeAQny3Hrnl8Up6CIbOOXusyzJifrTXVInU?= =?us-ascii?Q?yuVl2t4TsyJ86wSjghe7tJDxfO/eQzS5Q3ok69ECBMA9r9MJZYNAlaxOivNk?= =?us-ascii?Q?2oUhtos9m1yEYSCumXYlSHxEEpQchGz9qZX+GGVJ0Hqu6zCL0rrBglUs5MbZ?= =?us-ascii?Q?1nblCW7kDhm4CpsWVkOwmOzQe9aITbE3h0+mbgsB9wzDvygxbXqIreW663zb?= =?us-ascii?Q?9RIqzf5XG9wrFqnT03D4129AhzulDZR123pLDBiKEvU/IL7Q/Ktck2MgvtB0?= =?us-ascii?Q?cQuPzdWztHu5Fmh5z5whJTbX84pHeYq15dhhkmetxcSyRJVhHQCVX9JRlUtc?= =?us-ascii?Q?TneToMmRdU/aR0TEdc40zZc9lv/4Oot92tzzZKmyNfCFWuqi4cEn15kdfSrL?= =?us-ascii?Q?P/NiMRzvU/7xA8HRTcZO1HGSzC/PaeQCEMPVTzL5V4/toVyA6OiwgCSGnaDc?= =?us-ascii?Q?D/JjIFKCcA+E5HMp7VGLY4XW4GvbPBwehrbvGx2LJh3rFEOcL0PwEkIR2Ty5?= =?us-ascii?Q?rx6UOZ2156HADUhqPTSifanXIDe0DmOZVB4ZXoTNn8+fG4GY3KDL2OLi9puf?= =?us-ascii?Q?vnM/iK18DGWQJ27qrTSg5nRqdDKPXaIHteoDuC9WQ62QgQ1TvUEmsBCcbkp7?= =?us-ascii?Q?QDGDgQS+Fp7GeQBrlQN4p5cUoBpgdpowI6jaW7l3ZjB2W9ssd93rq8ZWssky?= =?us-ascii?Q?znhew4Up2MTaaSFF3HBohN4aKBEeBhzx9EditInEhdi5zEZKub2mnQOBbQ8G?= =?us-ascii?Q?mKhePYLxdQQ9IaNh+RvzM8H0f9H4vBiuDmtO+TW4frBkeSVcBdDepHyLF/xz?= =?us-ascii?Q?EtOBtMRgCvra3EVaDtzpcO7zI/ajn/D+ZaDp9EpIKtcvTp6ofB/obA0zDJv7?= =?us-ascii?Q?Kw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: TAF3GQ5eO7I0/Ys+khh34ZUhvv7CNTY0VzR6VuJNZlptjV/sVXF/BaF02qL6MVQzb/iYtfW3XBVUWvXStQTxL55YFCSagAA/DLH46Toumhk6p9pkjA0bZnuvDyHmqztaEd5bv8G71RbHffNduHRnDZ8klZLsHPyt6Vsi2swGtyoK4BUhInV4do6RQocwCKUAwvInhOen67Dqnpo//Q7f7AuJdN7+GDlRnksBZODN67NePMhj2OxwyJsywh6R8hkP4MpFInMz8CgJnC5idsfegf15y/Ma89J7DTFZqPC+ObraXAjH2U2FlI1dJ4aiqkF6kG0hQbH8TPlGzJf3W3RjnK8ZWkq+VHdUAjIji+gcMV/ftLtER+BhwJ7tavBMaA+fbPSBr8IZn2hnjN84w7NUWVMm9iee9bPfmaN8IwwckOR5Z6rI0wTho1ECI6l9jdQf6NCcjH7x6Z+joafFySc82Qn54k6zGAExX6P/JvdBIbBgiWYQm94PihsJpv1jyksrKQ0KL2f3404YLQ5CQ0R62rGaDdApc9KAnYY8Iwuf4U6E3PC+ei1wMrSN8s1Z1OU8Fzcd9zETc4Ml1U1NVwJ9mxmnq4wzYnyYY+2alKsyj7w= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7e34363c-956c-4207-4fc3-08ddf5fe5878 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 15:24:51.2889 (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: jIOiwpWQmdWIn170lQnL6VwYKozpwzavmlBSEyrqx2Wg0JuhaZtrPGfSm4S0S+4PTKF0iKtAJ+9Yr7EFnqtX0SMqh3QYSPUc16r2DQ5yW2Y= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFD020A49E6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170151 X-Authority-Analysis: v=2.4 cv=JNU7s9Kb c=1 sm=1 tr=0 ts=68cad3a7 b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=M8a9pf4_m8jl-BS7tPkA:9 cc=ntf awl=host:12084 X-Proofpoint-ORIG-GUID: qz3Hn4wITg6EF79yW-vgL9K5X7-o3Ecc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX8e8BcImXV1Od V7jUItMGQjYMqhKjR1wZEqB3RVac0PBpb7N6GUSgE/70Oqg0SfS4vzWgK2ufakSmPhCtzZELoRo v6uJeCCRBXl6EuJCvp4yUmSCw5mTo6PRqtwMlAonckpJ/SBXjuFw8SfAfxFqTiZ4nPLIPkrdO8O b4EX5alUh53DLbshbd2CrbSoYHGW3vKB8IGiNvJemJSLwSYaFwPPYGYsJntVPi6+RA4jSm+acRK xLcETnv2KNTUUVKo1+askz8VIFWFfe+J7lIddU3eRCSIRSKFnS1fqVsc1LuCEfY0SY4AYRCDnW6 bUJHoWKuyNNJX3rtOIKeR7EC08r6j1HxVw4+U3etRV6Mf19f6M5vI90ygy+i3J58MZAGKyvvDLB s0C6SIjBNAemcLtwzPxnSyD87teG1A== X-Proofpoint-GUID: qz3Hn4wITg6EF79yW-vgL9K5X7-o3Ecc Content-Type: text/plain; charset="utf-8" Performance when clearing with string instructions (x86-64-stosq and similar) can vary significantly based on the chunk-size used. $ perf bench mem memset -k 4KB -s 4GB -f x86-64-stosq # Running 'mem/memset' benchmark: # function 'x86-64-stosq' (movsq-based memset() in arch/x86/lib/memset_64= .S) # Copying 4GB bytes ... 13.748208 GB/sec $ perf bench mem memset -k 2MB -s 4GB -f x86-64-stosq # Running 'mem/memset' benchmark: # function 'x86-64-stosq' (movsq-based memset() in # arch/x86/lib/memset_64.S) # Copying 4GB bytes ... 15.067900 GB/sec $ perf bench mem memset -k 1GB -s 4GB -f x86-64-stosq # Running 'mem/memset' benchmark: # function 'x86-64-stosq' (movsq-based memset() in arch/x86/lib/memset_64= .S) # Copying 4GB bytes ... 38.104311 GB/sec (Both on AMD Milan.) With a change in chunk-size of 4KB to 1GB, we see the performance go from 13.7 GB/sec to 38.1 GB/sec. For a chunk-size of 2MB the change isn't quite as drastic but it is worth adding a clear_page() variant that can handle contiguous page-extents. Define clear_user_pages() while at it. Signed-off-by: Ankur Arora Tested-by: Raghavendra K T --- arch/x86/include/asm/page_64.h | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/arch/x86/include/asm/page_64.h b/arch/x86/include/asm/page_64.h index 17b6ae89e211..289b31a4c910 100644 --- a/arch/x86/include/asm/page_64.h +++ b/arch/x86/include/asm/page_64.h @@ -43,8 +43,11 @@ extern unsigned long __phys_addr_symbol(unsigned long); void memzero_page_aligned_unrolled(void *addr, u64 len); =20 /** - * clear_page() - clear a page using a kernel virtual address. - * @page: address of kernel page + * clear_page() - clear a page range using a kernel virtual address. + * @addr: start address + * @npages: number of pages + * + * Assumes that (@addr, +@npages) references a kernel region. * * Switch between three implementations of page clearing based on CPU * capabilities: @@ -65,21 +68,35 @@ void memzero_page_aligned_unrolled(void *addr, u64 len); * * Does absolutely no exception handling. */ -static inline void clear_page(void *page) +static inline void clear_pages(void *addr, unsigned int 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"); } +#define clear_pages clear_pages + +struct page; +static inline void clear_user_pages(void *page, unsigned long vaddr, + struct page *pg, unsigned int npages) +{ + clear_pages(page, npages); +} +#define clear_user_pages clear_user_pages + +static inline void clear_page(void *addr) +{ + clear_pages(addr, 1); +} =20 void copy_page(void *to, void *from); KCFI_REFERENCE(copy_page); --=20 2.43.5 From nobody Thu Oct 2 10:39:57 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 8231130C102 for ; Wed, 17 Sep 2025 15:25:48 +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=1758122750; cv=fail; b=M3VIebKVu6kq9iBdMSse1VGcgiIvQ3L4o/ApSO9S5pe4f0D5WGlqfMHAdlzMlotSPKl/FwBAwVu1ryiruy49YMRuSrjjb5d4d3Y3IpmZWRmoS2ey1NxHgSf+9jNmfKBR3fBAaCxCpeMmo3ml5mg8Zz5vk9WwlCBhrh/g8OY8bZI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758122750; c=relaxed/simple; bh=Q77j9+x1UdqLKlBoSzT87TFPZ4cLUrbzsmvFBhp1BqU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=qdjh08FlwF8I56SRMF/+qRPLjKTE8mbz8IcYA8s4SzRGQ0aXv7TTA8eDm5EZIsGo/oiVZbk6Lz/+ybzqVBxjKyvT9TMOUcmr8avFO9CQj+McaXKxojeqJw+E0C2YR0XRN9CWWSaCZnzJ6/Ex7PYtc6XdNp1bd4X+kQOLDB0xrPo= 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=S+z3tMSP; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=E/U7gEJR; 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="S+z3tMSP"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="E/U7gEJR" 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 58HEIUTF008312; Wed, 17 Sep 2025 15:25:29 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=84lptFBxxgqNLrI7jsnGJ4vN3KlwOmAd8W1hpUqr+AE=; b= S+z3tMSPSxxWRFPoccaLWJk3ZyaBR4rcfhMNvOm6uMfJKiKh9m7ZVQ2TUSAVsBoo xwNL/4V8m95fkhHXKcWt1QTTLVB/VtPnJ1gpChqce/NZp54CNMT7JIv4hf95NrE5 pYd38fNX2JSrTEuV7aCeBWmSwjPnxCp+s4Sf4Z2XBDIh6yCG/2EYRXlzpmfhaJMM Oje5HNA5GUmUW8wHH7jpQa4B5lW1jziT0fQurZqYBwd0lpF6hxhDQ7NUdw3WNIo1 miKqgnvDHwhIU60dT8lGVrGc4lIglpLBMZY/pWvdBFqMdsucbnP9JPO0Gmnfa80S e4DlW0TN6nV7znb4cOKaVQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx8hfw2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:25:29 +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 58HF6p1K028818; Wed, 17 Sep 2025 15:25:28 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azon11010025.outbound.protection.outlook.com [52.101.56.25]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 494y2dwam9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 15:25:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hwZM0xSbHoM0lnSQfjdIWU5vduTKG35XNvYklCJxUWFrJWlvjKvFkypjG31ktRDb/DfECmORJFE8educYjkcX1ZEynlHjaLICypJQcGWbsD0CTqkuvRDOyZpZ0WW+3PQu/ZMMa6v3mbqqL0ClmdyIu+BEiROI6QI/fa+80slKxUpKAS7QHIsAGXGciw+MStI5Jke9dfo+MJcSXBgxPGOjjzKh/emiSO985wqJUFd6Pwty3/xycJ5i3wfLBLkuzjRZnr+YDKidQ+TXs2vLTs4B8660Lo3hwZmRLxUgVkdyT0ykxEpFGgWwCA3o2Ef+kFaEqAOw/ri3O0+q/7LsWMHnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=84lptFBxxgqNLrI7jsnGJ4vN3KlwOmAd8W1hpUqr+AE=; b=tWCEzsoFED7SdcT0aGUAv/syJTp8Gk/mvFIr7CDxEWE4O7X8lxGLk9pKFTWALj0EW/GioT1rjbo5sSTHgCq1op7A2K4om8hiUrosEBW+9opW+DSV+GxoVnObz+tnSpPG68GgPA7iV9/WkH9TqTc5U9GwkPorIZo/YJdc7KvB7kzj3/1GrTEXtFDI+j2Curn+TnsfqpvB1a0VoW50ViTZSTDTpGPytG45ba7V2euCYo1/iz0ih2iwzCpTHBwNXE4tn/dSNtnq2skVEVRxi5NYZBqeLRp1UPjS/QX+7QHYg1aUeDRTo+TPW3P2/Ioy4d3Kn5KOuulUaVe7Oq3AF36v5Q== 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=84lptFBxxgqNLrI7jsnGJ4vN3KlwOmAd8W1hpUqr+AE=; b=E/U7gEJRVaBNy28+j7ah1owIZqf/0iFOM2AHb03gFo5an6J1Tz/frpcaQ9UsUyBkGFOa8bmoTdTHTk5oxiQm+Sw+Xtxy8Us+qW7K2gIX+HI6hSM33t8bTVTXDuhXv0+HBmHGe/r3v9KP7rh4EXt97GtwBJ1nlIrcIAgLvrD/7OA= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SJ5PPFD020A49E6.namprd10.prod.outlook.com (2603:10b6:a0f:fc02::7d0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.21; Wed, 17 Sep 2025 15:24:52 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9115.020; Wed, 17 Sep 2025 15:24:52 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v7 16/16] x86/clear_pages: Support clearing of page-extents Date: Wed, 17 Sep 2025 08:24:18 -0700 Message-Id: <20250917152418.4077386-17-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250917152418.4077386-1-ankur.a.arora@oracle.com> References: <20250917152418.4077386-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW2PR16CA0061.namprd16.prod.outlook.com (2603:10b6:907:1::38) 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_|SJ5PPFD020A49E6:EE_ X-MS-Office365-Filtering-Correlation-Id: c76dd038-4b17-49e3-9cfe-08ddf5fe5913 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Va7bpBGEIdJWSXpZfaVDDNGl3UzsYYofR6bVXT0vUaelzzbGBhW3Vu6Pg3Ny?= =?us-ascii?Q?PPLB3OcLx02h9NyFpQayv0CPC03bHgM/jWcnmai0knl2tXUF99g44ADqrHlf?= =?us-ascii?Q?ofkoLM58sKd6NanV6PGwazmNntFmWCC8Z4OI8JSVk3+lMhAwsgYdNxrCzFgL?= =?us-ascii?Q?PnvFsleuzNh8nP2pAF57Yz+areFv0F2Rsn1Wq81ipBi8H/d6bNP7/EVFAt5T?= =?us-ascii?Q?UKCB4NIfcRU3kgHfcBOQjDHA0SlIjP6JuvGfmsjZIOVvMxEATPKm70OrnZ4m?= =?us-ascii?Q?gXMFqu6M8m5X+6SRti5recQ4aTFfantTtzPIuIt/cWmb6DK6PRLPj2OYegJ2?= =?us-ascii?Q?gCrI8neJ0fqs84KY+J3Ukdiq4DfRIg3WtEFPqIvhuMdQG4/5KI0f2OwPGFBM?= =?us-ascii?Q?ceGLJIqb3HIReNtEEXY2fyR32YMvwl+xHdxab1RfSVcwEateRLZeLGSunZj2?= =?us-ascii?Q?OpV07M0SwbA6VRWBlAjq/TyunUWviklQ+ZY+YvwhcRZnc0iwwec+Ec4o8udx?= =?us-ascii?Q?A4PTDU14SCt1X45MMr023x9Pf/OD9wwDN5QtCnh72BknuA7L/vzziah8/poM?= =?us-ascii?Q?ryhy6KBaIV5JKw8GYfuHhIIIDbr0h7lj3rNxDSM0Jrp128OUGgWKqTbKr30i?= =?us-ascii?Q?RgGyt+Qs5PYKSFXOcIYkeDI1hlbu62j+h14owXmzmgsyTyvFNSkwNGLnigU+?= =?us-ascii?Q?SBGAi9ZXvOu6jvBI/8Xe0DQK0ikXcXenprrEPkN0qigpa+53mGfcKETCrBQH?= =?us-ascii?Q?HNNzJAXpc2+Zpp5zGJopoYLUmeBM+My/jtoWDDggFrRJW+vPBOsdTOEs7dxw?= =?us-ascii?Q?nimVPKAYtALYx86UpkDMH0C7De/g9P4/M5ngOOb51LgTjZQHp5m0RL1U7iXd?= =?us-ascii?Q?8tF88Ujnx4gpOesr81qBKlpFwMPfeqOmurv2fs0GCvQcSFv9D/Q5tLqGycG5?= =?us-ascii?Q?c4XdwYOQoEQ7sXKnWWQz39gAbL7FCVx04C/Q6a8Ug7sgl3+pQhDwlc7fOm1G?= =?us-ascii?Q?k73Y1glAntHlvVScN/eeNBj/6xsizZP3uKbGGmLHQj/X+SF9LiEV8LqJRid+?= =?us-ascii?Q?6qIueyeezfdsnfpm/WUx26e5yGZk3F6htNnuW6FefUynpKpRA7RP7eYTxUe+?= =?us-ascii?Q?U9s+EDnTl4IeVPY4FwxdhSnkUETo7xKOQCAaxphlKMYjPxZJnJy+ytPWYg9I?= =?us-ascii?Q?rAlAqTaSA7UnxtZXPcuj4J3FN+02TVBzBp8oWEAHpVBVTd5A/RTJUbIHyB6K?= =?us-ascii?Q?ojQpjxrXLqx/MNNe4p99XrFk5MpFEkSmtjF0bT7i3wUV862hxT5Ahtny93Pm?= =?us-ascii?Q?1qGKKOZXTIpS2olc3Hr2MmiMLN0WS8JFEpU9YAwXykeoieZZcogUd9g9MTWq?= =?us-ascii?Q?6JlUvQAx2ioQb3fMGhzqx3jxwNGjsYLjJGhUMRq85e3cyt+V5igiRDraVFTc?= =?us-ascii?Q?5ebazLRu1t8=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?v1UmIDniO7A2aDHf6690UaaZdHHVQsufjuOcxTM2vA7vlTSD2vX2STWoC0Xm?= =?us-ascii?Q?tPGPil5q3de5vb3DBS66nY2RMR0C1ZtWOXKvvPTlbC66AyPLv4dNZsllKd3E?= =?us-ascii?Q?l4gHwd1DeenXdJICXowKO6RKS3W06TJz8RC4D/oz1Ob3cQ+Amk4RidH+tgPr?= =?us-ascii?Q?y3unmKEECOarqY4MZn30XNjGGd9EdOsg7qdsqAp9Ubbqbeq1cbpfktylSXBF?= =?us-ascii?Q?RCC1M//Sk1BR974KynnINaygRjmuWxZfvWte2n/0523/0dmXSg+BiUV7eV53?= =?us-ascii?Q?IrptmAk9ZFAT4oW32Z7XOtUszr3dvOniZpNymmFw4FBatfxEj+YhnfKl9zWM?= =?us-ascii?Q?E1MTB9J5DHRx9lAKZGgchEbniNyPzwBFkkgpTK4HEyNrfFu0KWSR/S6Oj2eL?= =?us-ascii?Q?HftCGNsY+4AlTC48/o0zMkpGpd88nzjABCo/ILwEIfAmcylJ9eRkbjiHCzLd?= =?us-ascii?Q?S9OZ6plUG7XAY3fqjmnUhgR7U/dkhu6FMBc1QgNB0GiQoFP+CSe1YVPZB4+N?= =?us-ascii?Q?3e5PovqIs29eTc9bAkR7Lz/4CkdgMi4p0+aHKbN+1mS7xTUyOvCf/vXX/6SL?= =?us-ascii?Q?8BYlx4bkRg9ZecpljzttghmLcy3naSclqP+AMr+toanAB54PRVHV8P92Sf6K?= =?us-ascii?Q?DmF94KCD6VgBR7KtRJpTrVxRqWdvdxYr1CimahmYu5rYftcI3UEsrzBqWR9G?= =?us-ascii?Q?vQenWlkfTSgjjFglQEk8xqpZe+e4fo1MCElvtvn9/xDSXQVFdJLC22VjaYIN?= =?us-ascii?Q?VxWMak2Q/niFBWqg3R0pukKMEdGbCQIJZRgpM4G2THm8XK7lcOn/Q4Y4Sb1y?= =?us-ascii?Q?LxdhrpqGPgdQLZ50kfEKt7oqYWz5/MYqjS2YAmrXiQuvq8Ymszb+a9GodMQl?= =?us-ascii?Q?SxX5n4OWOAMYT0YK2jDxP93ZjCN+teyl2+5fme0gZVX7KquYKttPgQDEqj9w?= =?us-ascii?Q?BVt/JWxW7HxPXzx74VjmxsOzZH+7kQQHsTYnZgpiP2rfnyheUuNlv5+PDpER?= =?us-ascii?Q?Ew0aheNlye6ByXhY7L4shRBR1wIQhygrXiuY7ZAZlRpAovk3FJ6kOCqM1vMA?= =?us-ascii?Q?q9lod4LCwtKXEY2GoC2qW5IUtbIg3yFrHDXC38wAAdJu//mFgYQsm0zeMs2S?= =?us-ascii?Q?tQXcR/2DxY6sYPnoTPmvSKhaEfp+ti4KCbtHvHhk6NCKTGiOawN9zOEXNBMO?= =?us-ascii?Q?wh+1rZp5bZucshypT8POtFKS24ZvXxswF0VoxNmsILZeRxdSiID9v4RoX5k5?= =?us-ascii?Q?Sa4ob+h9Mty8/tPGnEX3RFmuBXdNeVCQr8dGgUnFMn4OucSR5GqtTx1bPZmC?= =?us-ascii?Q?j/sUOlT78A9PmNhwDXxgiZyNoAZSf22cl8S2WqDGfKcOQ3QjtnIskXI0el5z?= =?us-ascii?Q?ghQnhLOR0FtbR1o312gZe54TGTWT6TW3yLeFbkA6+A4YY8or+SeZTeAaHUhr?= =?us-ascii?Q?ujG9K05qi7hPLYrDRpPuQXtU2DhZjRRektXlpEZiPvhwFmFb97gWmLTOm1aE?= =?us-ascii?Q?m2S/rmeSjzI5zkOyC3ArBCtHm/44ELzL+Pfqc9dNtgh5A0lO0BLCgRe6IUOj?= =?us-ascii?Q?qeI5SUVuYPOR78DYobh/169OoIihwHS29RIAuDqQb7Tnw1vYR2oljyi5HjMM?= =?us-ascii?Q?WA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: cpAXZ3crd6T9JokblANrT9LuRMvqmr/YhnHOgQ4sH3D+plM+cJ9aztel3ZNW5mPLmDBSSBG/q++53XOjxEku9vVNahYUgh4hihQr4tqFROHlYe3mSDFMBkRIVdhXdFktlW1zfq27im9M/mQP+4Ou26+PyQBJTt+X/3s/JvkC6a+JBvH370CLgyGIjZZtyqu5rHhLzaZWixkNvmfrXnCdOu61E2yhrf0LUqzW6fDjN8Txsc9HztgNHPHQgXIzpJB+FfAM4XwQDPpnIaBO4+D/TNopym3wsRMrCbwMEhae2Q8LetrVEMqtyYOcSk254Z0JzGSfYj54o6ICffCD49es6Kq86kFMsEoYwmhvboc5Pje6GE5ONmVbo8/va0WVF2C2RteVJqEB+a5d0r+P+lzYO2C7EvtzNkYLgnQ8gEEe6GaDiwq9FyO4IXIfDas15gDBy5HrGa1Sku9KoGrJmfUJU+2Txn6vgpVegoZIojQSD6h/CHD5sKoK4XrIwK/mZ573Z3auvXMQ2niQsSNMzvjueGxx6xMacd/5eOopUh/0DVHh52aaZEAzvzJeJL0WZcP9Wj9SOhKldxqBSt/eWpeHelrxab/RDTLwlFerwwd6sNI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c76dd038-4b17-49e3-9cfe-08ddf5fe5913 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 15:24:52.2885 (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: FfEyNcPM2sqFj8/2V4WE4PQoF2GQNXgxeaJzZ9giIMmMvAmKse2jhgKFIFp8TKquKpRqpwd2CunP18542iGQMnC+JKiGP8JGNZvKTLD5keA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFD020A49E6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 spamscore=0 phishscore=0 bulkscore=0 mlxscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170150 X-Authority-Analysis: v=2.4 cv=JNU7s9Kb c=1 sm=1 tr=0 ts=68cad2e9 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=RmA6VkjFzPJuhqsbX-0A:9 X-Proofpoint-ORIG-GUID: j1kS58BopQFstm_F2L-iCefQvEyHdh3J X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX8BdttaFLsq/3 mTwvnlIDG2eiYueDbkISJdxnweLSP+nltYrA7PkdkSB5u7cM/zzWEXWdbPSFNu97TEXJueKK7xq 3A67FM6hK+ZXvI/REHVCMmUWtCD3fU30GWJ7R4ZT39605kHsO/5WzaHEYqAVGR8h1/mzM3r8l6n W2OXLm5TJWnl4S/PvqPTyCqXo3O4pq13+4PtIoQLRlng3OPl5rGC88NllFuj+TAfQS5i89Jk5Ig 9PcXYZphJSbYZ5Jpx7ZEhm8xw2S02HXDYATsX5eg+35hj+A4+KP7UATlSMiiPLi0GgcAy4l9RKC n2aARFDVTYI2LBA8Lw8JBdSmS7ke5cwQEDdaFT3Dump6wMXaMq/0j+cFt0ea0uWgIXntq/II3EU kWR/jGAl X-Proofpoint-GUID: j1kS58BopQFstm_F2L-iCefQvEyHdh3J Content-Type: text/plain; charset="utf-8" Define ARCH_PAGE_CONTIG_NR which is used by folio_zero_user() to decide the maximum contiguous page range to be zeroed when running under cooperative preemption models. This allows the processor -- when using string instructions (REP; STOS) -- to optimize based on the size of the region. The resultant performance depends on the kinds of optimizations available to the microarch for the region being cleared. Two classes of optimizations: - clearing iteration costs can be amortized over a range larger than a single page. - cacheline allocation elision (seen on AMD Zen models). Testing a demand fault workload shows an improved baseline from the first optimization and a larger improvement when the region being cleared is large enough for the second optimization. AMD Milan (EPYC 7J13, boost=3D0, region=3D64GB on the local NUMA node): $ perf bench mem map -p $pg-sz -f demand -s 64GB -l 5 mm/folio_zero_user x86/folio_zero_user change (GB/s +- %stdev) (GB/s +- %stdev) pg-sz=3D2MB 11.82 +- 0.67% 16.48 +- 0.30% + 39.4% = preempt=3D* pg-sz=3D1GB 17.14 +- 1.39% 17.42 +- 0.98% [#] + 1.6% = preempt=3Dnone|voluntary pg-sz=3D1GB 17.51 +- 1.19% 43.23 +- 5.22% +146.8% = preempt=3Dfull|lazy [#] Milan uses a threshold of LLC-size (~32MB) for eliding cacheline allocation, which is larger than ARCH_PAGE_CONTIG_NR, so preempt=3Dnone|voluntary see no improvement on the pg-sz=3D1GB. The improvement due to the CPU eliding cacheline allocation for pg-sz=3D1GB can be seen in the reduced L1-dcache-loads: - 44,513,459,667 cycles # 2.420 GHz = ( +- 0.44% ) (35.71%) - 1,378,032,592 instructions # 0.03 insn p= er cycle - 11,224,288,082 L1-dcache-loads # 610.187 M/sec = ( +- 0.08% ) (35.72%) - 5,373,473,118 L1-dcache-load-misses # 47.87% of all= L1-dcache accesses ( +- 0.00% ) (35.71%) + 20,093,219,076 cycles # 2.421 GHz = ( +- 3.64% ) (35.69%) + 1,378,032,592 instructions # 0.03 insn p= er cycle + 186,525,095 L1-dcache-loads # 22.479 M/sec = ( +- 2.11% ) (35.74%) + 73,479,687 L1-dcache-load-misses # 39.39% of all= L1-dcache accesses ( +- 3.03% ) (35.74%) Also as mentioned earlier, the baseline improvement is not specific to AMD Zen*. Intel Icelakex (pg-sz=3D2MB|1GB) sees a similar improvement as the Milan pg-sz=3D2MB workload above (~35%). Signed-off-by: Ankur Arora Tested-by: Raghavendra K T --- arch/x86/include/asm/page_64.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/x86/include/asm/page_64.h b/arch/x86/include/asm/page_64.h index 289b31a4c910..2361066d175e 100644 --- a/arch/x86/include/asm/page_64.h +++ b/arch/x86/include/asm/page_64.h @@ -40,6 +40,13 @@ extern unsigned long __phys_addr_symbol(unsigned long); =20 #define __phys_reloc_hide(x) (x) =20 +/* + * When running under voluntary preemption models, limit the max extent + * being cleared to pages worth 8MB. With a clearing BW of ~10GBps, this + * should result in worst case scheduling latency of ~1ms. + */ +#define ARCH_PAGE_CONTIG_NR (8 << (20 - PAGE_SHIFT)) + void memzero_page_aligned_unrolled(void *addr, u64 len); =20 /** --=20 2.43.5