From nobody Fri Oct 3 11:15:10 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C89BE21FF38 for ; Tue, 2 Sep 2025 08:08:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800539; cv=fail; b=VbWgD1zDTMvehdQvIM0cxLJts0Lyvyx3F5SHin1eU5AWkD+Ex7NWmlpaFq4OBM/DGdzJXoAUYngFvU05Anddgoc5k3wcAhfoIH+Av2S7CXv8UCieeXF82Yw6ISZ6oDsWX9EbDhz7idrmyKLuvn3kGh8wGI6vu0SECUTbYVWLE3A= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800539; c=relaxed/simple; bh=5CLDGO165yN19OCypeo4eWapJZ9EyIrf4kCqw8oInug=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=mNpX7BRj7OrCqnaqu5ZE9Pa71z3IV7geYT3d4U2VMUTg0PJVLsAuapRC9tKexJYVBFwhKP2RMtX6N8ogKLm2/SIee0EkV6WabJfnQgUI9ii3RFVEqNWgccz2no31w3O1DHKeIXysvMJT9juYXnaslwoVYaosXimjbcZwz3s+Lsg= 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=GdqRCAOm; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Jg4cts+3; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="GdqRCAOm"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Jg4cts+3" Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5826gcbi019854; Tue, 2 Sep 2025 08:08:23 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=//izA+gzb2Q8yY2Ihnjzzn82o4Ewk+CM1ZPZBh+u0ks=; b= GdqRCAOm+jIuGmd+va4ciu8fPnQUT3S3WtOgakSaHOJKYbJIZFm4tetn7zBw3f91 4tUipOMqtBLWPZszmlESK1yayQnXsut9VGYKS4EBuMuU7XTBbarh8p2qWa6jifFS v/DVxPCUuN4XmrOOUq7L9AnWmGRU3T//uiI5bQMtLUWNd3Llxai4iCXmNHwicFh/ 4wNmWkLftBM64LRVfc+G6CfXrns+AiGRXTWSxU6wh5cN82HI7VPOAivV9RScrm59 SzA5k9Q3fv1OvnWaUIMoBA8IPuviR1VFzapPFtdEbLm4vM6T9ua/1BLKlsIXKTnF bGhlExd0DzPuDnu0HbmWyQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48v8p4jxfm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:23 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5827Z7UR004220; Tue, 2 Sep 2025 08:08:22 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10on2064.outbound.protection.outlook.com [40.107.93.64]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 48uqr8t46r-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LtGzsa4aYBma2rFgZQnLaWp+YXcHjnM1lX+IbXdSrYbqwCywcSOgDNsP5+VswVsms589ykXdZlwBv2R82pFET9Z287p/pluMkYuwSwEQ71gqIelppdfQCnTDPnbabFF3F5D4/8JWvswiQyLKdj3jyBVnECXcHQMnHHTkM4yBEJNj2Q10fw0tJRTSOyU/+tnAambDblTSZo+UKty1xWs9i86f3Izk6LoIEUyKg2zwaLxebB/GMKRtaA4la9Fi16h0xDmNlBZMV2Zvjt7LuQVY85z1mxP4y/b01h+uex0kBC8LX1UqfXMOLjY6r2HzNRt2iqfzUgVNeUpokGlHpxDb8Q== 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=//izA+gzb2Q8yY2Ihnjzzn82o4Ewk+CM1ZPZBh+u0ks=; b=c/X4t+l8If7u9DF+V+YuDJpW9PQCIrxr5ty4TzoTF32jaNDzZsaHiar21bNuxuoZ2WEyTXiEvpgBCRpXMPiuwHMbY3WE7ilKs2GflXoRhjqFguGHLdqYm0/S5p5tLLATy/+CIz7dtQtCJ6aOkvrOzFcU+E9w8Tg/C4JitnahGchB+RGu5CV2JQT31PMKycDIEDmCcYj7ufI3Y+Obu+wUNFFprz4RoE2+FppKX9yf0OeZSjqt/c7bMsmUaAKY02GDJ3TKOjR8Kl9E99PTfrRPgkkqAQOfW1WW+NwozkZSPYL6EMVgOtY97zAPlArhlfXOqtfbdz98tX8msnoHpOkrrw== 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=//izA+gzb2Q8yY2Ihnjzzn82o4Ewk+CM1ZPZBh+u0ks=; b=Jg4cts+3M66J7l5JMEcTQosWxKUNBw6WCZrgiVEHGXHkFiocmwSfwQ697XOLRiLJOoqY2rneD+Qqquaa8ywkA3xCsmhAbDFTeP3sOZmIppF7qFim05burYFRxg/QF/YaS7P89WcDHPcoSN9VbADm5Soj8xrPLXvHJ+X+VgWfLAI= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by BLAPR10MB5139.namprd10.prod.outlook.com (2603:10b6:208:307::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.16; Tue, 2 Sep 2025 08:08:19 +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.9052.013; Tue, 2 Sep 2025 08:08:19 +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 v6 01/15] perf bench mem: Remove repetition around time measurement Date: Tue, 2 Sep 2025 01:08:02 -0700 Message-Id: <20250902080816.3715913-2-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250902080816.3715913-1-ankur.a.arora@oracle.com> References: <20250902080816.3715913-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0082.namprd04.prod.outlook.com (2603:10b6:303:6b::27) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|BLAPR10MB5139:EE_ X-MS-Office365-Filtering-Correlation-Id: 549af819-aac2-4c16-dced-08dde9f7e07e 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?Zl0J1YZrgS6LeSWRaFykIOXAH7UVTjZY+DzI6PYTYhWin6OE9B4979UqQuFA?= =?us-ascii?Q?KYc8ucx3vUJX8UCYp5tUy7//8ZLKutfUku1CHDpVQDTFM68zcuXdJoQx7/8F?= =?us-ascii?Q?6jd0Cb3jIWvktLTDGX6YAtXaua/SvFAk4oJOlQyT77noMLB8MCSX4yZB2T+m?= =?us-ascii?Q?IJ7Id4IK7HD0KDkbVX3T0X2JRkY1czUIcs/TIbyDUrYr/qIn/14SyHdD/8Zk?= =?us-ascii?Q?xKdpPBSiX6xfL2MjfjsolTFSj0Z2S98b4KdDhwxiETOR9Q41lYPGwRMhaNL6?= =?us-ascii?Q?4rd8zOTwgsjuVVfhp1evwG8rpAHRuqLDW1tSicLOG7f1jhrDs1zff3yFyver?= =?us-ascii?Q?1NHPefLdkHFx7XcWiV6ImY9iKo1WiMZBcqIJdbiiLACygigrSRi/hBXJIG9E?= =?us-ascii?Q?BzltlNDDeCXbyTaFDH8+iofqE77rKYqujl20wUkUPkcFHmd4k3yhCeMgOpgl?= =?us-ascii?Q?pLVqjW/B0cTVeGXrvn9hLWEi4h2v6CBEfvcOe2bwVvpdCwS8fZylQf4TEHFW?= =?us-ascii?Q?f7g7Mz7FNuTWiyZOzM53/pZgpk+AXWXFsq9kMjp258YltuW8Lxt02s3ItfRR?= =?us-ascii?Q?MAFldwgqGaXtaDQIPlgtUiFuiluT+6u4Nq/C+8z6KWsJeIuYlwibMhdMVss8?= =?us-ascii?Q?Qv7Z2mHMbkyh4yWhvyQv3l9yeWzol31ELd1QdCvJaZWoqNhyF6rI8Lj3axND?= =?us-ascii?Q?m2qfsPwTCOntxHWNFLOkPl6OC5kEKZFSvZXot555f+7mLzEjbs+qzGSKlUx1?= =?us-ascii?Q?l9UkXHQxGR0zwdlCAkIDTwCr7aEF1sPVhDuNfl971JHtbUujJnNwG4f8w1ud?= =?us-ascii?Q?vJKemOw3NNrdpppaSR3Hayp5Touf/gN5yQ/U7/aOiT7xjsWN6AZrV2gdoS2e?= =?us-ascii?Q?0s6+3oWF0PcFoteH9u7r811UN5Zs6BFDY15nLAVLavYgL+QlIfi+ILhbb8o+?= =?us-ascii?Q?PkglQfpiL6R+/isuN8stoiFAm9UlviTSJpIHF7WB9EZB7/lWgXCbonyPeCpS?= =?us-ascii?Q?kTZRmZom10KiRef4hWkAoFnWYo1SViwPsV9KnZo89sIN0FUWDMd/JhSiDMMB?= =?us-ascii?Q?kqWKlfQkror1pQACZtDHiZbKv9ENTIUli//Ruxds/d85AsL7BC9s1d2btfpo?= =?us-ascii?Q?OotLZ7krSyx6gSrpta6gwP0WHDUr2u6WGzMtsvLWJpdHu0GZR4SAl/Q0eBkH?= =?us-ascii?Q?n3gd3aZLsDz1HRT30yHEEXP/+1v/C5rwDDQsNjfIm6CXwn45ewK0qEg9uf1U?= =?us-ascii?Q?toP/gSfeo7LwjWxKfV3kkr03pRrWadR5NjGyKdQtxhfbNoIh8p97XGLqTmOC?= =?us-ascii?Q?aXj5OVc+emvGaE4l28Sy1oyTpjSY6ezcDTBfNHfr1LWgX4AlLtP/FHCGDy+U?= =?us-ascii?Q?CkM0llo=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?7xwYg8ZUG9KSurSa3nQ9l7YinsmxEfOLvGB9M8u6VFkHo0gzX31ySzL4e97m?= =?us-ascii?Q?ljuzCRXY3BX7JxX7eb3CM3XjWwiAqyXF2Hed+wBndqtqxjcK00kAahnmzUbf?= =?us-ascii?Q?0q+WLkkKndsb8IhckvhQegv/Y2EEA4uIITZ3jxfX20PlEJg0d2mVMkQZl+TM?= =?us-ascii?Q?WTnAdPvc9NwKRQMJ50pdSvNUtJ/50WDjPRATynpL+fO5+63f5THqX1AX84Ab?= =?us-ascii?Q?JzKJbB5fMK6EfXQL4a31n4MpY0hRRqHY5QWmq4P+mlWIAgY3zxdjw+/Lu4wx?= =?us-ascii?Q?wZj9TcNcGE9slGFG/09VXaMJe/SGzqkxrp6V2Uz9/HtWcPiY0Uc0Lc0CXWr8?= =?us-ascii?Q?zU+Q8MtJNvnL2xUG5wlqTP1dbn1HDYTp13Rsq5ADyTdb9NEbeGhcBJeWjfq7?= =?us-ascii?Q?h0Ikh67X4f4DA2w830Gd9TwOvAAF6Zc8EinszIywA0yGEyB1sSge4Xb2KLpC?= =?us-ascii?Q?Qewxk+C+5XBiDl2J78mF3ioHZNu2EHAXg/UpKoix0fkrca6vlzVJ30qk60AD?= =?us-ascii?Q?11L2HzGEyrVhxR56Ms3vaFVQmhQdZfvnY+XF4KG4wDOaXCArXbbUt/TGCQxx?= =?us-ascii?Q?t/G6NnPaB63JNdroFRoiLfg1rnQJmA/NGKpWI9zXnplNx9B9lFDDxou9e+Sb?= =?us-ascii?Q?8hvQ1LIMlp1Zby+7qrUSpCJQn0M9fEf1qa2qagHrl0fhBlYqrRp1mndBSBGj?= =?us-ascii?Q?BXrqm5UcMKwUBC/6mEmvPHhoWX4Rg4j4iiPXc3uhLium/8QHB5BPf+ymLpVm?= =?us-ascii?Q?8OxeyituB8stNLdPGMv3EkRkkQARZzYJCxdjFwLrR6qmpnYbXwSu5+wvvBVj?= =?us-ascii?Q?F5kUkK9z639qrKicwlXWT+XSGv20CktiNwYdFrtdHzLnJkA4iUomrvd8qJTm?= =?us-ascii?Q?MlL6dtNIlb2m8OUzi6f50QLFFPqnk7T3JwFo5u29eg44PisEyaIqqj1lp7NR?= =?us-ascii?Q?8EKxifHeNiTdppAMO+AcNKwp5lR7UPGYOOTdl26mg+bJwdcogrgMPo8vdN+T?= =?us-ascii?Q?p0FkZmiP5WwOiuMZOzCUdGumGZ6Y6tBjDrAAyM7OUbmBUbh92ubhiXqWXfHy?= =?us-ascii?Q?W4JsjKuobXhqYvGJ/N2z59xhDfp3jy9JmykVgGYZ/ZF0Ulm9csaH9iAiR77K?= =?us-ascii?Q?u1apM8GCFy7BMXBSBY9f+DQEBtpHbhLFvEXKev/Z739ph4d6gn/qjOEJnpYM?= =?us-ascii?Q?lWB7NoUxRZgdk0D4ONkpN48sE3b0XDihFV+V75yWSF4UbDQQekaNomQLhVJh?= =?us-ascii?Q?lg+rvN81anrO6YFg8VM4WtKZ7qCITZPdfTRZH5qYt1bMKYB4NqsR2wRfBGYl?= =?us-ascii?Q?aQJlmyRUpeEzgiqaz8dWX06iSIWtUHlTg+HM65O447sV0XG9y+PAXmYfEqKb?= =?us-ascii?Q?mKsz0jU7HziP26PB18oe3EytvIDecrfuNZ5g2SdjwfxqGuf/2L2xK9ty9aMN?= =?us-ascii?Q?O25tHrFPgjhQ9Y9nwkUwzJaL7u52X+ZUdJ7e4BI51WLvXzskojHo/7PBnlq1?= =?us-ascii?Q?vpw34aKuPFtuGSqnnLibIChoLT6VkkcyQyI7i05IXS4DrZLqv1yLHIDckJkY?= =?us-ascii?Q?hAk3o8jK7eIQQV3k+IpZoBXqS0p9vlZRJ1e6RuejVCskYdJK5CYLMwWdw+ZY?= =?us-ascii?Q?Jg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 1ekaEtg2WGUG134NVQyGjAvncm+uNSSaQxOSEkTL3AMqMX2rBvh9FHB3i8CwqGMc6Iel3JOx2JIe3Qg0xLN1HCugoZ1Z3WFA9dzOkttaV95OVVBWOVQmS3N9GZGmiwAMlgccRT5BRDJlzQEz5Y7lkahWYBpA7hykP8/nZStL7lpVzv+VFaQpMpjF8U5ZP/ZPer1ODYs1Zd5HSLxs3rJUSGhRc+ogd6VIE2M5WJWGXkuNOxYrvKVQmPeiRiPAz3gGVT+YtsAD0iX7Q+JY61bk5xobBvitVuIWVt2WnzhUsH5Kn4vmGwEOnHnE9YGjD7Mgi6OZo5Gr5i/99kg1wt6jN142+6q53rCiQXkOR59PHBT7kGrTL0TnhJgIK0O9Q4jnMJUupq2RxAZLkmvOdCKHIo6PR+/ZW2vDrcgYJFSj+qduGqtFwAFPof0kGu/pz7tWQird7WCtxRd/SNucu976KNz8A6ku7RCLoZy9V80z96lAdeKC7XD5hrvBuP1aL3IfzUR+czfZIFOR9Yvn9fQeW9AaoiefUKYxb+F4801zj3wo/uNkSQt63ZN1Lrj6NI6mmoJlcyHxTxxaibNqIpBnm2iBBUBQHH4uLLNdkQ2NLDE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 549af819-aac2-4c16-dced-08dde9f7e07e X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2025 08:08:19.2100 (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: 7lkg/8NsG1Lm6l9Sr0EkAm0eD6togA4hBQK2na18WL1Mf82oiADiy5vNEPpHYhWtl4mvqrpKFVP6xO2/oj6DgbqWg967HUjqs2m97dpwKRw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5139 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_02,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509020081 X-Proofpoint-ORIG-GUID: LxuNHFzvhuRRsRqomRZKGRi3QMrHAOGI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDIyMiBTYWx0ZWRfX7BEIIIzIUomu rjiznNH0RysdudptSxroceS4Ym/HKXGIQ3dq5jtNgalEvBQIEJhCe2ap2t0+ClOjOc6u1c1PMzn bdmCHG46LgVlog+6LsSnnVufMnjGgdYovS7OuIKtcDJ92WLkysgdG2i5rETX5pifppboDfeoODH C+JDVgp+FpDhrfrRItMTze2bVnW6eVEBJqIs/wv8BvjTzANRQDO2buFAkg3MD/Uy9HU3fNPNhYi A5ZhxfPmKeWBQs1SkjjD81tONnO25LL0+9Db7ZgIpcm9LKo46pHiD+zrypR3VlD0TdcPqHJKLtw syAtiNNuHEJQIk7V3bSIxSkh95GzgwaOblKTLPGsLvATBGEsfRxbpcCd/gGscFVncedfU8aHZNw v0BNHra8 X-Authority-Analysis: v=2.4 cv=doHbC0g4 c=1 sm=1 tr=0 ts=68b6a5f7 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==: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 X-Proofpoint-GUID: LxuNHFzvhuRRsRqomRZKGRi3QMrHAOGI 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 --- tools/perf/bench/mem-functions.c | 110 +++++++++++++------------------ 1 file changed, 46 insertions(+), 64 deletions(-) diff --git a/tools/perf/bench/mem-functions.c b/tools/perf/bench/mem-functi= ons.c index 19d45c377ac1..8599ed96ee1f 100644 --- a/tools/perf/bench/mem-functions.c +++ b/tools/perf/bench/mem-functions.c @@ -51,6 +51,11 @@ static const struct option options[] =3D { OPT_END() }; =20 +union bench_clock { + u64 cycles; + struct timeval tv; +}; + typedef void *(*memcpy_t)(void *, const void *, size_t); typedef void *(*memset_t)(void *, int, size_t); =20 @@ -91,6 +96,26 @@ static u64 get_cycles(void) return clk; } =20 +static void clock_get(union bench_clock *t) +{ + if (use_cycles) + t->cycles =3D get_cycles(); + else + BUG_ON(gettimeofday(&t->tv, NULL)); +} + +static union bench_clock clock_diff(union bench_clock *s, union bench_cloc= k *e) +{ + union bench_clock t; + + if (use_cycles) + t.cycles =3D e->cycles - s->cycles; + else + timersub(&e->tv, &s->tv, &t.tv); + + return t; +} + static double timeval2double(struct timeval *ts) { return (double)ts->tv_sec + (double)ts->tv_usec / (double)USEC_PER_SEC; @@ -109,8 +134,7 @@ static double timeval2double(struct timeval *ts) =20 struct bench_mem_info { const struct function *functions; - u64 (*do_cycles)(const struct function *r, size_t size, void *src, void *= dst); - double (*do_gettimeofday)(const struct function *r, size_t size, void *sr= c, void *dst); + union bench_clock (*do_op)(const struct function *r, size_t size, void *s= rc, void *dst); const char *const *usage; bool alloc_src; }; @@ -119,7 +143,7 @@ static void __bench_mem_function(struct bench_mem_info = *info, int r_idx, size_t { const struct function *r =3D &info->functions[r_idx]; double result_bps =3D 0.0; - u64 result_cycles =3D 0; + union bench_clock rt =3D { 0 }; void *src =3D NULL, *dst =3D zalloc(size); =20 printf("# function '%s' (%s)\n", r->name, r->desc); @@ -136,25 +160,23 @@ static void __bench_mem_function(struct bench_mem_inf= o *info, int r_idx, size_t if (bench_format =3D=3D BENCH_FORMAT_DEFAULT) printf("# Copying %s bytes ...\n\n", size_str); =20 - if (use_cycles) { - result_cycles =3D info->do_cycles(r, size, src, dst); - } else { - result_bps =3D info->do_gettimeofday(r, size, src, dst); - } + rt =3D info->do_op(r, size, src, dst); =20 switch (bench_format) { case BENCH_FORMAT_DEFAULT: if (use_cycles) { - printf(" %14lf cycles/byte\n", (double)result_cycles/size_total); + printf(" %14lf cycles/byte\n", (double)rt.cycles/size_total); } else { + result_bps =3D size_total/timeval2double(&rt.tv); print_bps(result_bps); } break; =20 case BENCH_FORMAT_SIMPLE: if (use_cycles) { - printf("%lf\n", (double)result_cycles/size_total); + printf("%lf\n", (double)rt.cycles/size_total); } else { + result_bps =3D size_total/timeval2double(&rt.tv); printf("%lf\n", result_bps); } break; @@ -235,38 +257,21 @@ static void memcpy_prefault(memcpy_t fn, size_t size,= void *src, void *dst) fn(dst, src, size); } =20 -static u64 do_memcpy_cycles(const struct function *r, size_t size, void *s= rc, void *dst) +static union bench_clock do_memcpy(const struct function *r, size_t size, + void *src, void *dst) { - u64 cycle_start =3D 0ULL, cycle_end =3D 0ULL; + union bench_clock start, end; memcpy_t fn =3D r->fn.memcpy; int i; =20 memcpy_prefault(fn, size, src, dst); =20 - cycle_start =3D get_cycles(); + clock_get(&start); for (i =3D 0; i < nr_loops; ++i) fn(dst, src, size); - cycle_end =3D get_cycles(); + clock_get(&end); =20 - return cycle_end - cycle_start; -} - -static double do_memcpy_gettimeofday(const struct function *r, size_t size= , void *src, void *dst) -{ - struct timeval tv_start, tv_end, tv_diff; - memcpy_t fn =3D r->fn.memcpy; - int i; - - memcpy_prefault(fn, size, src, dst); - - BUG_ON(gettimeofday(&tv_start, NULL)); - for (i =3D 0; i < nr_loops; ++i) - fn(dst, src, size); - BUG_ON(gettimeofday(&tv_end, NULL)); - - timersub(&tv_end, &tv_start, &tv_diff); - - return (double)(((double)size * nr_loops) / timeval2double(&tv_diff)); + return clock_diff(&start, &end); } =20 struct function memcpy_functions[] =3D { @@ -292,8 +297,7 @@ int bench_mem_memcpy(int argc, const char **argv) { struct bench_mem_info info =3D { .functions =3D memcpy_functions, - .do_cycles =3D do_memcpy_cycles, - .do_gettimeofday =3D do_memcpy_gettimeofday, + .do_op =3D do_memcpy, .usage =3D bench_mem_memcpy_usage, .alloc_src =3D true, }; @@ -301,9 +305,10 @@ int bench_mem_memcpy(int argc, const char **argv) return bench_mem_common(argc, argv, &info); } =20 -static u64 do_memset_cycles(const struct function *r, size_t size, void *s= rc __maybe_unused, void *dst) +static union bench_clock do_memset(const struct function *r, size_t size, + void *src __maybe_unused, void *dst) { - u64 cycle_start =3D 0ULL, cycle_end =3D 0ULL; + union bench_clock start, end; memset_t fn =3D r->fn.memset; int i; =20 @@ -313,34 +318,12 @@ static u64 do_memset_cycles(const struct function *r,= size_t size, void *src __m */ fn(dst, -1, size); =20 - cycle_start =3D get_cycles(); + clock_get(&start); for (i =3D 0; i < nr_loops; ++i) fn(dst, i, size); - cycle_end =3D get_cycles(); + clock_get(&end); =20 - return cycle_end - cycle_start; -} - -static double do_memset_gettimeofday(const struct function *r, size_t size= , void *src __maybe_unused, void *dst) -{ - struct timeval tv_start, tv_end, tv_diff; - memset_t fn =3D r->fn.memset; - int i; - - /* - * We prefault the freshly allocated memory range here, - * to not measure page fault overhead: - */ - fn(dst, -1, size); - - BUG_ON(gettimeofday(&tv_start, NULL)); - for (i =3D 0; i < nr_loops; ++i) - fn(dst, i, size); - BUG_ON(gettimeofday(&tv_end, NULL)); - - timersub(&tv_end, &tv_start, &tv_diff); - - return (double)(((double)size * nr_loops) / timeval2double(&tv_diff)); + return clock_diff(&start, &end); } =20 static const char * const bench_mem_memset_usage[] =3D { @@ -366,8 +349,7 @@ int bench_mem_memset(int argc, const char **argv) { struct bench_mem_info info =3D { .functions =3D memset_functions, - .do_cycles =3D do_memset_cycles, - .do_gettimeofday =3D do_memset_gettimeofday, + .do_op =3D do_memset, .usage =3D bench_mem_memset_usage, }; =20 --=20 2.31.1 From nobody Fri Oct 3 11:15:10 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5F0AD32F757 for ; Tue, 2 Sep 2025 08:08:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800538; cv=fail; b=LtbYJrrxF77tBHuNZ8lmjDc2sz8PJKpMW7tIDWYwMzb3wVhdyFepALSZ0ql9+qYbZ3O/eOZemRxWcYZAeUJPFdJlfTaFnEx5XVPFCOSyJLPJkuu7d54EI0mVbgEntaau7gibALkM5zSL9ha0XNqQfBqiecxRNjKruV4yFyPnBak= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800538; c=relaxed/simple; bh=G47Ylp0713rz49HeAZWsKOSnOGTHq2w55GzXbQb6we8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=BYD/WGjCWJq0sy0FbjyT1bhKbaxEKnDKnvAXmhP5htWrnw1Wh5vHAqDwtdZ7A+SojoBpCafpzahrGpqiMz/pK4SAhutCrz/T2zmGOe5NTTwSUJ/QTBzcuZYS3UN1UrNt3+f94EAAO1hBA9ftWC2cUqSJyO+C7D4E83PFAf3JUbg= 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=oQmXPbhu; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=OptgRYJ4; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="oQmXPbhu"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="OptgRYJ4" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5826gPSm001342; Tue, 2 Sep 2025 08:08:24 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=71YcSEAsBYKVV6nPijC07t2ug5PWbqQEVoZxPM9VakM=; b= oQmXPbhudipJLj6Yd/QjwMtjBdNfYML1vNVbdwm4HmAmt/3OdUKpYcEQMlN16HHH gtTYQiVcRSj9iCNvfTHSKDVRpPbdsuX4veIaY1lE3NLju/0a3wSw6wkE77pyjTIZ iRoqM0bzU/GcU8qv5rB1vZ8qTFW4wcr+ihmOq3mSE/lqsC5P32M8KFDPieBBs1Z+ WCXojpDXTivhoBNgZbXpNT17bQoFy6Z0RcWYiCHOfeS9p1aNBoKvJ/3QYtKKf4gz eCg/81qkyPcIdujherA9t52Mqdkss0fz90ZebCkan+haY/Niu82wtYLiNJYKlBpJ Tbs8qDdXgVtVMkjCq3IkyQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48ussykdyw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:23 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5827Z7US004220; Tue, 2 Sep 2025 08:08:23 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10on2064.outbound.protection.outlook.com [40.107.93.64]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 48uqr8t46r-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xQveU+21ag7y/oGdxeyOvJ0ZSysjlX2LMMJY9mXYct46KejTIUdfhnxq/Nwlmz+6t911iBMBrwGm8e2E6FuXJZvZ+iq0H/y+CZgIGC4bk6ZIGNI2jaxeoaKrlciT5ShsS4kGuvK6jdgAUJXcE5aX6jlGRC1fHDFbldCm/jCABw9dzFJdqTE5w4fw8eK/B4IVbaAhWVui0HTCOiJEdOc/dLHHIxXPbWUN7lsF+ahbiQTobeMhTXaz4n6WAfLA0qcRhA+s8PoIkDAGGl6vfcf/5G59ZacUOEeaAS6tdyJftLkWpBa5O6co8FbFi7Pmfq4iu4Ikj1u8UQJBJEj1SJW0tg== 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=71YcSEAsBYKVV6nPijC07t2ug5PWbqQEVoZxPM9VakM=; b=MB8gbK+lQXc755ITeYs9RDRe/Zk8w5iaHkg2hN/Le53CcM7xrAYSzB1Vtse4yHn0rWHcyaaCDYPSKPamlZiM7VPJ2d25xHFxC+GDZ58HcwNM4sroG2hqNQAXBSsoXxdSXw4KR+nQf88ihxb9SyUAJULLRA3oA0/spOzHVsYDKccCemgyw9emDgzT98iPCdOOzqcleN2TzjNpKNYq95WMJ6QxpX6wp3W0yjOoZpXozafqrKj27CRF3UkiLV+EKJq5H0+sWVkfMwxl2LgUJHsNtYTOKjKxjc5AAvNH8AUJMn87p53kJ6uqY6Si8dUmDWTRVdmkWC1jbS4iR1rqbqGpeQ== 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=71YcSEAsBYKVV6nPijC07t2ug5PWbqQEVoZxPM9VakM=; b=OptgRYJ44cGkCgq6ggdXIygW9pZYUGO9hdnXErh/djgRtn2Vb6NHMWdE25us/Bn8rI7aHpFqtrpeTh3i+yqEMH/2G1UW3Skgzq3ToHbm2U0jJsMu8kUL1wrPTlm8/AAQKBRAvptmWKDm4DcZsjYF4xPtrnU1ZpgO6TcP4pMhdCo= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by BLAPR10MB5139.namprd10.prod.outlook.com (2603:10b6:208:307::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.16; Tue, 2 Sep 2025 08:08:20 +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.9052.013; Tue, 2 Sep 2025 08:08:20 +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 v6 02/15] perf bench mem: Defer type munging of size to float Date: Tue, 2 Sep 2025 01:08:03 -0700 Message-Id: <20250902080816.3715913-3-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250902080816.3715913-1-ankur.a.arora@oracle.com> References: <20250902080816.3715913-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0069.namprd04.prod.outlook.com (2603:10b6:303:6b::14) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|BLAPR10MB5139:EE_ X-MS-Office365-Filtering-Correlation-Id: 25d3656c-eac8-4085-69d6-08dde9f7e156 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?CIUQYUQnpcS/jrWk1RS2el04cpb16djZt5LppsE+Ey28ZSUKQHDFn87aejwn?= =?us-ascii?Q?2X4ieoPdPSHPINBar3IcgKbMnNopAUGK7CpK6aWQQO3/qtoHGBzaT6WMzT/c?= =?us-ascii?Q?OD3yCXWZZKD9RCGrnVaXiSwMmlTW47bu2+26Gu1y3LpklId+7s0juBo1PzA5?= =?us-ascii?Q?JsEM2cdJt3MMQrzaTiqw2p54oI4hrEwp0w8Sh/sfrZGQuH0sf51n0AMLV8Gt?= =?us-ascii?Q?DmM9xFHyRp3+KwgIgMgSAB5+jGDSAL9oiB/CLBGcXagJIcMooxm53CMqoGwv?= =?us-ascii?Q?e+7MNRMftw43UNmPd+GV0HRcdV7SczZAUDKQ3Rg2+eTu22Ve0y3Np2/Rv99F?= =?us-ascii?Q?cmc1ACLgsFkEu0pnCq5NCqvvZ8I6B10J/ERpUWmMZqLrDkE4o74bVor5n6O/?= =?us-ascii?Q?j9palyvcGxxVCBq0a4noK2uPoITMH+/Owmq6HqOsVQUC13gxCMA/sosgNA4Y?= =?us-ascii?Q?ZBx7rOxWV+BWQKiToBeX3ZppHKtCfudmxYjPLqUJhu4L0ytlLKuNxoHQCptU?= =?us-ascii?Q?lAWyva2SHu3bdIkyitXQuN0oOrRRYpYJy97F/OTFRQoJVSbWWTFMRhBQamds?= =?us-ascii?Q?AHKYpjBS4rHwtTntJxv89qUGdsltaP16qoZ3c1cpsy5akRgTxBSTEK0aooPF?= =?us-ascii?Q?umXtz5wItPmzGBKCQGbAGiV3XZa+7zRINmWSsBT9drMYfsh+qlHxvdafnG5W?= =?us-ascii?Q?LP+aQTCXzMo2MuzhX07UZyW/SzoLau+3Ct1bUwhh685MD072hn8va4Y1BUUR?= =?us-ascii?Q?edJzU4WEegOwSIOh4QLd8lDJAF1fe0pG5vtFNoHlaLvM+1BraRQ778iHCH6n?= =?us-ascii?Q?tebUoHFqsaFSiYPp/ChxQ6QUDmUTwQvgHVlw1jMCU3o5pHEHqLe0vjDTVkXE?= =?us-ascii?Q?Pwh49ORINF3IkAnCeusMN84S1/9XVJPk2Xu788DtoVttUGG2avNnh2FUYPDF?= =?us-ascii?Q?zOCYZhCvB+D+Vzy6ekM+9BV51kG6C3HaYl6EgIJTMDcYR7Yl91/K/7S4eoS6?= =?us-ascii?Q?iI7mqGTVjKsWHs4kdvIrPjDNcGYxNyES6pJfnxvb0Wummmkky11ZiNOL4Hp1?= =?us-ascii?Q?Se3Di4j5j1j2e+jxIJ7DurAESbeeio1/B+MvZ02spw2xpwVT8alV7X7jtRWC?= =?us-ascii?Q?fktSd5RfO2xYWlpDroj/lNVu2evOtV5Zt5S3V1qWhSwX+lRbkxTExzD3caT1?= =?us-ascii?Q?ydZhK/BjYthZEshK392EJrLa7MBpgyFnwkoz6x5rBsLy9bPU9TyXrzQizgMM?= =?us-ascii?Q?v9BbaJvGegPNeKB6B8IJFbON4baStGN1HafSAEHM/lIkOyTk+efZXqPW31an?= =?us-ascii?Q?u/qHCnQxJrJLyXulxi5xRJ529zwukyKR/KQpt85ZS30H7Z1XEpD9zT81JBb+?= =?us-ascii?Q?68+FgSs=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?DDQtHLAgQouRqSpeHznJ6L0EnFjHxK7DW3pPd5gVT/8sEBOoBI6A2Fhlm6kH?= =?us-ascii?Q?PO799+CtO+5IA3yYk6pwlv9Zsxzw99wQABfJ6jGGn+lUGwwo1l84an3WG7oa?= =?us-ascii?Q?3NCEdtxIGd06VNjghrM3gEikqnNZvJrSUHWT7/lSIq8akq40qff1MmVtUcNt?= =?us-ascii?Q?/wwzDOTfJfpj5iMW9OTWmZ/2EE+gZDsK6ovPczhJrH8rfZaonuaGUNT3HSGt?= =?us-ascii?Q?OelqL7KvmEAqb8JqTl8NlivTiuiCx6+EdUjWC8TzPmQEXhzcw+R5KdOE5jze?= =?us-ascii?Q?0rZhfxfCdGy1z3pQxsoYtszSpQPlwHwEVXfTNh5UuWFmIJbWl7xBMLzgdRHy?= =?us-ascii?Q?og8AjdMsj/P8VwoH0OSAkhx4LCEq/s66juh1NDiEUMKiKApT1z4KfQPfQ1t7?= =?us-ascii?Q?BHZ1CYONYLGbqAuf87YWhpch3YKDYMdb9VrzqtGRHVjmoATLBuabbSzngfxE?= =?us-ascii?Q?slEmAMuC+pTL6Ri2dg96sOxFkshIebaJJmBWr4E4JOYkCVnYGHmw8ta1mINP?= =?us-ascii?Q?5mOoHj7LLSH+5WofdGe5kJDoDQjIj+TId7OW/Uw0hNihM9cdzQALnSJr3sji?= =?us-ascii?Q?OuCmygCREDw/pQa3yNnUlP/q6tR0iqLgyskEYJYx0XJdDHfQySmM6jwVpkZj?= =?us-ascii?Q?/WiBXZXb0U7pgQ/6ERsEZ6eWmGtVBMSFk/PNpdpX8lc1hVcs6cy0MZty4RLt?= =?us-ascii?Q?fhTH9LEk0TImStJTv9QRSdRM/H9XMGWy51Rgmet7Ls76jfaD46FFKlZlWv1T?= =?us-ascii?Q?RVVTBS0Oi8shWGpwVYq3ijAve0KKCuXFnfS+6zyNdagX9WKrhmdLV8PYylYa?= =?us-ascii?Q?uRl6wYccQiGCte1FHrTnlw4GXllIZlL/xg1Krx+G2bJcvNzJd9wTUmzP5W3g?= =?us-ascii?Q?FiF+t/bas3IL8uTMjSvirJrk5n4yjYcPQb+ZeMsxdb9Omfp9P51bwa/JIL5N?= =?us-ascii?Q?wjY0jnlo0qH+wq21k8UPEhBeBlyFJlHi7xSZXIQ1rWSX/ASiNVH26/Txl6WQ?= =?us-ascii?Q?QJCisy+XT1Qd23qgI9lroyMrYe5tdHTe9SMB/S6uUvn0OIHijPs0vQtLBppg?= =?us-ascii?Q?Dc3CUFa0guhztGKPE9BqzCttafc8lI+CvHsUfO9pG6ZqpDOKGk0ZYRVYhq5l?= =?us-ascii?Q?7+wVBHN6/HiNG5B24z4YsMj48xK5u+dIOmod3qodOOJ5W7j78hOoz7YHvzXJ?= =?us-ascii?Q?WY7AC8/Vuh+D84P23dVgm44px0Kmzqm5BYPW983zrZH8T3Jx5gkI0KRN1q02?= =?us-ascii?Q?6t4vCHyLDD/ugbqSH8d7/QLCeIAc7pxQ/TlSgs2X+jxnD52QYHkZYywYbqzk?= =?us-ascii?Q?LKSJqV8yoAwLb79k9svnycChCYks3KDcaol8vFccFh/1XpnOQZwY43OjMuiU?= =?us-ascii?Q?iO9C4imNripTu0RxxhCCkWDc2X/CWgwf6zgWoDp8YLIJwmPvj6/IpwfisTou?= =?us-ascii?Q?8MSGyBwm1L3kEdcMeAn6ShGoO3IwcfWBpCAqB8x49n4fBjA4J801XLjIQ8OM?= =?us-ascii?Q?Q3L2eS9vrmMy/3xD/sqzM3YITTV4vnJp5lLYwtQOGczelSNjZ/iBPneGqWuj?= =?us-ascii?Q?VgGNLfS2H3DLlOGv3bFcjZUWojWknV+mxZbYIlLAYZNq7K4ffcRwVnedEaFf?= =?us-ascii?Q?Bg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: mmFZCrtz2F2VbAlvXAjEHsareCMv0n2UA3l5P9EbO9p2Eec5udbOHxx16WGCInIO6oaGXRI8nsgouBbZj4NR1kP8HZ+X+F2BpMTezfcCUwvBOwrRRLJa+/Bo948cM2+Q7sjIrzRbFqlMYH1w2q1ceRcgcDASs8Nke7lVnI944nanLGgk8sLu/UgZdf+q5GrrGOE3ci7Y7lCkU1lm75yWFLU//cBLlDIrP37zT/mRHne1QhrJqEnEX5nFtGT5m8CG3X4Vp9eX63SUEneimy/6rhwtfajw+iJ3tPuqHugnhTqcMtwEJEIum36Sp79TLjwNUk5FDo1G52KN91qVAU8HRxNrTTi4SwIQpmdDWUj0SPpte0bUHoIXpZhiuFMvcSI5rVhrhGBLUzf7Er5BcQmQbQBf/vrjqvhNsS4hRlwf+knjU2AVjlPb8VoEkGZGETHRm99n2tmF/9mhtFBwtmcdGymX/zFDiHIgmzp2+EAEd6+8SLokLDBYvs4W0tXFrJ8SgzZ12TUVkfkaTXHvQGSXXR6fioIh1xTP8Cuu2Pluj7OxQaVQeBrhYanSVPA1pQyjJR3E+ETCVF7D0IV5hjNUMAPIZj8Ur3UV3WlEil6Rvkg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 25d3656c-eac8-4085-69d6-08dde9f7e156 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2025 08:08:20.6895 (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: gNpKotvmPS/EH95HrhcuiCSoDAtoydPqBeZckizbPix6EMCnxDY6ktWVhMKdOuXxP5e87Oj8zJoHD+iZh+KL9W6AfR8m0N2hvW1pmyxKOEc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5139 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_02,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509020081 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAzNCBTYWx0ZWRfX3mW5bZGhGghZ qpALeqcoEUrrqcfGuYHnkUv2hOqX3lV7Y8UKRqwgNQLidcKYDKkv1n1LGLwzti70wK+5SeM+3HP UZzS56zoTYwWTTJg7OC713QH9yD1wpn3UnRXHiAfOKZrvJRxbY+Vbktpry2Vlo/pKesTiuQzQbb G2qSGZfg4Kz4lBllLeEV0gL+rQmkef+sJpfBoASgYK0pXiFpZZpeCkSz8nfmP7AR5OmFarbMB1l X059+S5SDJSqmTC0bBubbG1RCp7DBC904+A9lLCrH8Dj/JsjZ7aCwGpSf4tAy4e2JCUTUwsGeQz TCCP9gU1CqruOY+LOO37L2YQjXVgpmh/aGFsu7GolzC/4hr7d4jVOoCjBzDenrhW/NTqFIJkcFK Fvv4+fSw X-Authority-Analysis: v=2.4 cv=X/9SKHTe c=1 sm=1 tr=0 ts=68b6a5f7 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==: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 X-Proofpoint-ORIG-GUID: SPiMARZnqndJPvPbrWvz6f6b_5gPCqL- X-Proofpoint-GUID: SPiMARZnqndJPvPbrWvz6f6b_5gPCqL- 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 --- 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.31.1 From nobody Fri Oct 3 11:15:10 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 DEA7E2E7BC3 for ; Tue, 2 Sep 2025 08:09:00 +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=1756800542; cv=fail; b=h6FgcadgeKNoTnAkz2QKNNnSO2AASMXf6d+9jIZc6C5sr+qH0zw8yi4+6kyLgCpPpzOazCFuAwvuQBHTaTjl0Dtc9pGvyW31usRfIb56QgX0oc1OVG3NIiqmCJPRL+rjdV4s5RzBpmfLR2yGfMj29kCB8NrFqyvSOJ0ctvOOjII= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800542; c=relaxed/simple; bh=SFW9KRREnvOw0ygT/0wQ7uMIVixqSkmRY6an8WVW4HE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=NbI9lDNbyhCwZSbrovxvXQu3lH5uZbKdrp8V6J6DfuC1dE/a8ftCrVPtUHAhRm41NF1w0s1/4TdcvNYcok8EoaP4+h7CSH5IaVM8YVaexIsiDmoz9ijn11ziQ4PxgWyi8hVhlgxT+VpvHUu8mKL+cNaaz9HhIu53GF4E6S2M7vM= 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=danEa9OY; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=SA7d2LUB; 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="danEa9OY"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="SA7d2LUB" 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 5826fvZx016337; Tue, 2 Sep 2025 08:08: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=6YVTGGq2FLvwinbOLSkkICDj89J8PJIp6LmT3fG0IUQ=; b= danEa9OYIwchwMSXwjn12Cp+RTnw2irdDKzk4YRvDGyOSXM0nHxUDPDL0jEJsZPP kVfu2PBmJ0nc3szQAWL2e0Wn+RT5KKBZzW8pOLXMHq2+X1rhgeFDwJI3IRZshFGM arSWEq/iSSdjfNnfWkhxcbb0uNFkxb+KcDHBLdhxhizBAZ2YeFrprbIMRayjdPHU Bpzp1BJRxrhzluqXBrZUCdQ2u7pzOHKeyy5LdMViDigBKzOyQF6rbqDoTMw6MmIh ukqu3EliWmCQbYlWl/+AtfS3zbbFkGxTbhp5xF48pDFHvfqSndnC3iXldShmtOY6 NXwSf1WibphS3FKz7MMPrg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48ushvufxs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:29 +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 582607kv011781; Tue, 2 Sep 2025 08:08:29 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10on2040.outbound.protection.outlook.com [40.107.94.40]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 48uqreukhn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RAtEndfSeVUw572tkn7NJVYveCcfS6aRNwhdgOr1CA5QSs6IUWAUMLG7AoQzWfhkfqLz4gDkw2NQ5pmbXKlSHjHg/Dlrks7+pR8Q3mvgRpht7oTddvj8nMPZwg6XKoIhhi97D1vjXEo4y23jqjhXMVDJu8/e/nLKODO4tJo2qcWXTynC981gJOG9dW/MJiSm0cjYKSRCoEtJRz/QWYhA3fAdYCPkzD3a+7R/74jyKxE24TqjvUHj1zt3xXFlEDkb6ZpyvyV2uo1jP4Kd1RPWI/d9EqpZsgAFAV0Y3eQ7E3HoI9OaB/EbpjizcGfTV9z1zbz8aUa98m+gqJDOoYEQ5Q== 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=6YVTGGq2FLvwinbOLSkkICDj89J8PJIp6LmT3fG0IUQ=; b=clX+UhBFT21Yj388j3Et82PA9UdYNZUV86+VaEZDhS9QTIQFX626Tu3GOlcp9dwO6M/wsR7m4mAufD30XRttu67KjwqT13VHtqE1RasHEU89uOk8m+yS4i50lBHaY7iW7af02CouKLkeRYFgFSunGty8vmnHly2dGL30bSJ9Pi0fXFfMSvYZ4ptCpQ+9GgIaN2Lf416jf2xZImmb+OcxiblLlbXL5D3CZ3O/9Xz9hZffd77hh1EnRo/S/xFUfo754FNkSruV5THx2JC5zRXlk9rY2gxXzVW8TMvQBh3cmMQ3QWCU5xQ9S4XKOMpU4+KfuyoiwxFXpS77l3FX+1J+Xw== 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=6YVTGGq2FLvwinbOLSkkICDj89J8PJIp6LmT3fG0IUQ=; b=SA7d2LUBtSp0xjd2ZBjHVPUhe1+1WzjdDCylhI/NylmSFgDJ/0J1hqFe4cgJZeJBMh+vNPfuqNhR4Ue3XFyA5G2yD/V2m12O0VPsJQIZaZ8ouq6EMcMxkSS3pNIZX6yFbbVzrcGPrK/GH4Jx3Q9k/9w30Lx4cQE2r2k5xqR6K+Y= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by BLAPR10MB5139.namprd10.prod.outlook.com (2603:10b6:208:307::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.16; Tue, 2 Sep 2025 08:08:25 +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.9052.013; Tue, 2 Sep 2025 08:08:25 +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 v6 03/15] perf bench mem: Move mem op parameters into a structure Date: Tue, 2 Sep 2025 01:08:04 -0700 Message-Id: <20250902080816.3715913-4-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250902080816.3715913-1-ankur.a.arora@oracle.com> References: <20250902080816.3715913-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0370.namprd04.prod.outlook.com (2603:10b6:303:81::15) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|BLAPR10MB5139:EE_ X-MS-Office365-Filtering-Correlation-Id: c0bf2c72-162d-43a9-1779-08dde9f7e44a 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?DsOLyuaCBJiwj1aPZVLLFbDjO5yKeTeO+YRcVK5bxPHH3fusWm5Op2IBHhDp?= =?us-ascii?Q?EOaBTaGQaMRdW/zaZ51+vBo1CoL+X7LTYYbYVUcm1dY/t5WYSWEz9Aqcjj+f?= =?us-ascii?Q?IniHy5Mo7LTt/ZgvY7wMUMoERoDS+2Kzt1buIM7TKeJwN0uoDk6MqAGRbIzl?= =?us-ascii?Q?TUkXfDzUxHt+mp0/rkjxy3bBb2f0c5Od6oT2c/KRQVIyWKaCuC4cq7YLcnZM?= =?us-ascii?Q?Y9ndd8dHhDgy7no0ftmj8LWEMh5peCedk/twVvEYrReF/QPpi+24aqXEpw1U?= =?us-ascii?Q?hItsQRSbddecnEEE0pwAZqjxaORg6m+e3TM9gct5BmPr3++YsUpuznV6aMrw?= =?us-ascii?Q?1RgCTgm2dX39ZoyIxKIN8QZKWliisPZ/yJWxTkQ1qjY3vsc2iZkDL++JzkwE?= =?us-ascii?Q?RRYyklyYgvab7Vp5LCbSQllUUGGov+LJnc0gQ2uw+MaNXLTjvvMJGpF1jRuj?= =?us-ascii?Q?fUtwA9V6L2Qbq8zzZnZeL/fCCbKeVqDNdghJaueQu1fIx3hK8t9ViPxseghX?= =?us-ascii?Q?q06y6GMOIkPc99B8N9nNQNNa1KNrbv53K6nhuUmCdFN6nRKJN8PUxhwojumm?= =?us-ascii?Q?ufur7259fYeJSgmLLrYa/BhbpknlX+r5Qtmybkw+5Nf6Ji5cUQKCrOqyxH2x?= =?us-ascii?Q?kcY52K3CF8K37hhO4zrbeKzQ6ApVffAB1rv2ziL1+m+c7QYEkR3fIOwKkKGf?= =?us-ascii?Q?U/RpHYp0+cNyo8Rk55Y7lbD72rQ41NwEszKNZADNbUlhppa0cnAJIArPhxl/?= =?us-ascii?Q?kp0YUGIpOT0dV5KDo+cMuDrya6TtUOa2vwpZbzpY7cDv6JT8cenTGHsfPdS9?= =?us-ascii?Q?eQVxvU2wfnWmhLsoNVyIvE8HtnYCEUlKzOGcmq4nDGr8xwlYS3AfrNN31IqC?= =?us-ascii?Q?B9cKJef7kHUX5O4OCL7T4EwNToZWdiwJJKQrVsPikn11zkzR7omPd/UwFr/D?= =?us-ascii?Q?CN/iYxG+Me5SG6IOYBIDhhRgKlVwBLEpR87/FjXUV4tzhbcAS6KkU2YU9eq9?= =?us-ascii?Q?2apj2qbzQ4MKe24NSxNvoHlAe+XYKWD/mkGLkORUjW4WR3ytDauS5iN41U19?= =?us-ascii?Q?SMDnQKBwYDNNkExtXW9Tw7v/g7uBKAGMqp7n67e+GJMRIkbmcRx06fLD98bS?= =?us-ascii?Q?OACaZK93eK21JM8I/XfOb8Nr9iXz7YDjCP4q4srvY/jG7fP50S64RnjZgOBa?= =?us-ascii?Q?pLpL1dSbmPsnY2/ZxR3PfTXI3Y3EzVooFQm4B2hlxewSEZvEc3GtJBTMRHW3?= =?us-ascii?Q?7X9da/cU39NVK9pBff5P5AS/H6J8BJMaIFCsi6EO1cxxNWELeO3LezjqjHXO?= =?us-ascii?Q?7ZGFab1lQilTE44n4A/N7uwWGv0xY0UtQj3hWluK+YP1BWvej2s8CvvS2EgT?= =?us-ascii?Q?uq2IzVgGxCV+i5ATwBBn86ULxs2TTyybDVbACLulatnTYlsIoQ=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?bgW3Y4HkIPhAkiVXh1CZf2scEEoZCeH8kit6DXvokxbjvDQrDlHxk0x4jHA/?= =?us-ascii?Q?PY3msRcbUUjTkikgMDRZU42gVYbPTEPSCxAue3q5e7CgvxFjXL7AhPigec3r?= =?us-ascii?Q?ksTAORP5IWA5xBd93qqL22HwBXHdjm5mK1RDAyJr4wREePkPGGm8eDXyXg5V?= =?us-ascii?Q?sUOCEg82B9/xEANcy7TYaQxls9MV1Mp8R7tXQRkgHZJ+AHY4r9xjce4Jn8Nm?= =?us-ascii?Q?2AV+5QX5noeA+KfsE5g/dyPRsqPwwxkoT7wC1eo2pavQSRFFz/MHa8KRE569?= =?us-ascii?Q?IIQ3ZS0qzU/ybZd/qnO4znmQNx98f4lKoGe1waKR7uvbCSW+nkk4TzmtaPP3?= =?us-ascii?Q?2O/CRZ7l3HnW11ZZzFbkn3S4wVOh+T8Neef951OvMpTER7NxQHQo5YrRRaQF?= =?us-ascii?Q?VE/e0q4hJuX/QxraBSKDXUvLZsT4krJdVPg+U6QpKqT5gOuFYgC06KgPBJRw?= =?us-ascii?Q?Mp/U85mpRWIBADzzLq+P0kzfqnl2mKFtd0PJOHpdMAYH3XbTlfX8crSwdZH5?= =?us-ascii?Q?AexAlh12Fd9fAXG31Ovsq4xiYyW+vy/PYBAgcucNZFDsDvUPxoZihXwi5Zjt?= =?us-ascii?Q?qWmaVZ9Q43OMyQoMiC0mVpO+mMAqMXcv6Cwb+v6K8ijRoZjuhFmS1yRaj9Oz?= =?us-ascii?Q?9VwJpsyhVfV76vkU3tI/DB2DeYXRJD06+RUnJm5uMIxpT7GFh/RKXUhb+el0?= =?us-ascii?Q?1VbhKvZ/QYAzsoSKvpmfIlI+PWz7bGwpZshr91KoDJDoH67YGiVFpHp0R/ye?= =?us-ascii?Q?3xi01dlmOl9bpAG8nRXuUhSTDbKLG3OKO4gWPVIJiKyfvrR4OaoWOy6BISoa?= =?us-ascii?Q?KbPXAXPfvGWFb6JVwGwIhktJLbdMA2TjshpIm7HfDtyTRqCmNhTIyTkHfSHG?= =?us-ascii?Q?mfluQ4t5P/DcjvpboQgaelj7FxZiZMD5ZhLekShB9qxaUoz5pInrVrgIU8Ph?= =?us-ascii?Q?dctI3zjuJ2x83/KEmSVFPbzcoYCvXaXZooXfmKYagK62aDyOBvBjMXKzHiMP?= =?us-ascii?Q?2RkVmxM/fUa9bLYfExm7TRnwoxt8XSQfoDw34Bt246rjSr/wZ6V9ZfPBOrWU?= =?us-ascii?Q?DLSydlKTP8MOWu8nWFNRWLwlrr847fFn/ewWM+9OhYP1Fn+O20I+4SGES7pE?= =?us-ascii?Q?D9ROSLkDWZItjkqKitZMnUEe8nAurb8Xcz4IT/7xuVuqS27TY7EVSsQp0FKX?= =?us-ascii?Q?f5fmjy/HdZcghTnI3K9TA6gKbEnXx+Yvv/jw4XSXlKU2sTVVTYkskFXsxPES?= =?us-ascii?Q?ks2Ui9vWkSPjSshYcRDXHru5NH2urs+bfENMgztBd8VO1alakwjz2OVtpXVe?= =?us-ascii?Q?+Wp+8TTFEsLbSxXucsP44BV1/HQsNAA4X7SU2oe6Ryx8y8oeRV+u7jJHw3nk?= =?us-ascii?Q?N8NYNKxTGY5NwnlYqTLVc+bP9YGf7jkuwaq2+N/803KvMAkO8/Azsb79tT7n?= =?us-ascii?Q?I7McGpyW9RxTW5+sypLs8LE6Fii7q0eO16u6Mm8EZTzrMPIsNtr1YrI1au9z?= =?us-ascii?Q?Uu88TdVHJ1zDj86YBn+EaNBPd60a9QjP1fTPWtcjMXzjXp1d0bQvxb5XI3iL?= =?us-ascii?Q?yb0o5s7NY/kKNx4vvWUOQNjNkDJtTfF+6EX+qZJUhJ46s0iprjsDF1LtAd0Y?= =?us-ascii?Q?Ig=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 6BhtKoM3r9mjmncjXi+fePWGFD/pgYdkDTDbUG1X9MAhA3GIPe5CHzOtwTb2jwyYfs1qj4EOzb76OeN/7/M9Fu3J65OTar9NFmOZqbAc/ZpWoZcvGCjl1LB82L6Y0d9Q0/YtlkfP4V+qh2Aq8AQ68pLMh2ANNEwNUGEXdMpub546ynq+PmJEt3pZSVXQAdOKAChW8fwRz3kw/+8I3QPM46MSdkAwB65Qr7JYWxyjPYAa8M1gP/wmTnfjGKKYU1pU2kH7G+vv1X4Z3iHRS1e7fCkRbTRm43axbP97LacM9JqKXIpsBbrVysw4qWKDsEgFNii78GM6ovkdw8ldwGJajDqhgqpSVw/QHAziR5NaY7QE+vP/pJMFsRj3br0aVrqJSaS/AMDb+t5b1bGhGSVKlruFUna7KeiZd6NUsWIsqSSryRUkC3kessVA+mvj3MPe/vr3IFCfcdUWH2H35rY0acklfGAy1FkN3PP4kUS6nIsOJs/nHuNcnk9C+++Y3cLk3nLraCUktTJ2xHlswBDWrMIi3dK27H9kAS06uNWqt6vNKeFIGPmFLRny/IQ4ScxeX8VwUkB2BUShd0GNyZkQudVKjFKVmcb7gtA0o3KDJzo= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c0bf2c72-162d-43a9-1779-08dde9f7e44a X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2025 08:08:25.4155 (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: DYe+Ynm3pwCz0Nst6OTcH+TOdqjZ/Z+JmoLFT2TDxpJaItaiRi0wI3Q29C9g9kC3I1hohqzd2d4kz5KF26b3XdYw6H4QZ5VZY+ZjmqUuwYI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5139 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_02,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509020081 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfX/knzNynWWCmT BXAhZ87g1XjFCdpA9jUdyRSkzlaZwiphhddXh6W8lkyl4zfQipUI8rHPQQW/44c/pFvejOjCMRS d5t5td+kH/nNUUudKTKKhhWKLEOWY04sMWPYF3IyrqWpiBrRh1AV2Q00Jk2R41zzXUcoigolJWb +d9DUyGmus8j8ekXA5l7Fv/UOmlibwMfWr/QDxQIy5ipOCTBLf49d02HoUJaDL2tPztyFLmudQL lXLBgpz+txTRZmNMDoze4lJf1tCG5JtCchyU/V0cUPqgA+nVb7YWt96bVUj2B7zs1HL4c+uLEWT 77GkHDi75RCsZMpfPItY2Bezp8GrgotbFhi09S9p92rPpTqalnXOAKao2EbARcgzOfMoNK4K7NU cBiUJXbzTCloFTsfn1+az3Ma+QnMxw== X-Authority-Analysis: v=2.4 cv=fZaty1QF c=1 sm=1 tr=0 ts=68b6a5fd 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=_WLpKjk4XQ775Vi3V00A:9 cc=ntf awl=host:12068 X-Proofpoint-ORIG-GUID: zP2mjS-mYqYoDk969m5HhSCNjzfPQvRM X-Proofpoint-GUID: zP2mjS-mYqYoDk969m5HhSCNjzfPQvRM Content-Type: text/plain; charset="utf-8" Move benchmark function parameters in struct bench_params. Reviewed-by: Namhyung Kim Signed-off-by: Ankur Arora --- 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.31.1 From nobody Fri Oct 3 11:15:10 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 D794B2E7F20 for ; Tue, 2 Sep 2025 08:09:01 +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=1756800544; cv=fail; b=vE6M3LO8+KoByaPWqEim8formnR8ie5RDtFRZJ+q6fyDOzbRgZ01pE7T/XaaGZ6cuKmJ9GWVwjX0WTlc0Gt/xrcRQNfkaCqoSCmC+6YWS02DI0m6KsXZrZIa3N4nbXLblLFipnJfjO1n+eo+FgZg3Qo8h+eXiEc5gH7cW4W1Q8s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800544; c=relaxed/simple; bh=f6q6CO8EKuAE8X0QqDLULmqOYcis8u0kXQumefuQ6Xs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=lG3u+f/B3ASxOcm4qJ4pmB7rUWwT0IHC6h1ZSfYhTEub81dNuowqSAolzr1wuWBslXJ2hDEYQA74cm0rNOpqB0BVZ0sfKxnjstT0M3CX3sETnqPMUCkoBNr18OCF4Sg0hOfFZKInB66qjZKGqez6TqDMy+8kLb+DmZrPRNOpOtI= 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=FWqNseY7; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=bZuHarJX; 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="FWqNseY7"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="bZuHarJX" 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 5826ftLv026897; Tue, 2 Sep 2025 08:08: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=azTceIqgjwj4ZcKUMaKoPrBAjhuvh7GE5bYwg0XiO/Q=; b= FWqNseY7y6+n7NszmSQCMQEGoEHlh+eiryg8MbZlOpSa/NTzuFskU73+UTrFMV4F nrW1AXGNCkp+A06aUzr6PWN/54zcpb3vFIFSQbxSklhbhkiVBdNxBrIvF26Qdv3W t1zm2uU23NayyRVgAgHInC/kHasXqzg1QQWsarr9g83Q/ooWLkJErwJMGAqnHGDG Jc1tlv7Tqdo32NzDU6TMArycljzMtTHRtb3t86oSqmn77v6WCejpypZypQ0VwcZ0 CTJwqmC79SL2dNZi8z5+hObRQdIj347YaGBbXbx66SpmMPaGHP5eVUCvBWxr1znI jIET85ZUcqPtMDfhmZJAbg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48ushguf8c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:30 +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 582607kw011781; Tue, 2 Sep 2025 08:08:29 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10on2040.outbound.protection.outlook.com [40.107.94.40]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 48uqreukhn-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MVWPLt7a3tajMHRexfLl2mqDcw8dtybxe1sUtnSdOcmzoYcnzpMfHVil1Coj/b5xYAcLm/tXJ/Gzs5JmidPIC7wec4tBsdranILxbuTjQqXkaWghshGM+H0fFJ9LtBxQDXSl6O+jiXAGpLPjIOP24OIwLd3AruRNKH8wVDvx10xv8kAQRGcqufusTYAWgHJ7caP/fZTaw4oZC+o02EbNmCEF8J8BTwTSdnK+iEZMGN3+4mSnHUEtn28PEhaSoqwcJ/bTI9JVU2Cp6173pkwKos0kxsKahsZccDSrb2lnzc2wOYvLIdktr9CN3GRBYeIGGxJCrdT7PqwdeUmbYlw6sw== 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=azTceIqgjwj4ZcKUMaKoPrBAjhuvh7GE5bYwg0XiO/Q=; b=VZHGdNw79cFpW9FGwIYvPves2rFUlhTnoUGd+Aq1QgvhXXKIg18Se4vrixxQYgV08YraYpA/aqr56Bzex8UaBRXgoOuDAoTusU0uZgoxCcudcPG+TCnjl+IkmzEjPq47kY6QqIreB0LgX7KkVmH/wdXF0nMm7JYkO4oRfGLxxik9GYBaPGuudRVHM29J98Y5ZQNOL65EihthrB3/mhCiSIwNsCjVZUQ+UYu4weeFExPB7NIlFwG8c6vZoHEDHUPDR1e1Y3FM/iqzglbf2GAqmjRlvn3Y0HY1b6lkDCFJB6W4kRrkeJLEcbt6h5YlvfV3Z3rinA7hNcLc/3kpxG6hrQ== 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=azTceIqgjwj4ZcKUMaKoPrBAjhuvh7GE5bYwg0XiO/Q=; b=bZuHarJXH2bw4M0VOtEpPt4MmiC5otY9nvEymiCj6f7RAOUt/9mZ6UsS6S3TMIcs3MHeIrVgcGihVpuOxpXGNK3cFiLXES6WUrL+X1jJYx1mWNOox6EfMIfmg84mihHzn563EwDCJmGwGAR+tIDSDsBHXbLKUd/a9wSo7junaS8= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by BLAPR10MB5139.namprd10.prod.outlook.com (2603:10b6:208:307::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.16; Tue, 2 Sep 2025 08:08: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.9052.013; Tue, 2 Sep 2025 08:08: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 v6 04/15] perf bench mem: Pull out init/fini logic Date: Tue, 2 Sep 2025 01:08:05 -0700 Message-Id: <20250902080816.3715913-5-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250902080816.3715913-1-ankur.a.arora@oracle.com> References: <20250902080816.3715913-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0203.namprd04.prod.outlook.com (2603:10b6:303:86::28) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|BLAPR10MB5139:EE_ X-MS-Office365-Filtering-Correlation-Id: fa6c2bb3-01f2-44a7-e001-08dde9f7e54e 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?cfCT1vY5msMkUTTqJ/IEroqJ5ykfT8Kh1o2XOK5YPT2nqxQp9SfrstYWL+QL?= =?us-ascii?Q?tBT1nfpNoKw6WqrtSuK9swWjUd706rA0+go1yJaQVCIBH5p4CMsUJK4Yqynq?= =?us-ascii?Q?fiPsgHgvl/oJOz4gd6NC0o9Xsimsj3HxOr9ll9Kb09yaPAFCC0lxX0mzL8QU?= =?us-ascii?Q?wuqQwQUZj2AhYpH80VPqwB2bKOdKEXiUhPmccgW5JuVIvwiZCMUOihNxh/C3?= =?us-ascii?Q?aQv1v82G3mtkn262OEp7vPo/0Dg00MFr0fln/yfTp96zMhhzc7WA/WfqafRv?= =?us-ascii?Q?rA9kKlK1YlZutKlfyGOvMozn4vEpAOJo5x5anoL//SC07/kjIBaDaY76eYO1?= =?us-ascii?Q?BJTGnit4Vly/EImN6cRkNFeRnYbKNDjqYrLdfCptY9rbbX3/BzrewIfKYJ1S?= =?us-ascii?Q?wlfqnLolRjeAJeXKo9CsULxn7zMw2LaZtlCOoFEAfnht65+bo10/Zqpqom4i?= =?us-ascii?Q?n39YaA81XPVg5HGd4rb29BX12DdsCqdqtQGo6xsGuMTSdcXDLkApBCspGWVS?= =?us-ascii?Q?wQRF4GeHVbrqdB4SLVZNLz6eUtpOrt1FltmiafnsTbzvVOcs7vdQVEkVJYFv?= =?us-ascii?Q?T2k5rgTj501FUBHe4VGseRhEgLh+17Dz+nRAFLiLIuQTOdAnaJbgFqMWGc5x?= =?us-ascii?Q?43DklKPsJu9rMIr1teA2uJ8GoLjK0trsTnOpOwwFrHWN0G1+ANmjP6Rf3xCc?= =?us-ascii?Q?JmhyFGq2Y/j1iEz9B1S57wB0YexZOSWGfaOq/85GtTgTkjJ+Ss76rPPDRDMj?= =?us-ascii?Q?1uK7O6srF6Y6CNoZxW1Rd/qTKlhuBua+ySECjM7i43gDMgEGmOXw17zu6ErV?= =?us-ascii?Q?I1P0cDfnCpdAIQx+8iUq3PUX2AGQmjWvw2Bi0qnu4AS2nkh2T/iThUr6ZaQM?= =?us-ascii?Q?PJwPhKIS9sMcT0s4vHvJsUtW4gojBHNf3EbhYdgN3qItzViU7XKp0q7toOhD?= =?us-ascii?Q?NJ4vGEmifUBrs0anpaK1CUcJl0tfpqz1KQt4B0mwKVaQqNyirkIEdZfNV8CG?= =?us-ascii?Q?pV41J3ZAfxFgFpC2lI0NG7jgyV14Y/NZ2Z1zI5cLvORa4gZb9wbrKbr0wckC?= =?us-ascii?Q?3Z3+olgHGeB7JE92pB45zzd0JlF8Ywxlm0F0ekakux7cG2LFA35TkcvoMTID?= =?us-ascii?Q?Tqc8mY1EIytewAxHkjxK+DjSg3JorGuEUq8Uz6YC+baGJIYiwVHEevCXBP06?= =?us-ascii?Q?N0Yt/1SI1juwpuFrs14G0qEm/QiOgNPs+kebv+2lUI7n/UBDOD2O61RikpGD?= =?us-ascii?Q?jK1m0YMgapFKPjezYSuEet0zikNaGQUKCfGBPuJrC5YS59KpsWqSdt8nOOuT?= =?us-ascii?Q?4ZKlEkONl1NAVL//VnYUyD1agRqUEVB08uT6UhAWrETd70QXSd5Ro2QwiN+0?= =?us-ascii?Q?txJiD4gUxkqQWq2WDJBqK0DOsrkkdrnBNvAjBQCIg57iY444j/veXRHM2N0k?= =?us-ascii?Q?BhrqnhjNtxo=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?aU3F5BU8+92VDGRRw+rb57EbUQqW+KEtGlBWAmCBb2QDa6Yj+FbuB+FPbwlf?= =?us-ascii?Q?m92ZqayuriixpRz9RRh7ehrUkTgkyGewP7FZ9m796B71ZMSkXG0Sc/43IFFV?= =?us-ascii?Q?Kc5KL46+O8br/ZvaxFMzlywRh6sMFFIosDiWUpsNQk1On0nRb/H7pO5+HRrz?= =?us-ascii?Q?71v8Jpj5fj9hLNrAIE0cWr4reAhKKGQA0hRNu/o5qDntOaptHmMt310+EGMw?= =?us-ascii?Q?8TKACAivbmoeJyFf+CKJ8Da1/gLhjMjpE/tC+iH9zEyiAgSPx85rTWTbtASH?= =?us-ascii?Q?h38zn7PqP1USfSMXleH/lUboxQ1lUOMX9kgtookNiPStkWECkXtXrWdGCzoN?= =?us-ascii?Q?BKenRKj2OZ3C3Ns4whva1RGhNjyIVaRyj+DIc5CTUZFFZlzj0YBWFC9bCv+R?= =?us-ascii?Q?p41bZ9z7RRo5+0fZEkv70RqOjQ4+Z2iHNDkFQAaSD3OWHQPP1Vcgh1ypFjDV?= =?us-ascii?Q?qgC29IKlApmfbFotlPz9e0JPVZ4wrTLplVup4eCPpi7RKJOuVpq1N0prFSuz?= =?us-ascii?Q?P2c92WjPvZMBaZg0fOCkCaNJFp9sdYYgcMO0crXlgh2fJk69bWcYzeSsMhQO?= =?us-ascii?Q?NDsAZV5ozhPvj0dkFwHhAxg/LXIHarPj8Vd3Lc418rLeHHgml2SP7lHrkUIc?= =?us-ascii?Q?PjOMLEoOr4MdlGFNvTYrGfFfahh8y5LtTHOjxKJSoiKw0pFrIa5uJf8A3p6l?= =?us-ascii?Q?1RVC9adbWlcBfh169I2BqKDSM+/AtwFRewo9q7PZECQN5z6VU+1EPOfD4+WM?= =?us-ascii?Q?pkmoD8LM7r0h2Y+W5+HHuiQQTWl+9k3yN+waRzV1vgiACoK8Pul6VRrnrh/m?= =?us-ascii?Q?owZZ/1Jd7eUGGXMUURGj+6TmPSzfZzqOjqvtXrnXVZ+ASl3UU30ZT+PHRA1l?= =?us-ascii?Q?8PPXMR6WdG33a+66rN0yvfNF3/sDLAMNA5dpjEfvWETRGdLOnhNsjbI/tiHu?= =?us-ascii?Q?DXJ2xmnT+Agx4FdOx1Rq4slxecw869BfI9CxFKKwte5ep3lUjWVpq4N2Jh2x?= =?us-ascii?Q?kqaSDl6+PfdkHm9rWFR78xuI1LcunpmK4hyBCxTVx4uFElCw6XhnbEIibhvJ?= =?us-ascii?Q?Ecv0QAQLI5O7QSw/QJpalIKzuBobbrktRKqRz/UU/rhUbXJp8kRLTi3JDDYQ?= =?us-ascii?Q?JC1BcX+3Si5WDjl+xsu3KOkcNJYGg0rqdhKKPfIXOgL47yDK1C3RvLC7jzZJ?= =?us-ascii?Q?tsJRxVkAWW3JTS+BlNlCZ8boLiOaP0En7ybKOxZeiQhlWgcto091rKO8/kCY?= =?us-ascii?Q?Le3DUIkzErjPUobbOqMzvIA0wVtEtEDXYL6nAtgFCupMw16PpT2ySQataAaz?= =?us-ascii?Q?x75r1fsGiLyyaAPbOOuFECQa4oiUF6FRVLHwvK4jl2dGjYKMWZ9iDVeMDUNc?= =?us-ascii?Q?YXaxSkgv5bMaNshiUvtj9tbO2w4TVOXLI8azUCSXhyGRfh3FmhOcoLDNn4RW?= =?us-ascii?Q?btnApJJi0rf6nDI2X5VqzhFDLwaw0UyJ0iGH2HyhPUHtRo8muf6C8NN/7acF?= =?us-ascii?Q?TjA4tnGgG/nBFdbghb+VkgD3a+mLMAiJR6Djz7VymvqYyRg36xsVJD8NN7Ds?= =?us-ascii?Q?HlNdi07gj9uhFjxEvGyufmxnhrZadKdg6pt1PFBCImUG2WoKBtMjq0glTFhc?= =?us-ascii?Q?gA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: hcDtfrry3GfRdMgHPA0FaTGajkhlLuiVszpK1HTStrgFG3oMAUHWxYFZIhaL9MWdXOE1nOX2ym44GfeNez8MavpWtEml1yLP2ejYGQa0XGL/tRU9aXfvu1sI1Tmsz7fv95CN+YhAWgltQKvwe3OJCu17gSTXfPko5FcoeAuLIZV9LIRhH90yjg3zjy2QoOKISQztDcqvdxaVvlK9rbdym7a7oos2L7hcU6LNj8zspJWf3o8TvR7BUDsByDRVtpQ9r2vtCerZeNeSdTeE+Bldqzw8w6OM0FyGDD/Xcc/yJsSNC7/wlCcyQf7y5ZIQFxNoIjFMzdlKtab+LfBl9YwaEA4e6Sn1mWMY6ky7gzuGf1ym9Hjl3/6crSMwNYh/+dkU2+xOka78x4WiZjCrDCXROOEIZkoz9h1MTd0t7oSzrWIsJZkZ9FUI2HEg2+FM/0OVYV4Xk5myk1yAw/Bm7w395oh/zfq5L55hKySwlG4vjfaPXgHrzQt/R9R1V50mkdPq0b35AIJ4seiUnXyz0vcAyECImZCzPI68lfwv+Xf/2/BzUuXXP8vRib0iw4gR9HGdQkLgon2cgiCeUIt5qQEj8bWWOl7CVCIyihbSn3wIlOg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: fa6c2bb3-01f2-44a7-e001-08dde9f7e54e X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2025 08:08:27.1452 (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: /Nu2zHtHkG8qqQxccAUm9W8F/q/T+OxwOPnJgsxlLfHKEFDUHokCraeeNEQh6dOoG2qcri2ZG9+njyxnTZwAz+RxdlRTCs9UriGHcUh5+rQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5139 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_02,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509020081 X-Proofpoint-ORIG-GUID: al_V84N1RspK5BuaIzOzWELa5ZcpZtTu X-Authority-Analysis: v=2.4 cv=YKifyQGx c=1 sm=1 tr=0 ts=68b6a5fe 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=TbKJQeBsitzCtKh9844A:9 cc=ntf awl=host:12068 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfX9NjrZObz1sxh sqpOjpUutnvokgSZ9NHSPz+mWRPGU9JRTJYV6nZdKz5BbNbhzAf5Ok64QOSkS5X/iZrWb5TKfjk w4RaqEZ4Byjs/+i+rHeShy60XmXy50XoTDNJ/RLq6WXHLYX3iOaMx0HegEAEqEXspcag2Gvr6hb tFAFSZnlsx3Rq+yYeWR7vDeVEsVyAbqpEVqJeEd0C1ri95MAWzaQnBrDuuN3Bn6VAd5AOo4mkad Fg/6XAHANUbmO4zIL4CtjoPVdx69jty8OkOd8Zzg7/xW+ZtfYf8dxo3U+FRjCAxzSUae4GEIAm6 JtpKszuedY8XRF4smiMMK43cbSAyJSeawerDIRav/zXteHE47HbAj+0zsgEymq311iGxENXC3G1 lorkqvsXGAtFq2orAbFuZKPdI5xuoA== X-Proofpoint-GUID: al_V84N1RspK5BuaIzOzWELa5ZcpZtTu Content-Type: text/plain; charset="utf-8" No functional change. Signed-off-by: Ankur Arora --- tools/perf/bench/mem-functions.c | 103 +++++++++++++------ tools/perf/bench/mem-memcpy-arch.h | 2 +- tools/perf/bench/mem-memcpy-x86-64-asm-def.h | 4 + tools/perf/bench/mem-memset-arch.h | 2 +- tools/perf/bench/mem-memset-x86-64-asm-def.h | 4 + 5 files changed, 81 insertions(+), 34 deletions(-) diff --git a/tools/perf/bench/mem-functions.c b/tools/perf/bench/mem-functi= ons.c index 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.31.1 From nobody Fri Oct 3 11:15:10 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 D78D72E7F1D for ; Tue, 2 Sep 2025 08:09:01 +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=1756800543; cv=fail; b=YsG/EnOtYNHW3epE052zNkHz3bSafpP5puTPYbasi+i5D8unpQ0IyWYjxyBGirVJFyoRlXMC6sGc6wXJN+N63dqy5L32cMeEP3PcqAxwMmTh0GhVhkL+ZHT7egqgE1Bz7GO7TDDr2UZIatN2JKx610meQLFdyNg8+iruZ+FDkLI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800543; c=relaxed/simple; bh=43Be+Yos2atWydZ2Oe2M1q278rn7X9tsEfHBirCJ2q8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=OEOTJfGt6f9l09piwaFDj4P/z2Pb2HGcot7YN9XE/gjBSsB2IWxvLCXKuRJsg7tjGDv7VjP7urlfQ3z6FEUst7wzO7fzIDsyQ/zIxx3H58cdMBjhN3YiU2RZFVzh6D55tXVuqOTQ9I4enXdK7n5hKYvNOvmU6Ur9YKqCJ9A8okY= 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=jKYxvU0m; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Y8iD+LBg; 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="jKYxvU0m"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Y8iD+LBg" 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 5826ffjY016190; Tue, 2 Sep 2025 08:08:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=FhBiCJakGhwo1RnNxths/dC+QGi3BIEpQtfuaUz4igs=; b= jKYxvU0mXbiyjfeLxlAKghykDu15YNqPUoLAopvWn3kmiIeRVob7pz7GN9W6kRFc 72DaCGgV25wErJKShTQFhSAqhe8g7JUxDbcW4QZhZWwA7w35/crWjrOtbRAUxpqR aJDYFGQwXl+PMQllJcWbeKhig4n6GFPzJIOlmt6kU3seVMxAHqjGzShfJd2fKYjg sVZyzbFfEf5l3ZcBAnSVeOPG6eQUfXI0Brfjx0Qb6B8o0DBU7qctnO54Vd7FyEO/ 8FYsqIL/KdwsR8FFvQV0K2vJMrAGQ9EjHlUxKIiXC04Eq8yTBWWwcP3Q99dRuS85 S29nLghgfkQzeqBVZTGI6Q== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48ushvufxv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:32 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5827pDKC028734; Tue, 2 Sep 2025 08:08:31 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10on2049.outbound.protection.outlook.com [40.107.94.49]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 48uqr8uvv1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:31 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=K2r+hR4K+TdA2YeMHkDi5r6IA+fpUaPPzCVd1ZMD8lmQyQID0XgmXB5S1TjkJaFJsEae34L2/XucNY3n3gz8Phm4gSUmPg5tOTxnVJOlwlMOBD0W45ojAgcp2pxMec+Cmywav24xGyJceD83ZZcf/aOIsptH6ZWUrrzH7oILyg7Uj/gBzDRgJad5TA78SnH+h6ZZzZGKbfifNHFmWRD1fOeTCUpkVI3Ki7Y7Sq58t411YHzJ16roahawenBMN+XR278PV0WGhtt/Ht+ScDDX47zmg4Z1MD0IBhzCJ0YhIfbkA7FqJDAzL8z/W9GfSexW/Eit90BDcQJeG86yrbFsmA== 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=FhBiCJakGhwo1RnNxths/dC+QGi3BIEpQtfuaUz4igs=; b=GSWKkK7kov5VfnHQiABm71xR4Uu0RNSNwPBpzK5cDsgtProwSd2hEa6d7OzOClw6GiviwQDf8IbIHenYAtRXZlYYM5v/tF5M8rZQsdKnTIdAjPT2gZirDFQKf4LdqD/l48sRYhg7cieayZ91XzmbNgDbjhXo5VX8cefG9dsKWZqdPWvXhZiKNybQ9Uqq1bS9q+YPBzYw0X8oY0nzdeQ5T3DSYk6y6hAb8hc8oE44POqKhRnJbehRwlG4Zw/4XqfsECnsOFQrB23FfgW6cEIA2Rvjk6Dm9OQ1sBy/1GjGWjYXo4CSITRS6OeZpvi0l7CpcefqaBYMXc5cRAalU7PoXQ== 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=FhBiCJakGhwo1RnNxths/dC+QGi3BIEpQtfuaUz4igs=; b=Y8iD+LBgivBaSVU6Xg/8RRINZWRHUWketrsM/2fXIem5Da9vnnx3BxUF7+ncHtNPbD47lGWqK8+qmZWMj0w6iRJ90274aA6hWuErgNJ1pBJYRAzj/GW78SWLZdjxVmxToZSHgC22nqrBRzoNmbDkB+H0tVdgjoyUCuaZN0ygJxw= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by BLAPR10MB5139.namprd10.prod.outlook.com (2603:10b6:208:307::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.16; Tue, 2 Sep 2025 08:08:28 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9052.013; Tue, 2 Sep 2025 08:08: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 v6 05/15] perf bench mem: Switch from zalloc() to mmap() Date: Tue, 2 Sep 2025 01:08:06 -0700 Message-Id: <20250902080816.3715913-6-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250902080816.3715913-1-ankur.a.arora@oracle.com> References: <20250902080816.3715913-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0208.namprd04.prod.outlook.com (2603:10b6:303:86::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_|BLAPR10MB5139:EE_ X-MS-Office365-Filtering-Correlation-Id: 5b4d3ad6-3367-4ba5-6d00-08dde9f7e60a 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?ZJxUEEaHDucNpnN3ZYTWi3/v7EntlT4FhlnijfIPQRP2uB0bdEJmHvuzvrIr?= =?us-ascii?Q?RXqPAmJuA1fo31TxC2akPe3nHnTRDjwiCzKymy7UcPyJmExXbrre0XrNopP1?= =?us-ascii?Q?WgD77gV9pXzbXHK7spHk+ijc6gM+Fly3+j1atlzJAJ7MYCUzbUWndSJLQrUS?= =?us-ascii?Q?VMENJ058GdhJvcGP9SB7tUdsqvg9hWjfr7ZKYq9jYkdMnAdg5QJSikIvvlSl?= =?us-ascii?Q?Jhr2NiiM7Va8bzT5fpWolK9p6+U4Y9xHyG72KSj/A3SoKHp3SnZOCnPH7Lfo?= =?us-ascii?Q?Set7Vh/fR8A8iEtOsPqGdySCX2rPXTus9pY7W0KCqAA17RqvHU+ARzJbPbya?= =?us-ascii?Q?0Gx1za/PKhXAHSOqBcFU0jiDHx9n9/QG6GmdFl2U6JA6Okx6+CMCBlrVpie4?= =?us-ascii?Q?hafdVuVXRIdTaAvv0cCktjHxHYX5Rcia8wLi3/f9/+wSvIrJ3KYwE6NXx7K7?= =?us-ascii?Q?EU/rEZyPsiEnzw3Bm/PPV2o8ZKRPqgQB+iP6GMYky9AR8nhC1kZqOOgBOzuC?= =?us-ascii?Q?LiM47RNoofWxtyqc2jImq35snMYu8RKn+acf+AGk6WdAq2Zt5J0EPb4UR3Qy?= =?us-ascii?Q?6qbOTi7gbYFZyA7jMQdoi1I8qvHl3jywqA4iDrWX34ANxGgiHlm+pPjtuxoA?= =?us-ascii?Q?onCuVxjuYh0OgK6qUXivsBivG4JOXZ9p4Lr8EnuwFJoeKQsa2j3LJHWKLDdt?= =?us-ascii?Q?5hVA2WZ9aSXyXEDgI4OxqahLmLKou8ngvAJmnmHWwHmLw0q/pJX60/jcok/F?= =?us-ascii?Q?NoWN294nuS/WvetuGWnqFPGAGf5ahZSY6t+pi9Nl9Szs34CKXhAt1t6jTnSk?= =?us-ascii?Q?QAb/uMPV1gL3FHfHfl05YTXukyU45SUdIO2m3ugLd/p1Ke07us2XR2RI6zcQ?= =?us-ascii?Q?PEn2Ru4cxYsSd7S7v+NdCh+MIfeh1Bxsvr7/O1HKNvuo71rk1NOWd0/ngXDj?= =?us-ascii?Q?44/PKM6MkvBMQ1iu6Br4O2JqBKQEZENLdvnMk3fChehp6Z3DXYJt8TltDavi?= =?us-ascii?Q?OXSNAQeGIPCezVZlNbU9kinzEPFLGnL0Qv12SaIPySqbG+Ty+1ovTjkVkOQX?= =?us-ascii?Q?BEykAKVeFhN/XN/HSamwtbnOvHGDgJ17Tvs6VuCsVaCTk2m/Y0uB/cOiWdR1?= =?us-ascii?Q?uemPg3huUe416mI11ls7AXEgegp8oGou+73m4IwWEygoBuVCatNgvBdGd7Q5?= =?us-ascii?Q?GN1ad9nPHzZuiqprBMPAiPfzNHfr8aGs+dSRujrO/L8J4pWslZgBcfU4IISI?= =?us-ascii?Q?Y44jBZGDsmXFtQAp/MPIWP+SGGbh7faZKs47s540rKC2WmlLUac3xcr4oqor?= =?us-ascii?Q?SkkeWctD9auwJqaulb97fWuqTYNRu3hYrb1ln5jruh4F4gjTUYZLEv6uk5pT?= =?us-ascii?Q?4YV32xdeydxYu2Sf3m+D88moY7kRe21X5k1U+pfqDToSTZQJu6DYztAyopuQ?= =?us-ascii?Q?bJfH++zS7F8=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?gUWmwiSbZ9owa9fFuwJW3LOqnV1YTHapUy5WTCvnJ7WTo7xIphN182GoIdAn?= =?us-ascii?Q?ZwTq9h7h4ABl+xyEVLfNcDwBAKo5WK+orVqcgZcN+vFSdOHemLoou8KHSB6l?= =?us-ascii?Q?fF/wIhpR29yf+Po44JeBZm0JfJXZbz5AN/CGBPTFgbq1PD2e37+d7g1UfFBw?= =?us-ascii?Q?uf7rNC8zRO7V9B2aZ9jSCvLz0dXaLG/34MlIruFiktrwPTpNov+0v+fvdM2J?= =?us-ascii?Q?s2LkIg4TxxAOEW9KP5mheUiYXAu8hI6yZliehhAKyPGs+70B+EcNQ4oRWp8u?= =?us-ascii?Q?Kwj07NaMEgxfecbxJLGGG4OuKR9Lxpe7859zeC3KGUg6jiuPBJcJv6d7Lr2F?= =?us-ascii?Q?6D+7tNQLu8WgarFDJHFTDv1IlQ2+/Eh7f32TzJKe212XdtsguIrgvMx4vVIY?= =?us-ascii?Q?/n7+hJTuPF7uz1fNIUkexndK5pv6EUBRfFJKz57XOkoAsGvYhHlKCLRqPZs3?= =?us-ascii?Q?8XbJ3yy/WKpM5WW40gqx3YQNVdO8VqRwjuvFiQo043KzXG2lXmZ+kNRlQWvl?= =?us-ascii?Q?c5QYLQiSlny38uszGT9QHNZ08ZrjxKG4kRNfwggsuSHyTh1xVSImxAU0mMjc?= =?us-ascii?Q?3xcj/H450yKAyT6hLiZGHbwDGdrz6ZP/RHGUvGpgIWo6JKgbwws3YLclQQ8d?= =?us-ascii?Q?gSMsUOGEOLU+l6AbsYlyDsYWpRI5M4iO0HmwNNoWfr6os9R3/eL+MHVieDOu?= =?us-ascii?Q?GYjxf1ldAyNbnW9mc6DjfO6irZ9zL/3QT03SKMJJIv4CIVRwE/SnFAwzrZri?= =?us-ascii?Q?LAR0JoWP53RBLSnrb3kCgxu72SyNkmmDKd7WBKOVU8A0Ko1zv4LRmNDq1MfD?= =?us-ascii?Q?Qcf3pIRk64cXzg/PkXGK+PdtUVuvV/PvWRHD0fABhwlLPL2ER+IP0Y4zgnlR?= =?us-ascii?Q?kHqc0tHtOtndb0S5GUqw+yLqSrubKDZCxoZY1eqjwrfzGeKqjmQP2U9mE0Sa?= =?us-ascii?Q?YCi4yoqtsmSxKPe+x5OTcFLw9a+alhiugFw/yg8Sp7nxCLRce09cTnktjX3G?= =?us-ascii?Q?YlVNzXuE06eC8TeMdpEwR8HPk3VtbRz8DNgkUMtNiUkEI/BOpoAPDutpSG5Q?= =?us-ascii?Q?rCAc2aK+mDVNJkcY8G5rPe1kC7WZy/x8HFW/5MQjcXGPwAZT0X8xC28R3F7W?= =?us-ascii?Q?tRsDq6Rrh8sCbxW+EcOyAayN82A2A+po6eq7pbUWYPmp9NH58icKfkDHhDx4?= =?us-ascii?Q?o4md+/Fw2jbc6Ae0eXBhNrypk/3x2d5Y2tf7+VM3caG8L7fiyUwfb6G5Vl8M?= =?us-ascii?Q?dL4X8eTW+q4DKTUqESmtTcLFc5dWnxOm/u+OoU1QkoFq6zKf8Ao7GwOc5M8I?= =?us-ascii?Q?Ss7R7blBuzc4DG00rhpzxXLhsWGZjBRpSG1jUgdPvR4qDS/uDd1Uq672Mfd1?= =?us-ascii?Q?AYDK5W5Tq3Kb3SL1DcfoHEmyF13HTYPF2dv5edOPOS8/A1zrtgP9vbR+I4e3?= =?us-ascii?Q?4yoLrUGy2wjerZflkR7xcYPDubZvSv+ACkpsrbJOP/fFmx8vTi47zClN+lmy?= =?us-ascii?Q?Lk3JNe8rFkrLffoP7sc4LhrO3UsJ3JmDSo8IX6LqRinoApXf2GsmuKrdiE5t?= =?us-ascii?Q?PnPSKDDBNQTrtJUlfVhiSyqzyiyObuk9Aj7IMGni357QhKSxfu+Q3G+/5H1V?= =?us-ascii?Q?NQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Uce4hZNU/9SchMvYjbIoMfca6vib2Rvo4Rfv7cDkBynLe/8lFR+bhMFhwKGlmL6bFl2W6nDbbyl1rf4hjXDL6c4HVn9WD+dTeKXvz0yghSNIIiozoVQCgTAEi78cH9ks0UNcQ4bR7isER/S1yRcoYDmIRInt/aNsh2F7O66aDSXJzce5ytDQgxdsnGNR/C74x20GF754xtk4+5gzRznvAJPjHPy/izOj3C6Silfg12Nnm/MDRKuxgGvU5FB74bwOtb6uwhSmz324FuT6iRFIGI60bgQRuABaJLVdj0ANrdEYyHcxlOLo0AAvFxhhuwsd4PJIkmT5SzeYJ61jJ8POeirmb2vQSk2AnL+glccLa7VlY52/HsYOwDdMeWEVTFMfXo0I+J7pcGuh32rzwLE7YMox2kDNE+i+NzYSIwcNWcrda6Gd00r7XymlmDr7R2oXSgAEz6kKI5p/N/sLVf7/P3a776e3x1hFYGLjVDm0Kmp0u40zSpj1udLiBmXFrURGU8LBdwCb/I5WdCCHutc0XUT2nt3Ydn899nup70OCFmBPwcRXJqkqoPCc+c4Px9l2JBGjwlYAsLxNecruZ+8GrMH+FNne04f7o/jtMF80IJI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5b4d3ad6-3367-4ba5-6d00-08dde9f7e60a X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2025 08:08:28.5291 (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: h8p3leL7hfhSR+rvfc0AsZrZyq7Te6FCMG3IFURyqfkV8o6Ob5EPGts/VlLPqZc+QzEWPav1nDZm7HEb1rYx5emShYuBPFK0+0TBmc+iC1g= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5139 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_02,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0 suspectscore=0 spamscore=0 phishscore=0 mlxscore=0 malwarescore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509020081 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfXzonIpinUIMrJ qkVHanUdLYWeocN1FrDEQGAQhBUNE44L/CSnCnMUNOLr/8tFhWNN+GZRIV4+GgBuc8rJL7Meyhp uFJ1XIAJfUoxvJJHv2hszg4BL6lHt+mnwjO8byLmU8cXORaoidJftOh/0/Sb7S/F/DsFTb1Pjs5 79+PgJ98ob5nh9ty6VisVgtLql51/zsI5LBK2q3LjRVwZpX/3inEcjHnXVFbCysWyGmBG4JkYpH LO6GprvGzGwGF+cUMTlfuHRNOohf4ezmRoXpBV+XfcjBi3S6NlIyiEv0gHH6IL8n2hYqCri8iBP Jt7aDWdudoAQGSlVMyMpiFZNzNZuJVpYFsu/41MYg4U1WyVIdif1DcHUMoT238CvjQx5YypwuqH OGJmIFnf1p1YfBDsu/n6T551Jv0Ufw== X-Authority-Analysis: v=2.4 cv=fZaty1QF c=1 sm=1 tr=0 ts=68b6a600 b=1 cx=c_pps a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==: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 cc=ntf awl=host:13602 X-Proofpoint-ORIG-GUID: RhRhM3wO3-rI2v-4iCVvBqWSfhg7ouz- X-Proofpoint-GUID: RhRhM3wO3-rI2v-4iCVvBqWSfhg7ouz- 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 --- 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.31.1 From nobody Fri Oct 3 11:15:10 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 C5F562E8B9B for ; Tue, 2 Sep 2025 08:09:05 +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=1756800548; cv=fail; b=qr1/9atjB4YpMUqLlwGG7eEZNl87Fe3odNim87svMt5eqbo7Af8lS2ol65zKkMLGPatDbahYBarT5yP1s6YURNO1IZpOXqoBmrcoWvvch8Hs6fK0PJ2hYenlIVSsp50GfqZYEymzeJftvGBAqgx0gqP1caK7LxP2N6HOnz9RJuw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800548; c=relaxed/simple; bh=nOlPZF4UHOs0+1Bs7VUoLopRUdoTKrxg875NYQ6+GB4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Nbg1KmTR1ie2sdfmvK48ZbG0TmPi490ckFTzwip81729s5t873mZvKal6GlweNQdt8047fKstpInEfTf8/omtXQtk1BMq9LMU5Jc0OoeBts3syTbxgOUtSVk1QXmwAGNC4scbNPn4GUBbVM3yw01DKpcQ0gOszzS9JOghkoJFMk= 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=b66MgYg5; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=DNijwETf; 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="b66MgYg5"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="DNijwETf" 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 5826fva1016337; Tue, 2 Sep 2025 08:08: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=ByV6StxvVOJzGMzCiUaoI+QnqBZmEM+qb8/7xN0vH7E=; b= b66MgYg5sJxZzrYoxBbfe1aExb5DgiiNvEP8lb2qh0jeqWJMokJTd37bz0KpbONz DZ39bEPlVk7DkcbG6Oc9wmwc8xruQrRyYpyw4XdXg755fAF/tdsz/a9849TuJpWg ohXRIKDyZTx26g8mR8xV9uBczfcL+vUrJghnpYQ8Rp7EhnIMuplpN6VDh9aL9HFH fskYjudBnDoy1c2sw7sR3IwFWp5iczqGP0rMtDy9Nx/sYfDpbw7fGU4zguGa+RvG P43XxTAqlrb9YkRL2ZbrP2sEjtqDv5jQcgDDoCdKt5MTmPTL5+EvA7xiOkRekx17 6jtVH6yf1q5YIGGFDVM11w== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48ushvufy2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:37 +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 5826LAM5024869; Tue, 2 Sep 2025 08:08:36 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10on2064.outbound.protection.outlook.com [40.107.93.64]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 48uqr8j6um-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XJqYhCfJEi4gLTRL7gKHNeC9UCdT0p34Vo6Pt9q2HBcQQKsjxHdWfPK42zLyLWjcGKi60w7uuZ7WUDOhoe0/hR9XKrKnvkbvaUZWiPBT6ORgwqG5Q1tN286q8CSaU5ht2yCla4QWV97c6BplPnDjtmaHYc7cqYG14bpilIXm8rbTDub9EZPZMF5X2i8BGfNWgIrfzFFOi4LCGM3sqrTjChEV8fyhAMjOwZpgzW2L6qPuCsO5wi6R5Aex9oeNoy2eIixi4EImrW99QRIGPGZADbtdNAF567Ku7fQ/ciWnfrzoouSNcJ9ERyXVPYxTuzMN7W9AR/hD6vA17lvzwbRQYg== 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=ByV6StxvVOJzGMzCiUaoI+QnqBZmEM+qb8/7xN0vH7E=; b=Xw1QubXdcaEqA8cPRbi60/iFhkLLAhmZBkM642Yf8tZ/va2AnR12SwXxeyWvVTSbt+aEUA7yS9a5BbIdRQcdQJXOzcaPZbxX2/Z6ImuTDyPfegv7trqhnDxolRS/WZF1I8+BcWPQmiiNAo8WR9TZ6fmsEB+BYld/n1HWLvZEu/jzGM20i/jyXP43HzJUHogXDDuGGgMcHiAsnPpKfoOzOffhIGRPSPH9jFCO9RMH2QaeaiTrj8w6/xwxEwLcBrPNfU4pr/KPcdUJhhrq2K85jtfduUcEZoDGPaR0a9F+fm8jqWEOqbFnBmkL7EEi/G9SwVU0ed+KaLBryB4hWp4Uew== 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=ByV6StxvVOJzGMzCiUaoI+QnqBZmEM+qb8/7xN0vH7E=; b=DNijwETfYs93Ci6Fs2Yjlzvz9gwBjiX9LpLSPgf6PbAN1SQiJ3MZ3FxT6tfjRbjyZzeXepVnOYRuHnLKHu5HcRMpjm+MCM9YwG2AdVRE6oDrZgvUIY6trvwWLg3VfdE23faUnS2RPAhfZ64z7uYml0qb+q4Izk3IAHWCVlcj798= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by BLAPR10MB5139.namprd10.prod.outlook.com (2603:10b6:208:307::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.16; Tue, 2 Sep 2025 08:08: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.9052.013; Tue, 2 Sep 2025 08:08: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 v6 06/15] perf bench mem: Allow mapping of hugepages Date: Tue, 2 Sep 2025 01:08:07 -0700 Message-Id: <20250902080816.3715913-7-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250902080816.3715913-1-ankur.a.arora@oracle.com> References: <20250902080816.3715913-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0061.namprd03.prod.outlook.com (2603:10b6:303:b6::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_|BLAPR10MB5139:EE_ X-MS-Office365-Filtering-Correlation-Id: 28661c31-d430-4129-e07f-08dde9f7e8cb 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?+uqhaq9l/qWD960jyxacLdT3fygnoQu2jMwdjG9PJLvbYhq02MIAbIb0sZQp?= =?us-ascii?Q?nx5vyEeS8u+EPHrvT3hyXdB9aC/E/J6xc4UzpweFFLjrUDYJp2SQcIuQyECZ?= =?us-ascii?Q?suJfeuushrSkGDlVRvKInJeiiV4LP+K7RKIjzpqTV+4qwEwlxJZM7MJgnSN8?= =?us-ascii?Q?AGjxUSIX+O0un2JBs8jBEqaqtNJbL1WrB+81eNXFE20e/6d8IFW939xAMNSH?= =?us-ascii?Q?CzFy1mmXm59xOVaZv1Chm8E3Alu/LJXqJV7TL29lmbHTIOwnTpO0Wh5wLh6u?= =?us-ascii?Q?rUXzR1hUcwzvzwUsYEDIPkIXZ6zRPJY4+AnqEP9otYijSo8ibsuE975nH1V7?= =?us-ascii?Q?IBHnjWdjMQLIw3XwwwDuyyYmiwJpaBQuA/2OsIZikHgeZjNKqzxF8Q4ScE1d?= =?us-ascii?Q?X0S4+p90HkxDFZ6Ryb8nPT4sm7OsxzbJWtlte8UaRf+pnSa6TY7B2LzVrF0C?= =?us-ascii?Q?i75e74pH4gOZUotVjUGzrWlBdgE3MKV/7E8YoFkijfuY9zNQ8fGiT8JlAxZX?= =?us-ascii?Q?SFg65grtRmy0iTe/1tDmrpwMuH/chYvhHR6qJ+oewkxi1hr3EO08OSxl9ATC?= =?us-ascii?Q?s8bneCeugCHyz9K9UnKZ6KXJBJOhNvEN3aK4330jer2e8MNCZS73km7eTMFv?= =?us-ascii?Q?T3SqhS72ByRAyjnfHP91ofe9xLDkYXSuBIoRVBfeT3EoEOE652cItcE07GFz?= =?us-ascii?Q?hZ7VjM9yXaanQHoGEXXHhYLG3A9I0ghznjqWTDZZR+/A1RlaSxbqGmF15DBw?= =?us-ascii?Q?Odrgc8bAnhU1O8QhMRe8jLbwEGNGch5/E7tFfbMgrZKKKN1pufiqBemK+Mzt?= =?us-ascii?Q?9ZeXE8XbXnF3ChI9OJjDkupz289z1b/5JkIhO6p61ilBKpjvQGE8rJQAp9j7?= =?us-ascii?Q?Hz4W+toaBU4n1FUe7LeTHJL4oUrVrKNNY1V5Oc0Ya0GaatM2kToloSPFK5E/?= =?us-ascii?Q?3T5f2GLGoUvLph3oTYfSKJ/N7g2a2YaOeS36JQoBB2hj8yQGFZKwlyfuXLBr?= =?us-ascii?Q?6IPMEqmKtevE50P2JgiqwD1BAosi2fx7weJtXOoFbV6fiGm3z2E+ML3lGhUm?= =?us-ascii?Q?G5jZBsmJqfsgNwiZqf3BJzIPczJRoAizTjWd2go/NfU5sWQ8Q95BvTupfCB/?= =?us-ascii?Q?2WqZHowJXEyuRXYwEQX7dVg57oFrfQ7mFIXEB/EMPS3KyXG6S9c8gf7msh3d?= =?us-ascii?Q?lZ4Rj1SQgF9hSz8Qdc8lskcTn7jlYsOnDaQuF23eJYoRie4d/3myME9uTtoj?= =?us-ascii?Q?rNSMXeIsI4+AkN85+hCnj/xbn4U7qTHxz9bXjlbu8SoMYaXuO9SKwiH1pvgQ?= =?us-ascii?Q?45r+M7Z9lza9NaM3gW+3Uz+1CnZIMKNVtYs37TfYQ9YRD20ggOatw5DHy+hh?= =?us-ascii?Q?pNgiA2J5NbTG0P2uExo0eNOFifzToxsNxwL1wSHqO7tvQUum0A=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?wMBmRd7HEKiERPARxXGCCZaUP3Tlq+3sOyT+FOcvGTDm/2Z0r34dj/b8Eash?= =?us-ascii?Q?wcJL06rdkfKTnRSZRwaXRRSCEfvGw/t2043fkYac4Om2/GUGxEli3tSoNz8t?= =?us-ascii?Q?lI4cqwPDQ09Vb2p909tEQSnMjgHxZ0jx1h9X+0cHL3KoVK/Dho3UXPHKCU1q?= =?us-ascii?Q?u9t/c+Zi7QFOLYjJbQWGRv1Bm/djDL+4sNKcgFFckCyilY0nCNXG9xgG0MWo?= =?us-ascii?Q?2W8z1+1hpnfPyjHCcKlmXisJbX+sS9WOdvece2WGWSwqtLlL3gDI5zqDX1Sf?= =?us-ascii?Q?FV2wNRLghmXphxVn6ZeYzH8aW9V2yYlj3qOpyRwIoHRRmqnEw+ZtiS+VzQWv?= =?us-ascii?Q?t1smMUqKmMFWtygo/4Jruoc38Nk6z2vaLQK311y9khgcM+Bi4PfTut+MQ00M?= =?us-ascii?Q?9xYHiA6K1ljYtKbs4TDENgkFJduLmSTliZJ2w4j9fSSzj/B57JTQPKSWW1rE?= =?us-ascii?Q?6w6Ys3kRsnnOXs6cR6UGcmgKGLKnChjp2dhmzRK+tU00KZIaf6zUZu48WN/b?= =?us-ascii?Q?t3XA/9k8Zp00iePcmf9XVq+1A+L/9Ef+ng/ej5DcMzxJCxlv9VowdEwwJlO2?= =?us-ascii?Q?5bt42lHFoI2f+v1qfSmJzuqzDGB39zG0bdVqKMPeLaKKlUtytANmBPxvA1oX?= =?us-ascii?Q?5S8bavh1FQf+KU7mXOU8/j6RRQXHIpOBEPOtCjKLkVpZzMZ287HVsb0c+tcs?= =?us-ascii?Q?8hK3LJgKc95I2jw5OKkyZinO+thmj4Cq10U1hZ6FygRWEMQ4Mahhftxtcqu2?= =?us-ascii?Q?TUj1n0jXnM8O07cZWHQlTiD896w5OWWhD8GL1pymMr+RwOGhdP+1szayZoMo?= =?us-ascii?Q?je72U/MNwiSTcr3kDv+kn/dBeJJjprNS1KloLB2sVOOv7oL3yS9v2TBJgkaA?= =?us-ascii?Q?06E0OgYDLovPZZdOUHhNuv1TJ0VhNTl3nUAy3aTWAqJzTQKdCndrO/aUC5LP?= =?us-ascii?Q?CmlaIF4368UiJVcXq6IpF9rC9ZG03X59ddUeKB/IE22TVJX9wIIWuG9ZdMh1?= =?us-ascii?Q?I7fI8l+nBnypbkx8nt+eXm9GGrI2UvahbC7sKwFoqhdXNB3tY+yESGlZYDig?= =?us-ascii?Q?UIpRSc+p9abBhgwAz/C3AhkbiQFhGQvOvAE6n85K6u5gcH18I5FR38iyFtHA?= =?us-ascii?Q?X1/am+nhJz35o6YmC0Cqa2U3nHIsnr4yu/sB+inPLQlMPF4bSYG9cpWG7pJp?= =?us-ascii?Q?2TQPqt0IKmjQCHVILD1uBpliusbK3ORvBV+pbtbPQYcu2laxP/cL4BQjpl/j?= =?us-ascii?Q?QVM4Kqd/+9umBjy/dirjmhTDh3J6hURBiNSf4DWYFm4uusWwKxO0xuO2ZJDN?= =?us-ascii?Q?z8ut6eRlyBvMNCagRYJ6l3tfyj4IliJ1UpPEQhOFZNSipOkCN+O1FMkkLSXh?= =?us-ascii?Q?/F/V4qm5T3RMQ2YDrhuMq9w/Ga5b3CrG7k0YgUCUofjyK+QQPFJyP0HdMa4Q?= =?us-ascii?Q?HcoenYNfIEVeGxb0Aa0TfehQVlxbjT8BmR+Ioa7RdAsarNKwr8cuBYqlfYRI?= =?us-ascii?Q?QQ/X0PnYB6JfVeMMJgwUcS/RO4IBGdewVZHfvQHXaFCAa3cziHuJXkhYcOFm?= =?us-ascii?Q?upo0czNg2paQCh1kKMA9ecqkzRJka1wv7Nuj3c/YGxkLlMJxgPrXuTRLE5B4?= =?us-ascii?Q?Ow=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 7fgOkUNhGjkADSAXxWr9vmkRv4SZqO80v+8XwmT48qXQblBi8EMj1nxbualcfV0r2FJYpqSCRSoDJB+Pmn5gPAckxntKyzanxei9eq2/bcByr3iStgaVm8wyCv1GQYffi/gWbzCRAmRsDi1Tm3vZPs1sEV3EcJ4hh1TVqsYA7JvpFkBSAe+HZnDNPo0vUUM3m8pf26XS0FQPbp7Rg4DcoxVElvEbh5LsJ7fM2BZNOZxQtyVCmxkyl8znY+Xgxt3S7K11jWQX/7f1rht8xqsiJjonW+tzfIsF8OoHN+EvFXAIDY3Fyc99vAvq1o7OBtHdWDGXkoHsOhYzpDnuzdvNrPeSeowAoODi8pV0Oy9dHgnFutAwWT1Vz+AxLjFA/Fju1cfVMiw49QPLbHFtfJaIX3/kYYrLpmKXlzl4V7nP0iTHvhzs8K7LfgUBfnUx/l48NsZnMFmPdjI6bobWFDID/Nnqb9KtjbstvcTjO/Vv0miN/NwL2fXQzC0R5NALmJpag5NFAiEOeUZU78fsqnZHNldVtQoeezchTjA42WlnpBU9KVO7Eh+FZ6GrfTWA4q7MoL8raoUKso1CglLO3o2pC6c/OzvVydxobr/04sPfc+g= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 28661c31-d430-4129-e07f-08dde9f7e8cb X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2025 08:08:32.9584 (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: n67eFrsyN0fVMzyVGfTpkDp4wsDnvopeFsx1c3Q9hu28wyoLxlcyBL5aZEav7WipU2n687wpn/QkBkjvSg0u4MLkWuOM5bhFA92+9LjPE5w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5139 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_02,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 suspectscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509020081 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfX7LBTHOHXM/q4 9IWtDNQz0QSqzxd4x/u1iAfqZJ8OO64fnaDnTJ77L6DJP5LD2JgwjbtRwysJh2Uo4A9vVwome0q hKxavXYmRZiCAZ/Ehk8J4OVP3QW/lLuHVoY/QdnrTcIVHVnqmlMq8wssEVNpmJXxLzCRsk6SteQ gGEUv60kKbvMpg6KUMXBUoLl+5NYaRUBp+ZCE+hmTqPIuzYTi9Lyc1Jgx+eEH5Fb2nSnlru2NtK alX8WumsW62/fYQUTZFS1oZQZcZ9vR+ZJF1ZNsDaGB9TXzfOj+yv6aPvJNjiHzh8KQIx+EiK6eG QKE0oi2Mtzf8P00hrS0JDKnI0FZazSMykro82o4mzMHCoibh1iIJUr2GjNMAUv3HRv06Ps/oNNt yfhbOvSY X-Authority-Analysis: v=2.4 cv=fZaty1QF c=1 sm=1 tr=0 ts=68b6a605 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=lQCSvQGvPXAejg8cu_YA:9 X-Proofpoint-ORIG-GUID: hG7gbxNFpXiEAp0izea2ypd6s9gyd10x X-Proofpoint-GUID: hG7gbxNFpXiEAp0izea2ypd6s9gyd10x 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 --- 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.31.1 From nobody Fri Oct 3 11:15:10 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BF79E2E6CAA for ; Tue, 2 Sep 2025 08:08:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800541; cv=fail; b=YC6sFWhVXir41qsx6U8J6xkzKj1O66+u1zo5W2w2ONTAXn8jvOL1FJlukexS9Jg5OJa6LhGSyrGTA1k10RTPMpXm//fKFyMUQIfs00uGD1Iahf4SqGXf1yJI9S505r4ttvJDOOB4BfQrzfPyEcGevVu0Wj6MK0KtJdAADIplzkE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800541; c=relaxed/simple; bh=eAetqXPT+dGQ0/YCaobyxC7n51c8N2BqsQoUm/wYh6U=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=PCFsQZRDxUP/fOMaKgpbWIREL9pC1HrGRx0R7CXz8kNzMktwsyydLk1wUZ7EfvPDPC5KfBtOOKuUai2INiZG+4alRO2+aJKVSFJR3rDVeoSnsrc4DAF9Wu+kXlqeqtgFvWOqZR+D5tQxk6gfsQBj8tIJli/6XloRO9wfY0V6KLk= 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=YBX7H8yf; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=tkS5PyFu; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="YBX7H8yf"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="tkS5PyFu" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5826gb7H016481; Tue, 2 Sep 2025 08:08: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=78mFrYCJCjC8cGcXLww93kCFW8Qf6P8C8oDZsaAwyzw=; b= YBX7H8yf+AZ1OaoOPxywASIqgh31YZu5Clmr4HJE0DRFv5i+/PZYTdhFO8jKf/27 XlEvgsqM6Zx9Qr+1ZbN/xY9L+4UvTCPalX+6wkE1VfqPYYobycU9DkHWBDH6+Q5v 1b5xyHwwal5oEBM0u+tBJ544dXhhF1+md2Py0r7KXU2nthxu49x4FYnEXC9HHlWF sFr16ALl353s7DYCSlJG15RR7ac0fQg5nuPOZZD8taYDY/bwhBq6xx+cyXILBR0Y BGP4tvOt8WQIIEdRk9Sm/Vu0eoRefNSWG207j77QW4HXYiJ9rUUxyR2jIY9dzExI UyvJwBnY786P8nugwYImtQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48usmnbg75-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:39 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5827nYtR024842; Tue, 2 Sep 2025 08:08:38 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10on2088.outbound.protection.outlook.com [40.107.93.88]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 48uqr8j6vg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BmNhSCsI617up7A7C3pmRJkqRzhuRVN/NnfCrpBhVxsvT6cY6UkdMbAZfVGPuoyz2ZLCEF6AcnBULQoxmXxc7/IYDdZh0BrqbRDN2ItRjWlKdqxepja0zSsvMstMC5e3LdbehFfoEu1tM/jv2pHzC4wy7Kdegf1frk4br92s3Nv56ZRyhsdmXz3VHij4QfbNYLPW7l1uGp7rDR1PX066MXyKIdj+EvOwBs4Q8W9lC+B0KsuLtpK4MlMmDg9biscDU/alKOZjiI6rgoURBWA6ccyWyPRn5aw7YeCp/RC7vlnIw+zDI9sV5JcDHSSy/m1OaKAzkuNCbspYWHwag8ef1w== 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=78mFrYCJCjC8cGcXLww93kCFW8Qf6P8C8oDZsaAwyzw=; b=FUIppCGuyzEusRSuD7u/NofI1CN+T4ArxAonw5vfgoGPlIQLgUQAB2pS3F9alWVENhiXzuwqgSq1d7BDgzQpBMi87cVpXCy2tk0qkWMzeEJy4xh+GpKnShQvip1OZkthSYy5tl4ZBQSB7hinoko29uzdd80DYiRz64cQf9pD4UC/uhghMTSK8yO95FxZviAq1SGnxZq8++YNIxyLT/IfMi1poEgoFodctntngigvAEkCaF2iIROyehyOHMmUj3TTI4iUSpaYqzgavYIZeNOq/ocMcb4QsSBAhqD59CaOk96F3keDqTfA48KhFU7acX82FT2wSZyQRz3GB6KCcrA25Q== 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=78mFrYCJCjC8cGcXLww93kCFW8Qf6P8C8oDZsaAwyzw=; b=tkS5PyFuzWeSv5ROi6tN+aTMoSnjSQQ3cv0LMoYu7MqL1jxvMrRfUoJTL9DvC7TbIROEMU3E/GsbpYUMsGTt3Leh9oUUK9lg0mL7/db4AGupWgaobN6tYBm5+vTSWIu+h5e3hIhd6mhhflrtXzfNBZjEjNQWkvba37hXwhixgyA= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by BLAPR10MB5139.namprd10.prod.outlook.com (2603:10b6:208:307::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.16; Tue, 2 Sep 2025 08:08: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.9052.013; Tue, 2 Sep 2025 08:08: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 v6 07/15] perf bench mem: Allow chunking on a memory region Date: Tue, 2 Sep 2025 01:08:08 -0700 Message-Id: <20250902080816.3715913-8-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250902080816.3715913-1-ankur.a.arora@oracle.com> References: <20250902080816.3715913-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0086.namprd03.prod.outlook.com (2603:10b6:303:b6::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_|BLAPR10MB5139:EE_ X-MS-Office365-Filtering-Correlation-Id: 41ce98f9-847d-4b61-1bb3-08dde9f7e978 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?WWFEDGWRjFL3BmJxd/4gzP5SdlWgkK6dKEt+MxaFxXu61/LvoRAMfAwHHsql?= =?us-ascii?Q?AWqmtbRcd8Dkiu5D7hniAdSkgwFZPBNrjW28UHygaPzpHHBRv0nrhgLMU+d9?= =?us-ascii?Q?am4nvMacVzvEQoCtLiaPh5waVb6sqisVY3HUW7NweOlHCrA5XDyEMpqBx84f?= =?us-ascii?Q?hy3EOU2Tfo69a+xQWqYUwjstfvSC0dTjb+q+5ZZF9SFFbQEs9vPEw5sT3HQO?= =?us-ascii?Q?MB3DLp4NLkrzDlatklIeLg4XT6nU0hUIACEpc0OMGuX05CMqXVEw9IZpxR8H?= =?us-ascii?Q?yyJFJ03CmmI546ja1hXNqLMWMdkmuGJSKBoyQPdMagyDlZIqTCfcaLN8ZeBX?= =?us-ascii?Q?y9rqMmkl4/gVkSnfOoPwUeJweSZsGmXYz85uXD209jXqEQ+apiuvjS3L37C9?= =?us-ascii?Q?DW7Anfvy4CT5mmmBd2UBx5Jcsk1ivwcqIrN5VAreHoFB1iF/cUazXqTgcJH5?= =?us-ascii?Q?2cP27bVVhaIszS6bJSTuRtYrkyEMP0t1sIU/Jbi9tAUcOAEVK8YP3BCsxN/d?= =?us-ascii?Q?0W3WttzhHFMoc3a0DbKHMg+KesQ99roND0t+kYfkKuu7bRMOYVNPIO9mzaql?= =?us-ascii?Q?30nluxKg1B1NRLje4/KLiJxrMrQbniv/nWeyYjlqrl2VFWsemmjlzXxL+pIx?= =?us-ascii?Q?zDh+DdQGDbwjwlSOzSYMZuLTOLkvwcr4ZC0t/OY+cH3akIaDMAFtXfip92e6?= =?us-ascii?Q?1dnloauAyPonws3epp1zE1Ok77emm0N1thyXGbMEdB29u9meRUuL81eD3PE3?= =?us-ascii?Q?3O4Z1+HBNMiH6InKuKUO3B2y3HNkRBcuEiNvV0TNICygTWmctCCYd6L6+Vu+?= =?us-ascii?Q?mHi+tgNj+YcMOJhoYAcEj/aeY/u6WXbuvzOL4mk8hNUgZVNzqerxDv2jmhAO?= =?us-ascii?Q?/w1xpnwIwxjCLLJpxVQc0JyBJInp/guwogsXTV9bzVVHlc0zyaw3tIjK1ak9?= =?us-ascii?Q?clPQ/OVY26seMRJCpY7yZLcxv05FMVjfYn8CEYVunAaz6T8EQj3oh2GDpiB/?= =?us-ascii?Q?hnZsnVQcEhlKHv4A5+aIFjj2WtbZ2T5xXV+jYM10XXX8/A0Z77tT7/gNpMT8?= =?us-ascii?Q?rTBIhpA/wgU79uUceNicn6V9knXDzU/31+8JjDnK2+rosJEkFRC2hkaUGfzH?= =?us-ascii?Q?hdBbRnjgCoNfZkRwk5ceJEiBpFbp+HZ3r9aEaKVWViprcgg3Mx8l5cT4qLmr?= =?us-ascii?Q?a3rWG1hIBTmbwDeN7K7DvOmbZ+EIgxfON+IWr2zlOqeptVXyHZs4cWfVROMp?= =?us-ascii?Q?0x3ngKtHI+ZiYJnJemRJCyq2DHhpxEcop7qQwm2W28rlfN84ZeDs9n9Gk4Ni?= =?us-ascii?Q?wjw0lJKLAfMLQHl6bvhM5vS0Bqgd8F7CINAJ5V6LFoDxh4UoKigUxGdIpYOo?= =?us-ascii?Q?mB+R3ARrB2F9M3iQDmo7yvAE0+xFoWAkNR/Fw8/9IsJ4BhPblw=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?ECvhDfn4uKHF2uC/qjf4+tVIcNo+sY2ygqZIJN0sydivJ+MeLnVs3FzYR4i9?= =?us-ascii?Q?6UuCBj6tYS9N8KbNZ8ISOBlk6Ar8lYT/H3wFu3TXD5uKUfT6XUIBsKPMPxVv?= =?us-ascii?Q?QQzB9EEqlqiz6RU+W9t6EZIpT0AjvI/L5Ko2MEtWDyTs2Tn28gP+FGBry1YW?= =?us-ascii?Q?O4rJpbmmqIu4eSCwMBjPFQGHssOsoTArSYA9IMCbXol7h6LREPMRIueFbHbY?= =?us-ascii?Q?PNGpitZ2S0uWaHOogNQkKK6dzlfLZ2LWYInGqRRPaJUt1UwBUdwCNUwyYLCd?= =?us-ascii?Q?K82p+fSgjmLeel+s+qztGvLPyQ/GT9dSgBQcUQbDpp3lvLyBrEwazAMUwpyl?= =?us-ascii?Q?pu/tWAVxGo27T0qCOgt+nyuIJPtrklF2muT5ZbkWHvdToi3iUhBVgm1xXFw+?= =?us-ascii?Q?HRv83ziLLHU3vk7kXT45KhWhfNqfHuelcdZYGPvUOGUSlJm87KwHt9IJQD99?= =?us-ascii?Q?Jhc0OS+WAOPhdt9ivGaTwmumzFW3OOhsSs71qr7NHF3Lk3Fh1HzqoyVG3sp8?= =?us-ascii?Q?MBFfx8JSbOf+sfosDFlpnkY+Hi6wPOYKCYwMcdBoqA+dSAw5a0Pd2hMV7CVT?= =?us-ascii?Q?h30WAHZHFk+8Z8UP5IAzkPQctoWm25/NyTXxBEIpeXx2iubIa93dxnkJYMIh?= =?us-ascii?Q?8VffIaF/z1XWQwYGYiWv0UMJVgCmBgN7YFxvcq5Huc/x+sNVaWULgXXpKmAX?= =?us-ascii?Q?LhxAZi6dajS2nOVrVbiyuhupJDm6XC/lULYPcpt/rOH0TIxqGIFCAjHWyYbu?= =?us-ascii?Q?TGMjjBH+UU4Z7EZCkOt0XD/14JFnYVH8ikC4kjz21KyzQiEJI6SijKZThB+M?= =?us-ascii?Q?ZdKeYAALaQq/UuPNMZGzXYp1O4DqGk53u1t1npjdu3UMvWqBQ7s/qpXduLHu?= =?us-ascii?Q?9NaPOdudjqkHmRjHeBDMIM5tPtNTyKlM1n2rGhv5j+OyRiBA7QgaBpiCzPfh?= =?us-ascii?Q?zzVta2A1A/9GVfQYyanFGAC0lqgU9bbhW8b5IaPzx7qH1R7U50GRhMciYMVu?= =?us-ascii?Q?mSbgBrgL3XWXIxr6NXwrfR+iyE/F6HBLmHFGFlno9K3h2J9pBA7K4lKq8hzl?= =?us-ascii?Q?KbptpApl0xkAyONy6GnmjjZmK8hu+1ddo2YrTfaxlzBO0sj4dsqnv3EKRcwv?= =?us-ascii?Q?7KzSuZ/mEb9DaJEp6sNIZjCpyoXiel7ur/f8QBH4XykvM0OAsCnOpSbu4E1+?= =?us-ascii?Q?p8nfaUwG7h2IR3AGoQuDjk91e86EH9XQqSGkUXsTDglEIDQ3MMpx98GRHWrI?= =?us-ascii?Q?+JJs8eFnxqgZFACQN2N/QX/9aBonTMKcilEZPzbw65qEP9IuAl90cSeICRKe?= =?us-ascii?Q?w61hCBw73Z7ivSIxGNew99HILR5eOKy6SQEWreuZXt3GXOhPfm/TJhmreKYD?= =?us-ascii?Q?iw6zMM4fQJDwtS3IS6rN1lqlF9/PN/fd0kItRRjpGpnfg81MDK9KXcavfvxg?= =?us-ascii?Q?d6aN1OQrfXG16+jRhJ3Tysns1fFCSf0FpJOOybkem22xs30y5LfczgqHyo0h?= =?us-ascii?Q?WJn2U5Bpy/DwBhCn8yA2IFWWlcBefNCyyEc1121wM7gmAc7cra4kz44L3Rg4?= =?us-ascii?Q?1UqUhmfH5O0UCaeiRiea+claZepKK7tFKsy9ogSpZh/GtGx1DOkfw8fU3ijA?= =?us-ascii?Q?ag=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: rzAIhN+kn++iGhgDcJg49rpaI7ztqCt/kQDbCHG7rJ1CFkgrRdk5GgdjxJAAC+xMRc0EYXa9NzMMQ25XathhPih2/H8QZiSPR2QdeCrwkKwUH+UsmPZxomOwYDBxdlvUN3VV3RResmXL23qq8cogHemai3veA4XqswD3JrJOYZ6/g66WOpcRZRToVXxScl2P5lY8D7q+TccqgWCaJ4UVgYi/++Twng44C4BtDy7PVTPCv1kw8pKGM9gfG1uluIMy4J0GJ+9EK8Y5P5gaBcPybftCTXcju8CxeopMW1F6WmQr4Cnki2xepWNdyW9MFzusyJTrEQnPtNadL6LVLhks9Z6j8zfiIgZ0KATj4ATZFElTWJqWlSr9+PG8yWFSg/yJbXvg2OpRnUAMGjJiw35EcKciRvV51ftbTFkec8YN78tFY+0Rn/eIxXrvVtTUoPj8I3wMY6szaErZpv/seJHajYAa1K/ETjJHo0PqbbXWD7CX5tPsCiGxT+tkNvDXQ8aEKZwXViMHMa/FgXA97fRmb04bo2yEtMQBc4ouICL/DtElBBCqA7PxLAhll+SejejRcXNLIERF6hhQXXl1c/xPb5sPfoTU79u/ZHdViNMA0yo= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 41ce98f9-847d-4b61-1bb3-08dde9f7e978 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2025 08:08:34.2303 (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: AK36ES3P2+XyzWN+ALeqtNTDTwzMsRd068uS1QuPiDCiP7JMBGBHwpLX83l2YUjwB2rIEKHM8BShOUpb6XkO9ccWlu+LskLl8ZJX8alQQzY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5139 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_02,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 suspectscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509020081 X-Proofpoint-GUID: URePU8g-pd_ac7Y346C0pKCrP5C96qd2 X-Proofpoint-ORIG-GUID: URePU8g-pd_ac7Y346C0pKCrP5C96qd2 X-Authority-Analysis: v=2.4 cv=Of2YDgTY c=1 sm=1 tr=0 ts=68b6a607 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=Us96s6kiNGSoJA3BlCYA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfX/NZmrOtGVC2R eZ01wp9AKq2G2MyYTyQDLcoKqT1808KVLOGmPCfilgQ+OBAue5i4AzoJDv79zD0D8zln57nVp2G H61V07xgeSQizF+VlG8H8xcFVIJ0DgYBEVpF3Ce+55vSNdoK8egbEbD7z/krxp68gypBZyjOz2X InR8CrB2juG2T59KMpL5ErewnbhfCkmEpPbDh7EAg0xhoJsB/0POerOaUBZbLLwgDwhRnaDLOC3 sCMnpcAEc5vT+G8J1XIB5DhY70Ookc9rxl1/hoD1WtBPb9WRrEH3aAIYqdtUpLHD8TmsO5+3fy0 qg8YjtKqBmRGCYuBO2DdOWTqR3fG0DrqwbghlmtTKLgGJY891f719xTkauvfDKqqsLfE8EykAQF qBrAhICL 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 --- 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.31.1 From nobody Fri Oct 3 11:15:10 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 E6BED2E88B5 for ; Tue, 2 Sep 2025 08:09:02 +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=1756800544; cv=fail; b=POmCy+seDgYJJMOLKbTg+5M5ZRMI8F99K9zGUrsxtuixP0Uc3F31NmknyxoGwHpXh7q1KCyvgsuQA2z8RXq5MTpSkdvQvpmhUGDQ5NaH+S72mKwMtGWpJtPZ9NBDDCW4aMCW0LwOX+T23C9rp8lupQk0AMFPAcuEW+q8EO0n0+M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800544; c=relaxed/simple; bh=x3GnM7rfwDfEBvzelLoovzwBPOhWLVz1sRRXlnsRlJg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=pJmRSmMCj/R5jqj1e+mIZELlmmAj/ezEngG4bhqSb3iqi5p94Wj4Zwi+fd6ZOeYitJ0vc1gKKERYfhuDIU5+HbDz0QPRR1EohUfZVNs0tF2IZ0oFIjNQrDcpGUNcE+1GKr/lyu6PYsWMhQYFI/WSAGDt1ODwetz99kMHJOKWZ3E= 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=kxTJV+/Z; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=y2FtXeVF; 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="kxTJV+/Z"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="y2FtXeVF" 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 5826foVU026480; Tue, 2 Sep 2025 08:08:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=TPfAe3JQcGcPTps5duHu5oiaK6TDdouCxH60jzZmr74=; b= kxTJV+/ZKj+Gi5bk68FFxOhvYSw82oCcz9Z5uGOaNOESfW9Ph/On6v2iuSt0ECwL 7uz89b6J2Y0+S6Lb61AuUubyh0d14N2TQfi7VUXdcO09I3/HytpEGFF6u2m6EuMZ QHcE93iF2Z6lHDz8m8zn31FN7n8OdfcPwxQ8oJ9VXckAvc6qv8WTZ2GrpOyXdgd5 QAv14evlkhjuLkG7ljMjcpvqWmZDB1uVsbF8QWm8jTuNKf4QwJmvtsBPRfjWwjaH FX1ya6pjpaXF1fS+rGt9cGJYawI2Ex6NLhjbw2AUOL/1rANIz91derwbfmbCmOJd j8PiLli9oKzi9EpwqFRAmw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48ushguf8s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:40 +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 5827nYtS024842; Tue, 2 Sep 2025 08:08:39 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10on2088.outbound.protection.outlook.com [40.107.93.88]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 48uqr8j6vg-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Ct0xjYgyrDSin3qQydkTpS5xQcppmqfv4KfOMYuQXGwJYGKxxcvXsUNQvSXxmZ9jN1fCJg48gtLEDZaUcmaKPYf2QV5Ve/he4S+zy6HPR4xYvJx+Adm8Nu/ap6ElEW4WKiKXeFQcJ+YpJa1gnYd4R2mw+jnbKayrokerJS6MX38FyEYDkLjx9evOvHpXfYftAABRIY9FLb6Swyqf92EWsGd7752r4gf4K4qyW0ufrUmb7rrSQEzk2o7LfBVkvhSpg1T61TlbKOQnwVZnz7SyEv0aOw+nh7ShZJfZO6gjBfw3y27Si5CyLHCCJcOiFyVfIKXsTuKcyJIRtLJIiD3rLA== 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=TPfAe3JQcGcPTps5duHu5oiaK6TDdouCxH60jzZmr74=; b=G2aHesW7RDFHQ4dEZyWH3A+MM29aumJ5t8/rnIZ6UJxgrpCrLcKAT9v7wADIFdId2z1jIqzUMnxib2jzkJw3aCkTHswwoX0xzud2x3bQYoahGjKhBo3PXv6RIjufPcEzx+SMDEArNkp+TnAyPsqZdSFdDEFxIVoMGxwioBnkQTORPUyjeEZLYDjMOn+7x9zyfla/j879VnOYA1EGwgf30w067tM2oJZAKMENneHpM0+ARIb3o+1NBPCbAWzjwlnSvOnQbauRRPRzu/RvaD1s6MpZ1p/Tj4XmXfHamrEgsSr/1dDc+norOSk2x0g7kOPSPtyYjWMlqaTI5t/HmuV9cg== 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=TPfAe3JQcGcPTps5duHu5oiaK6TDdouCxH60jzZmr74=; b=y2FtXeVF7bDDw6rwf2ri5Q3pOpbf2I0s+t+bvm4HZjKewGoEXdjBomjBDNBq0y5GsH/P7IYgEP7DScICBO3gbzzTAKcuFq/I3lOGdmGojiLDYCYii1EmVy7ULgkadlz3RoNa3w6slDsxeFfKloE/ldqwtW7zgLV/CU/Ggv5mmbY= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by BLAPR10MB5139.namprd10.prod.outlook.com (2603:10b6:208:307::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.16; Tue, 2 Sep 2025 08:08:36 +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.9052.013; Tue, 2 Sep 2025 08:08:35 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v6 08/15] perf bench mem: Refactor mem_options Date: Tue, 2 Sep 2025 01:08:09 -0700 Message-Id: <20250902080816.3715913-9-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250902080816.3715913-1-ankur.a.arora@oracle.com> References: <20250902080816.3715913-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0066.namprd03.prod.outlook.com (2603:10b6:303:b6::11) 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_|BLAPR10MB5139:EE_ X-MS-Office365-Filtering-Correlation-Id: 0ea61ca7-8ee7-4335-75fc-08dde9f7ea70 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?O0OTmIxN7XJi+60cooeAU7Bj/rB4W6pbMOIoBnI2I5lixmN/TgegcaFN0eny?= =?us-ascii?Q?pPA56/vRdNLmi0LnZTDe4K/YdK5zHJQpHS8B4mq8GTjDRFBkwqa8WgadPxbC?= =?us-ascii?Q?QeDRlywYF8yS78aiMNXbWEYuJY42bukbXq6DOWfZQyalU7aFXkGrVqdXJ5Vx?= =?us-ascii?Q?3oS4mhdyBLSOE7jxx2SJzkiOwg5OsRQzUzxzY3HtWiHiBbF5LD/gHmvI/xPr?= =?us-ascii?Q?0tS0rrxE7dbATQ8v5ENRhJR3b0Puz5GAIgTxkYpiBYLdACwu9XBg4gBGP059?= =?us-ascii?Q?sLkCaZkWBVF64rMZb9Rl1IIlQztwbg5FPVABvSqumKzHOdBcWK0CLLRcklhj?= =?us-ascii?Q?wPnr+Zk0vt4VGkzg7M72xrQ2jgI7u2Gl9MfdW5Rnwws+7zJdxFM7ZV2LhLfV?= =?us-ascii?Q?gjNShP80qmsren3pmgWYuQfNsCJkIBY82oXXn+pkviwDXNXiTi8v5UBHS2T9?= =?us-ascii?Q?llwcP4hxyaTrGzCq5dNJ/rrhtVWN6F21WBoj4OTc7daUK/4ry783m/x1eTd0?= =?us-ascii?Q?7GyDOW43OigIP1KVUA2tfmWNST27V2c8I4N8kb3LpkISC3kDfs2gSenYOUOm?= =?us-ascii?Q?Xy/0OfbK8lnmIB79FFR6i26/42Qbi+uPfvIKBcEqX3loZ93k2Xjn5Fskb1rl?= =?us-ascii?Q?DCVJwwV5wV5STq30JvcD7xn1jgQ25/4b6ma4A4jjTZ3kuM3SJ0ADPs0UGc4H?= =?us-ascii?Q?espuxS7gi17HrquY/eJr5bjEP0LFUAOpYI9w56mkmmjfN3oMBXAgml01J1V/?= =?us-ascii?Q?h3DHp/rsG/0dr/kkLnSldca+pcsZDN5/HBpWuhK4pYd+Wy9AMfnKbQPSa8M/?= =?us-ascii?Q?u0i/yFrDrp/0aVAF3G00gT1y/vU1PxB+XPDgnSN5vXQVB5OSbbIfk4MoBg95?= =?us-ascii?Q?GdSCPQGe3SCCgBuB68mmuTuj6VYfIcNcjz2MUt5hU/LPC3oetwkF/410qF5Y?= =?us-ascii?Q?CyNjS25/V3RqwPY6lELGE3FqR6Y1AmlFJ8QU06dS5iRsNbNd0RTXOX5+yul4?= =?us-ascii?Q?R2KNAiHLJMy9GrWSsoJg6MWi2E3zPT10dXc+d6FvoXvyBj+0jMm1lSDN2MT6?= =?us-ascii?Q?KaTCrmuWqPr1I7YZpU+OeUhhmfuHKWWi9/Luk4H0XfEGRKJW5Y2qh40LXWGU?= =?us-ascii?Q?5ms+fADvYuX0KB+5qVUAbdR6k8qTxZiIqcPqmzDfcW2frxOEgiURmzTthxSh?= =?us-ascii?Q?lzA3xinVITDJ6Sfctb6+zdlA3U5Fiy3uE1DVFYcrkUrAy8u1WCBvz8YsJvYQ?= =?us-ascii?Q?TM0CAKiTOy1bqVuGlDxy7kZHAh1F22QCIiR1wKyEkXuMYN+86xSfSUJmNT1c?= =?us-ascii?Q?UPU2CgUIpaRTuGfXpHnqN+lN/k6NNOJcMYKpV0gqLJ5NsiZt9Nml+n6rU/eK?= =?us-ascii?Q?brTXJd6BGJx8o9mW6fOURS7u8t/VEOX/kQB2lstBXpy31ZLe5g=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?KnHNDS0BhjYWrLTlWkDwt0zf1gbZ5t4dFEkgu1Meq1W+4QVuotQ74qSx+RIY?= =?us-ascii?Q?jpJKoMy6lBx2WZhgXZCUYusmHgvcJYjautmN4o/A/olw9p8UDrZHrmrpL1yR?= =?us-ascii?Q?PmVYaUsJDnm8WoB0rj0QZoPdUbOSCBw9KAmvgavR2S6tSVhy2sLqlx+ihg6l?= =?us-ascii?Q?ptcW7qDwJIcsgTN9LP3B+hcqZcH5JsAgy+sT0e++KxRW3p39W78gMhdQPrgm?= =?us-ascii?Q?8gPKwFSMstbI/tlscyHNkVSHfAB7/6CfJcIHX40ie120Ayl+OOpni5ru8Vd0?= =?us-ascii?Q?6EO87mqKx/gjf2ElgYFH7EMyYYnjNElh3jBh2WHrIZdQIAghXALeaCxnzvw9?= =?us-ascii?Q?52SN6NOzenEp1U2B2tK0A5Tffc7migRqs+dpIIG64qSjFHD4sWx7qcSk6hrX?= =?us-ascii?Q?nst8L3d2cHcLw65OKYxooTimnFHYLar3qAx0Ug356nfPxFEMPUFqmA9CpItR?= =?us-ascii?Q?4kTW8/gBuLsQtHxEO1OX23Y3Jca+zEgEwPUHRsTU/oncmwGrvuCQPX1qiDdc?= =?us-ascii?Q?R976Iysy0D2D9OJY9nGAH4OJ74NTpgt2xuNT/VWJVaYqsaGGQt05grinbgCz?= =?us-ascii?Q?2qNZ+/zu8E4h4wxfHkd/ie0IxloryGlejW4LgR6ayFyNY44HRcLT8VVozCIt?= =?us-ascii?Q?Z/8dRL/aGVhZtkzMeZPW1K/+SZ5RCOvisIJubvbKXCxpf1Ss3NhKTIe6VWxA?= =?us-ascii?Q?/cMyHnjSLdiZekSLg6HKk3CwtEFTjHhvpQsFg8OGjRWy1n+Viq43E6Fial3W?= =?us-ascii?Q?icHdNxP+gOi9Z6z77ElRJsLHJg9hdexRCiE61m86JwbhKBrt8hJkHf4bRElY?= =?us-ascii?Q?Pvjcwn0gtgEgcobdpK2916IxgIN9LZZa6M6Cs6V+wde31yl0tnYKqMoLP+C6?= =?us-ascii?Q?Kt7sNVN08dtdjVUYQA4dy67MQfmQ+wz303tode6aUs5MAgXk/hy820VZJtaM?= =?us-ascii?Q?l8jg8EsTYie86o2XAwHKFeoMrPX/Vp83M9bnnmIY3h4wae2JkEqSVi9iuvzF?= =?us-ascii?Q?ZpomsYfJTlL9NPrCZ6U5w6rOAVs/6mJJUdVAbQw9IngW33iQrZiYckYbkOVZ?= =?us-ascii?Q?U3NestihY7CETkv38ymd9Q0CO/IzFgsGp9wX0WYYOKsEpI3jds3g6fOpDn1A?= =?us-ascii?Q?AKJRoFjXlNsvWsWE6SxqY3H9PRnYylStglFmSEi0StqCvPgtAh41CbIZbTlB?= =?us-ascii?Q?/rPZXM81evbHUgj1dn0Cl14BdwnRaeXMVqxFrJQ6jLyAVznffeeMw5fTX0Kw?= =?us-ascii?Q?fttATgKmWRlq4pfHXCBsaRSZXjse0p3D3hNnxmsBSiu41GJv6Xp6rCIsg68r?= =?us-ascii?Q?nS0tFX2hBRGoLlKJcp+FI/5754jJi2TL4dc5WfUTZMvQVumdVSrJpFNcbCPC?= =?us-ascii?Q?344C2kwFw8/S4fFLKdc7uRizjknUt4CvvCU9Yd9VMEWXEJtuql4sXd/3LRzr?= =?us-ascii?Q?sR9OVyEHUcmJpxt9GjFcE+OWDcdnpEOyi+B7ZfipmyXoPiEuM2fADhyk0FmS?= =?us-ascii?Q?Ud2H2NR4MMnV8QO9cM5pKdyYdHunVlgptruLeBcP5Zh22BI8ym8iT8NdUDhu?= =?us-ascii?Q?cq7uRn8hNf3yMV4tXdnRVtCwUDVssMeFEzFMjUgR8u0JEYElMKKbP9N9fQco?= =?us-ascii?Q?WQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Lvh53C7uW1y+aCxQNRRllmteu17R4zVrXKlKLXn3Y7CvFrqSNDiLyO1N2RACwPDouZFoiFADb6yopVLM0D+NTpxcpywOyJrCNHhQvo3kqgqd2Tkr4Sut1PaX7OsX+9UtdNZZh18i11hMnvLYz0gOEwRSiVdVSYZGknRMYFMBct/DMdmUbdFvNVKWrRifY9Uz+QfwItLfhAIOnAdjMVU5VCxsxIYPfK8swa7t5qNCLVlCoVbQbDoTu671ipx6IXPXCClhc4gwIzhrhq4L4YeSIjpp6Py7EqnQ5+zqAB8+xiX8z2Ogja2zcSyZ5NNbqy663LEe7iD+02VDzDTQNRvLkEF4Kp721h1wUS4a7pVTVW5Qondeo3DGO3GyC/Ulo9deUpmSVokyOhngIOqGp3W9hmNr/BIB+mMAmhX8GrTf6F8pW7rEyCnOapeKReCitnARtXucgHacqnUgEOhwKj7MidwUlWrG+mPU2YwCttq0Idh9nVCw5Fn6W5Akxywg30Y2H9nDNzdfxFDiEm5JK3Y/HUPC9PRaBW4+rerSfpA3TZrL+Wdub2AEyAi8A71xuQsCks1UeEpGvGEykA8WClFFCOt7kapVK0FguAYBoxCLO6Q= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ea61ca7-8ee7-4335-75fc-08dde9f7ea70 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2025 08:08:35.8782 (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: AZAiuH88azHw61BFpRvPE7FAsUw6KNHj+ZJLIcZtgE11w/45yXXZDB2l/LIvmJEZRkVp5ubP47ccUB7JFczxS9a7E6rSEGslDI/q4HlFdh4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5139 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_02,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 suspectscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509020081 X-Proofpoint-ORIG-GUID: i3l_pcmPY6t64CokiGgMofXSssRTL7aA X-Authority-Analysis: v=2.4 cv=YKifyQGx c=1 sm=1 tr=0 ts=68b6a608 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=_oAs_-Zd7h5Ft3cs7ucA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfX/19/FmdJLGuR hLXVF9sH/IxwrlfrmqWbLY4ZY2xzU6xESuETqvI0G7v/tcehL5K48lzMOfHvE3wnomXvvCWv+7x dKCZnZWW/siyC7l7nQ4Loalb18QQdiIunqSuY4jZy9fw3fmk+z8NMV2CA+tdAXcTOWi5jbS4RNT 2gBTFnTSVQ4q5O94Z05HI/RKqVOT6j/0ia0xA9O5Zy0H59TSQ7MUM1WeF9Q0DwHf0kcyxw+kRUx bHAluWUVKYVaOtsCRciLQgNH9KDhUIudsGhITrTBDJ9s4R2/Umtdk/teQx9ylKv/PB8d1SE8HER Wn9Ruq/GzC8zE9wvYvszKURMGXN75PUQEB4oLJ0VVbB4meCt4FRyU+D79DNYu3FWNsAVHPzuek1 ybcag6Y9 X-Proofpoint-GUID: i3l_pcmPY6t64CokiGgMofXSssRTL7aA 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 --- 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.31.1 From nobody Fri Oct 3 11:15:10 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 2E13F2E8E13 for ; Tue, 2 Sep 2025 08:09:08 +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=1756800550; cv=fail; b=Xx8EpNUnuuLdErj4agry+nsYHscjZCXEobUGrSYxORj2yESgEo39Cfz9O1j/goaYr5ua3Y2oMrOQGWyeKdASc6IqJsf88yKP5SbIbcIaRpZofxYMBUebyZb9ApNTMpG+8v6yJDpLB6kP4XnKsh2v+GfiOSh7E4XpN4hkP5uXP2Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800550; c=relaxed/simple; bh=y/dOUzuqy6fvohTiGnnGm76eXuq/V72FlFIWkGVpVF0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=lMLNCSX0WnJ4s/Liqc/4mno3I8aeimPk4Yh6gmBzZFtAb1XQmqflaBJEyTZBs4F4JG79U1ldbFecmIfq7qFTHVWKEoXxXbBNkKJLAg0FLWe6hGaQNpmSI2nP5bBQKn/Fz/xMiPCmusy1tGp5TaqePDguey8AnNO2heV1w1mT0xo= 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=XlLQSRdh; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=igyBpzE6; 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="XlLQSRdh"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="igyBpzE6" 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 5826fnEh007450; Tue, 2 Sep 2025 08:08:44 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=eNh3Wby6z7ngc/ypX4XiPlFJRohHuZODIe5ylj1io+c=; b= XlLQSRdhkXjiGkwaArxidHYQBiqryejK1Zrm5ZT3uYL+uuITmVcRSN8/sMsDdotx cXdD3XjSZT3Fb8TzUCnCAnrk/J1zu3mtRIpn7AYdLqHnoqPYDqtGa9uQ+oGbeUnj hOJ/QuyNWIP+ymDUfXCxc643LpjY2KLTJfTDSQQadHlDnQPmJ2P/aIudlXBRFN0b yRad9QF1vdpltxLIXB0+n3f89UusEXhOlh03uQXqEdRHUDB7tfELhHXMh1tfjdZL QgcDjCA/yrXAogfwOXWZxG9/af1dJKaA88HhbOwIh1fXJQ8oJv+9PHwkt4eqcP9B ltxQJ3i+6AtZxCftu7Yrhw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48usm9khdy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:44 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5826Kl9Z024898; Tue, 2 Sep 2025 08:08:43 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10on2077.outbound.protection.outlook.com [40.107.93.77]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 48uqr8j6x2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=elmgMh2oPrTEX1TxHa87Uc0+2gyVwnRK3OteCYrqQVrqbDAAuhe/XDwGC+LXFeYSN3zzAJ31rRLWC4M82NbYOSibT/xS8AsplpEQZLpxaJ0bgXzI4NMpBWarFJMwAeybt1lIAWp7/PAZRVPFKQXmP5K1JR62GtW2wdU/u2oHreiRS+eWUywHwFAtMfBkUtI+IfevNb7xbQTMU7X2FvIWYCOfJRl8wpjnR1iL8FnVhNwgibr720/LYQbyhOpR1DV+Gd1N1Rt1oOTI3YyRbSkpixnuJ8h6bmAQO075p1qqGy9TUd88twtm43SJZnTJvzvojamBDCxZEGpM42iujx+JQw== 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=eNh3Wby6z7ngc/ypX4XiPlFJRohHuZODIe5ylj1io+c=; b=Ma8VKJkODlalM6ZzU0W+UWpIlNb8GUid6+SpIVZxnq4014anV+/ab4BnhYryZvrP9u5L98Q8jI2FDAjz50hOgN/0EgCn+UBI4OjjVZfSZw76IiW6a2Sbt9nGrcF+DFf4jBgLQ51Dkcn1R0wUCCcRwFUSgmkg9IF2yTPA7fOffqESdk48nmJUhUdcYbAjn5OYVZBmi6r+miyLlAEX6/cIlzIwsalmGEgCMZ7ooi/diLzHcW/pp2bnW9AqN7JOuCWixczmGSV7MPhQKOd+UptMjikyTVPGg5NfPSpx3HHnuhgz27GEjIOQfqcn5O9GMbz+oAJK1hTPOblNDHUvprXHWA== 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=eNh3Wby6z7ngc/ypX4XiPlFJRohHuZODIe5ylj1io+c=; b=igyBpzE61UIOt6g1hR4UY0aSJYxUuVmbgodkFMV+354usjtIzhJgKFTN7M35ovOnZcwVr52wAKjkSXsG+IFUXR1C2+cwUEJMzFLQVb4E5qjqQkrnKLrrIPIpsmHdjmW17+1K/sz7sB+gknl5lISFe1BcUetAH87k2SnXyOpMls4= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by BLAPR10MB5139.namprd10.prod.outlook.com (2603:10b6:208:307::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.16; Tue, 2 Sep 2025 08:08: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.9052.013; Tue, 2 Sep 2025 08:08:40 +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 v6 09/15] perf bench mem: Add mmap() workloads Date: Tue, 2 Sep 2025 01:08:10 -0700 Message-Id: <20250902080816.3715913-10-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250902080816.3715913-1-ankur.a.arora@oracle.com> References: <20250902080816.3715913-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0083.namprd03.prod.outlook.com (2603:10b6:303:b6::28) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|BLAPR10MB5139:EE_ X-MS-Office365-Filtering-Correlation-Id: 3a413c95-83a1-4c24-34d2-08dde9f7ed30 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?lmZDfnsrIAcoMHMlarGjs3bM1w8hWTXJGQIWP9s1BScbsx4VDoyGHt82aoP2?= =?us-ascii?Q?hdTr6vp1HQYuGezTgZ2da2BNVc7F19Cg/U/LPty4WcCz0l6xPRyeT8/xd2vx?= =?us-ascii?Q?Z4bHPAYJ3SB/zT8wu4XJ0LRgNPMDzw0+8nXA+pmUZFxNZ/rX8a4qK4+PcUiY?= =?us-ascii?Q?nucMh8rwJuzHdGhfuv6ZolHay1nocogi5eJ4Wa8LmvuFA9fVflbshn0wUFYC?= =?us-ascii?Q?G2OVH46eo42RWlMPX0OL8pVBZgz5QnMVGKs+ktNTdaVghvoCyq2tuOA4nGq0?= =?us-ascii?Q?ZbAfD9xFKihCDjGC3C6pIykfYUOz5Jj9KEVzzFcqpZMQlUIiWme/6gLNttnc?= =?us-ascii?Q?ptyHaQjP0vZ1I01yC7A6it32cIvur1NzLP9h2wuQblCnw45TesuUwcaacQBf?= =?us-ascii?Q?e1sy+l+EmD/iCKMesRZLBhv670EeHAn0LTnDFAtGz+XEjm3wJlz0HTIOvSu0?= =?us-ascii?Q?E6mTlyGxW/t8sMW0rJOQ08Rmz89/mGLa4dG4gxNzl1jyBVI5qGv11TZYevkH?= =?us-ascii?Q?S9Y1BGUbcAiUf7fm0ghC9DoA4665Z0P52McT3EXmKY9eYWBfg3l7teWTf8qh?= =?us-ascii?Q?eqYGu5+aGHyRyAoRROLtNCI3zINvwTAOl0ji+oacq/23o+Wff/X6IYp1YCUI?= =?us-ascii?Q?wFrn0RZZhY3xpryzPq0Yfv6RDX+OHDwiRk/y5u4CMpIdvpvF2ChWibivaUy7?= =?us-ascii?Q?cxAvkQL2WjMxvXNlTKCrR+tOVkXnh70k+Hsq5jtoIv7opmYLjH9XShwBmbp+?= =?us-ascii?Q?BqbfTbCrOArG5tp3nUGwNmlq2YUT39rHQ64DSJdXqboB9Z9/TjFJQDkAUUaT?= =?us-ascii?Q?cIRNWthedn0iHy9QMpowH/tWVDLW/Xh9zNt1RF1fDC2z9TqxcEH6KuUfBtob?= =?us-ascii?Q?1RGYVKyjwNiwbERVec7Svs7FTcnnIKMF/SbewdyqBfEhj5Bd+OqZPCcGoG8X?= =?us-ascii?Q?2u3JAo27mH5CBVqdF57KxQIXPqY8a+b+2n/wayE3Pmu9xbsRf9JeUnpm5PVh?= =?us-ascii?Q?tcgixGbxiXvZPXhT5M81/DtLm9wOTgjIuDpfhLHEp7JPjq4IXpzcYwXgNG5+?= =?us-ascii?Q?XgIly1EQiyM8i18UxKpR8dGM/NXU9UPhNEJP5aFlNncS8HrIdn/b2O64uihK?= =?us-ascii?Q?a7MSD4NKdWY9s6+hoIcga2cd3O3Zf9PmMm9a8fbLlQN8q6BSd+PToW6wg6f4?= =?us-ascii?Q?xOqBM7mWkPDX94KVLhaVxkNk0cy360DNtHUBxeilgQ42QpXTLpd4/ahs4riO?= =?us-ascii?Q?IsowT3M5C/7qhh6KWNlRnVqMBCD6FAZf3z9HLbWLZ5IIARsQGsVgO9xjXBVS?= =?us-ascii?Q?+IAIZD1ryXoROHTTu9ydZcRekndyD5o7yPkOMZfbNpnoSpPRl3VNz3C+EHqw?= =?us-ascii?Q?SZ/MMk32wGOTKCvP2iJHnq6uzg1wF02dYyVOGcPL+k/agEUrothx9UJVebQg?= =?us-ascii?Q?f1k5x8KZu4c=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?8+ljM0RIW/rLKhb8fA/B69AEIEM8LdHWAlEgaVFI/NnrXiVQv9y9cu5TB/Xa?= =?us-ascii?Q?jP16+kk9OPnzpdYPzv/vnuwVB/9lp50XtxEPg2HHpSV7QcjPlQRsjzPyn159?= =?us-ascii?Q?+x2AArJGD1S1qlVMpEQVSN9ohoXcOY8IpngutGo5xLctguDOTUS8FdDjkwic?= =?us-ascii?Q?PmfcMyKV6Z44Y+tl10FoOpIrjxqtn0Kbsv6HsCAqkQSlW4Vc6zqRxY00KICH?= =?us-ascii?Q?DtPb06a+AIxu0kND+qjJqyxGOnZso8jqHUFCBAlS+odOyjNfojr0d0rb13y4?= =?us-ascii?Q?G6l8n4Hgwb9FKRUKTs6B+IOv2Yg3qMBbAFz5ZP3rRsTTOl94nqeEmK4NPtqi?= =?us-ascii?Q?P6bnXJzeeAlD9h8N3x2qBbniuaeFMG1HPhvjbMfuc465Gs5hx0b5lE9QprM9?= =?us-ascii?Q?W5ZTbCnntMX4L5fnJ+6YUd42KScaQK9NT5NR95D89hxRzrc6ZIcHwwGs4JWo?= =?us-ascii?Q?O4HBRqPnuai0XStQJFBwRKThfzYMfMDaDoQu6P7HGt8BLSSBoGscJwNk9dL0?= =?us-ascii?Q?gmA8wUUXMTLGM7H2NY9ED2aiWe515XAwHn+9pJL6yc8fJv5zej6/PSzKZaCB?= =?us-ascii?Q?STzk9bUz7A8wYgW7yCSJe6Jzk3KkZ/c0Eu1+WYExhmUxeBPxLHbU4SapaEl+?= =?us-ascii?Q?vO3mkkgUX9AoIEBye8KSf7FXGHjmeYzioJKpVae4KCplxImQxpc/f9JpwNGG?= =?us-ascii?Q?6jkIVldCSJdNMfM3VF7JhBYwI6HSQykDyoObiloejvFnBc3MN4yS4Qqr3kFk?= =?us-ascii?Q?A4+dZF4N5QJ6xmiNtuVzJ1a1nMxyBG8xYYBj8t/Oq6Zkwbspzup6BzDsUBBu?= =?us-ascii?Q?FtVUdBXwgMXFadrWPf5dbUez25XTOpNbGF7WX+oh1dqYTuTAT1lRnO0zSypz?= =?us-ascii?Q?RW8TwbVW1a/vByl694OKCjRPLsC8qPv97dWG3Jm3lKXO6YkbwCdadW38JzTY?= =?us-ascii?Q?Em2xqJd4Y3jixutF0f7q5ONO69VTX5IOst9C4JDuWJwdaqS3MFpHyhot0k5T?= =?us-ascii?Q?bbAOTIp1kkKTFfWTYWjU31dOV6LJA5fOiW6P0tckIEbx/bnEKU97DUO57w2o?= =?us-ascii?Q?zdoTv0NgYZhlEH1a7ZXAqh4Do7lJAFizMgm161rmxU6Jf6IKEnLbHjv3fOQg?= =?us-ascii?Q?UaQ6Nd66D+mK81LirKgg6f9DJulrmWLsu9e1VDQ8s83z8pvRPrXAYiJw3cTM?= =?us-ascii?Q?vJxkc6rYS8sFAM4v0jfUIdNy0TG0IUFX2vmJmek+DdB+mLN45bulhtA5u+N1?= =?us-ascii?Q?FjrcTUPi9ajtVsqRlCSZpGao3R+IBKE2NePxXpSDhdROXheEGQmZwV1vhBmq?= =?us-ascii?Q?70AlMQmo5i4o+IDpGCAWJ18ETaVGttbg4t43RZ75dnRdBLSb9hnJIrjR9xGW?= =?us-ascii?Q?Ip/67hoaUeQxgp43PJT88CemtZ0NLLZD/bZZhNG9CgJJGYPrH6YXSNCAUQ7a?= =?us-ascii?Q?I8PMv898ov1sP3FdWXXRNyROLWGmN9h/EKez/thmdgkIGghvdJwE3H+i/vh2?= =?us-ascii?Q?kxUilOAoInd4CghR5W4r5Zf9IZnyEcMhTwBHPz2dAO1CPnHBvFJI3LdhwuGp?= =?us-ascii?Q?FSMzUYHPJOcuQAouaGnmyE5hwBxwwO0kQMO3AQDm3Vs8BTdpO8WE56ikFtqY?= =?us-ascii?Q?Pw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Fy+1ACSKqBHQnZEFMFYmfyWLR3aPkKfKDunQ2W4FtxY6sG+nvdXeSZDbzznSaiz2aLiqDMxJuhi+Mc3CmoL6JF4BWpuMP8VV0xXavNuD5tHnM3c0usBzoeZHYtxk8z55VP60X3g7fDdCipOpcmQQ/Y175SDVjvw7HptPQUW6cZywqE3TrstV0WMXFAaw3LBaXa5zvjuc1uOP2ZVZuGY1k5Toe1+i8ltAPMk8HNOEcnAJWZhkjGTdRGz4MTOvomdexvLLzeqB8BwqgSqOBdTYUw19681GAsOn1eRQVg2SPTBgiCVBIY4F2XLfr7FxDrODaBrIKycdX5acitf+ycGCBs+JDPbyVDRXawv8zMVSbxc3eE28rqyhwaxi3DFWbqxIN7Rd131Knyi4ECbYxywpS93WkVwyDx1IriKZ3QzYZMpK2PA/ny2POYKat0IV0sBPqZayvLLMDFdhIuJGKqEkdcCIJxSGVxv467AygCCSWQaDOQZIIx4x3vYj/Xquezgmp5acC/I2LpuqHHwsAVn6Y10nRwhtylZsWeR+6hwl6CvVHUp6ptepDmdVikUTR81S3QmCG3QGW/1v1Is6HufqGzoSZkOlQ8AMCXcHBEU/GXQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3a413c95-83a1-4c24-34d2-08dde9f7ed30 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2025 08:08:40.3101 (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: 0QxNSBdtzIduLpGZAlhqAicJHwABq9zL/IXML4graH+UnrYGFxtVV2VfAAUqMfCflaQc7LVNobgKHkMub4XTcW3X1xpEnDRCsO4k8o+9kss= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5139 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_02,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 suspectscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509020081 X-Proofpoint-GUID: gdW2f3Zg0bmZmj8euE-u3jg4UnQVgDzF X-Authority-Analysis: v=2.4 cv=I7xlRMgg c=1 sm=1 tr=0 ts=68b6a60c 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=2MWhjARPlSRgpm0SOp8A:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAzMSBTYWx0ZWRfX+9iqKvAFfoV3 Ut33v71JPRXrmaOY1nfm/RICqHiA0GCblZ6FZwf8eY3PwOSbeatEdgaBgbSWEOfCtCHDKaMuF7f gR8cDxixijlvAIwDI0AU29S+u4cM6j+boGrNxipYqxuAtt1J8FjsInoP0NwydbF/qrwTuZRhMVP y6jKPwNfE3WjydMOq54pQvbAkgG1CbpCLfNyQ8Uiz16unaZTWO9YujBYY7NLbGY+3QLIOoz9b4c jUl1ZJlIC1c4xpvWrgliTBqVo2Cdz5WgYCSbanEt910cZsG9iEg3gapTB5M95/53kW5yZMC0lWI QNkBP+iwm+zfTLnJkkXJfyzQPXa2FBb25ziaaCebq0ULgeNm2ZTEElr8i8d4k2LrFKg0/wBSFW/ jTiRl8jA X-Proofpoint-ORIG-GUID: gdW2f3Zg0bmZmj8euE-u3jg4UnQVgDzF 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 --- 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.31.1 From nobody Fri Oct 3 11:15:10 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 11E6821FF38 for ; Tue, 2 Sep 2025 08:09:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800549; cv=fail; b=leRmCt2avsrsqVIPstJSVD+x9rlnrobHBlBJOy4pp8joplTv58A+Xk5cYK13Y1Uxt3ZQcEbKZbkj0utR0rWfMSV4o/Pk7j9R1sdWvf8hhWFIG1s8jkvlgMh+7J8ZpKA8M7H+VW3/NBTVdmw9nK6JJ5G3BY8SrwY6gDGwmeYsXxQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800549; c=relaxed/simple; bh=4KSoQEtuckdbC1du8V5t+2C81APRmqDIn7NUFHwXS54=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=LTfGISov670HlcCOVQxhGmBaOWeMBfdHyzcW80x5+q1nKytFvGZEgWLjXcJFnv92TFRtySyzIPhxmEjxUqrhfBxayNDDafmA0S1Ilz8EG3eL9HCZOFgFMIy4h5scurjEEZx9NJu/Yz3Ks+svB1ykaZlkjGhSvhVQZTdZy6SCH5g= 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=C0A9bFCM; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=unpWl2zE; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="C0A9bFCM"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="unpWl2zE" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5826gb7I016481; Tue, 2 Sep 2025 08:08:44 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=xicpOFAr+e2EsHDxSJ04hSkMODZ2i0BTPMfpUbSSRFM=; b= C0A9bFCMJ1aQkXvK1Y2xi8nI7c/nX/GJrA4+YGROg50XSc78DRV7+QMPB8wJ4zBa 4E1zOIXcpWGLd93LtVxQBL9q0gVP7J8+LP5NVXalOmkzn6fmwv5N/vLcxsD+xpQj 7A0HlR5Ft9nvYYOKfnHHoZV5WdgHGux8QMDIE39BfV+DcpM53fKu87OqsU5c/6MX +NLa/N0yp6+LXTIatVS2zI56Y7BmSofNOP5egQuA+79voQSsA2pBVNeycQTSPKX3 KRM5NlTdcAIFQb+O5YK3vg36Wn4u036X80fQEj0I0zB+5iYANjxTFS/s6JJaVICf imxkgk+awxeHOal8v8vgQg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48usmnbg79-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:44 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5826Kl9a024898; Tue, 2 Sep 2025 08:08:44 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10on2077.outbound.protection.outlook.com [40.107.93.77]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 48uqr8j6x2-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PyLIO5MYLT/7+2BCvxqi4oGlnI8OI2U6je+dPKlbDt1XWMEh4KjbiMYrw7U+NlNl1DI6eILYPsYKL1wIeaj+vQux9q1hjkddLKVxymMgVWVYyKfVTeWYadxAR3ieNGJr0x78NfvgDMxA28LlJYSrYaxTRpoYDRVlXPwuHJVFq5xKr0cBOoaOIiQCm/AXG39s84WkKS/3yHE3pruOYS6Yhd58r0ylsFiI6L9FzD3PHKjUQFj7QZMh3KfNDItNvnQX7QPzJc6BQ1q1/0OYiJQCaC4YQ4j9dHFrE+tP9/m5T9cyQX4EY3Iwqq8gyYTsjFcufLhaGm1O7M3c3/eWkvNsjA== 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=xicpOFAr+e2EsHDxSJ04hSkMODZ2i0BTPMfpUbSSRFM=; b=vY3zEbrjxx2UmSEpVNzh26dyAtEn2BpbJqHkZA6RU1JJRx8rj9uOYivmKV5blBnK7E0Ls2LD/XsAqvaG8CkdYgCM1Wkeyg1Djp5HShvGecQCYHFAn64NZ0knHIy/6Gguio3BQLDPqU24KPgjGEgtnL6u6dSNZsEKCQFkuIuZ6sYaEZwsmefHzwm7n/8YEAT9aFGjism88z6eu/LtRbXBtWthqpQCp9qs2BHXiIEjmVpKXgd6V2sHN9fhJ0tx2rPl6HVtmBd17GBz/8LZ/6TK42EaCWPt2Djbb2qGNLTmyU6ALRSPsXXeYg9v+ipd/DuY9DRDirfAx8W+E5+KlT9jKA== 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=xicpOFAr+e2EsHDxSJ04hSkMODZ2i0BTPMfpUbSSRFM=; b=unpWl2zEd3stUuyCxRo16TdLOdgLN4Sn8hLdKsaV+FG3KsiDRbZqNnPIrJO32pw48WjWmuUKknT3LXs4/KAktAvQThPXqnS5peAnqqJZFPTyAA1MOzysSbIPsy3nGz7L//cxLA916/ntZHtMFvv475KMsITDwuRV+5JqI9e2P7o= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by BLAPR10MB5139.namprd10.prod.outlook.com (2603:10b6:208:307::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.16; Tue, 2 Sep 2025 08:08: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.9052.013; Tue, 2 Sep 2025 08:08: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 v6 10/15] x86/mm: Simplify clear_page_* Date: Tue, 2 Sep 2025 01:08:11 -0700 Message-Id: <20250902080816.3715913-11-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250902080816.3715913-1-ankur.a.arora@oracle.com> References: <20250902080816.3715913-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0373.namprd04.prod.outlook.com (2603:10b6:303:81::18) 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_|BLAPR10MB5139:EE_ X-MS-Office365-Filtering-Correlation-Id: 5840954a-8cb8-47ae-85dc-08dde9f7ee0d 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?hROnxQ3iNOMQTeTRb/UO5vGhSDNBWdENoKUJtbUIDJ4efOEeO28oeC7v60Qn?= =?us-ascii?Q?ptcOHrQwZ4jquCvJV/DrIUIYB97k9vUOMdY/+D7PqfyS901DtHLYe653rBwm?= =?us-ascii?Q?R9DulFr7Q89XP8Ju4jrOEM6GniwsjkkHBOJ8WbHpuQVgegMq3n6BZnM7ahl8?= =?us-ascii?Q?KDLIdxtDN/uQM/pZHrZG62jCX1IAy7fD/ugnlVg4lFw3pSHcgIp6E1Tsn6Ko?= =?us-ascii?Q?dy6tmMvVcTn8AHBIhV8sZcWmAdYPMkKGAGa39YiT09QfuEKT/NmC7VT96fQ3?= =?us-ascii?Q?CFPMEjzPyLsnit1zHqq1OMHLHYvZmZAcxy65Pj53mYfiUscWujKFdaCtt5MJ?= =?us-ascii?Q?HC3ebL2ghHI0QxoNBUsE6dQabhgfl8zW/8zSjxnXUiBtX5m9Y67aFXEe/3+F?= =?us-ascii?Q?vgb7td7XZwmjU0rcbzATNNh5kNuQVRTumwkicHwMeBIeQUvU242lFKCKcwBj?= =?us-ascii?Q?nbGcf98NGMWOEZ8l4Q6CMQjn9auta9Cy99Ko3DouSccYiGmGXV1P23NPMRRt?= =?us-ascii?Q?Mmu3Wj94ZI/3gxqmHR6sxs3rCf+SyyNGwlUzVl5m1rAgZLduCyCjD106+eXS?= =?us-ascii?Q?YWc3grrdJx/C64wm5a661UwaUamdyMZdxIvEkV20RcEstxQKoJFX3brETCIH?= =?us-ascii?Q?CPRmYF9MFQziFiPCxmoiyiaEMwsy8WaUpoaabPL78RvtDT9wA3jt8oV+YdhX?= =?us-ascii?Q?YjuCWqRvwr64WCwI7iq6ujeGHKM89ykV6aJT5eQrhwa5yshdsH2ibtYHeZeV?= =?us-ascii?Q?2US3vvf08pFSA3iH+h/bSZJEXFze1hED3bCi4NQQIXJPWaLAGGAYD3mDha3c?= =?us-ascii?Q?/Ugv2VSOkVHOEjf2bcA28Cl2m0cOOeId0mrT+JyvcGqtTn889SUO2btxiIkt?= =?us-ascii?Q?2p8GgytHyRp6M4Nq868hWXIVEQtucsOtXSqBUZHdSpCexusp563FdZCNYg7b?= =?us-ascii?Q?Dvbcfuqsh8Qnq6jl1YAViCNp2x/MZVPmJE3w5k7VOoHMuzTiI97muygQIdTq?= =?us-ascii?Q?DpOow9wCxeR+MP+ceYzLTa5TNbxJpPq2fvz87URdH+M2jLV7e6JbWcfcb3oR?= =?us-ascii?Q?FJsozJUB30Ugwn8ayZkrST+4nj5HSmoJD7wYm4q/wdWQn88S8rBxDARxdlvA?= =?us-ascii?Q?gu3BY2nVrvd/cWWWoyNXTa7KLNiNxOBTNEW8RFnPN0SjpqDvYNgmsaA1l1Xh?= =?us-ascii?Q?6fwHV6joefzOl9a08hXmMpDPmAD59UjAxzgF4INptqaYmPnhZQeey5dScbdt?= =?us-ascii?Q?TKg4F0M2rNmIBrXUHA0zeBW6/yM3MSR3YipNe5eiHmL/FYv43YkHXVQh/LE7?= =?us-ascii?Q?yC0jnrZTSzszz/79JYV7MGXN8MFi+/Ojz+aMTx3obKK1A4OVMlsVIh//2+PN?= =?us-ascii?Q?lJcAdROBiwS8Omqv53U/FYtsCcO7qczkEVoG1xVDI/vJwqquNQ=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?NYF1CAACvGOx3dmKMui5HwEhXTRr9bc8RoKLbxJJ/SzBT99bErvBebrBVj9I?= =?us-ascii?Q?+jOqd2soalrmR4MnkDfrCs5aY46UExkPN+F6CxTiEWYjoXKNxmoaAPABXDqF?= =?us-ascii?Q?WOZsLkY/HecMVVVsk3A5fWPKcSo8qG7rxovF9vp9uvv++ro2V3RQYSxLUndG?= =?us-ascii?Q?V++f8kJvYko+LJu41ksPUH68xBsvXsc05a42Tl7bXUuYCFz7KTrpGXEAZ05w?= =?us-ascii?Q?X16udyUgpbwd5/dlrNohcYq2iobEgGeN5hj/QaGaU5QCP+y/9qFvuaoDS7ZE?= =?us-ascii?Q?Vt7dnpRSuqq+m6DWeisMTZiQ1AKEfzBPW/E9e1AJ38RV6evhlG1gacuuq0kU?= =?us-ascii?Q?uBDrXzus+6OR4XJCcyKHRjH49ZF40lRRUYq+YQr2Yb36bX3DvZEc+tpLQOiy?= =?us-ascii?Q?HM9Y9Px8q2ZY8pYcuo9UuE/mGXPlaLTsmAJbh7+A1sIIWRhz341u21yHo/Nv?= =?us-ascii?Q?DluLGjpGRUzINjfQScBwgik91/RMj2jEdIg/QISShiUkg98MISkOh6yF2y5G?= =?us-ascii?Q?MJ2foWWmF43r+P6tSEpc4uV1/0YcG/ThsTL+SxFob5YBdZjE3OWoPtztlDCE?= =?us-ascii?Q?ypsHBBWizx0lGdFjUO+OeLHPYOBQGIuOSK7gcqBK/gm1Gxs542W64eZBcoGt?= =?us-ascii?Q?SwhaGTxJL1UDCfEySJpGW6LAnyQAzMcnOYpqRaEejC1bQe8T4yrAuTeGi8hi?= =?us-ascii?Q?QcMVvo7epBx1vVRZioXMoLBTOtdJ1U7hVPQLQeug/g/18Y9zjLLs13HevqUG?= =?us-ascii?Q?5c3Dsxu9238hZP4hX71lGVBdkwSD2PCBNsTjW7hpP9HrjjOzCBoT/n2eAHgO?= =?us-ascii?Q?FqSBRvmtRLTaZUL1O0BJcPKjpC09Ym7kC0C9KuTAbCduGIe/wK9MRp4/gFeX?= =?us-ascii?Q?XdWyvrlwSyGa5wnyGVfHKmteEzU9UhkYQFU4V5Wy5JoKR82U6hrsNi+gXEtQ?= =?us-ascii?Q?fgDq/cm0UzHAKlm+DvqBN6Q0ZV7gMcch1ANnFfWL430lXKnvcmKcupxuVSmC?= =?us-ascii?Q?PIPBYQryA0rBtVm9kDdROZRAH2jHmuuG+YtrgXTaO4GNqwK12ioWuKvYNcBl?= =?us-ascii?Q?rE84p0yajy2MQ6l7h8iOiXMe+Cxm27WbR/jG6aNAS/UjicrEf2JxxVlMi8YV?= =?us-ascii?Q?cD0CdMRzoRTuLDfXnu+ykv68+aTFf5rZO6Vpr+HJNPt317cnvFdprXXIwLEW?= =?us-ascii?Q?5zpXMQIR21VNyF7Ate5OV9X48B38hJnNyntwuDcvmSgyRlfeQGedmNeuoUiE?= =?us-ascii?Q?twYp0yg0gBHC9SeBZYMEiPGfVpH90gdQ9cC0NF8DQmeIk6gmM14d9z6S15on?= =?us-ascii?Q?nOEOUQTPByC+qmjKEDy3vBu5dSzETZhiUJ+7uQQAVnWB27PqbGjfaK2yssJm?= =?us-ascii?Q?TJqpPkOW2XUe/ZnBzEF3OB0eFrmw5j5LrXZqOVLcClsrJopai5X3uZyfva3j?= =?us-ascii?Q?qEHL5Gp40o9HnQT/blgMkUkadLRz3DDvS/y4VMI6K9MZnUSBwi6vzGycLo8v?= =?us-ascii?Q?Q/kzEA0E9/Pz9A+dog/nRt1ZSuBMyRZuQ2RzAczy6+lZ4J9dVOp48azEXP42?= =?us-ascii?Q?WNDraZf6eo4HP/QsHn0oeMfdM7i8GrDcwRxLAFoBiRKFaD+R9dNbIv4U5tHn?= =?us-ascii?Q?Pg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: bw6eXLxf2j7QVup1CCrm9V3oMDvQ9Z3//eM/BPTtxtyiZh/rsdxQkMEsFX8JfwzTZj3QjIIVRQN9+luHGDjf3L/scXUEWlj2lJz5S8cUn6z4/KIFYjFYwYUc8fXMpI//9K/qpe/cOOJBL/xhY5Xa9l8V7qh7dzclrXCEfyUo/mrpV6p1pFz1pz6h/MonRAEvPYkU8NHP75MtMizhvfyje0ICuf4aXERpDsWea2Ph0y0yGiUAjoejNNzCdaVb/0ww8MSej5YVEsE6++bYrrbKPZ8C2HtCrXklDTM/ABqmlE4oK0Mz1vFJW5lzjmsiux+gF3EYuhJ75rLqx0F28XTE7Tx3xBU6kYPP787cjlhcr7okCu9MqgSvrNIkyBtCh0QAPXoG+GIPwObeZKR5ewY3PkglD3J+eeVu5GdOSJXpAFQOSUUGbRH3DnfiBiCzZ4emi/7d0pchoU3oaHuQPjEfkuRO6GXT/5bOrYfgpJHaWu3RYQv4cdnwJLKNtxQbvKcw7ixr8EaKz66ms2OJrxG/VJVf/xUzgcySwMr96y6Z8hQNaT8S4W09VUmLmYhZbhSpsCFsJMEeoPuM4CVoicb7JOHeOyoKLH91hSR3vekMYqg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5840954a-8cb8-47ae-85dc-08dde9f7ee0d X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2025 08:08:41.7441 (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: yjg+RL/z9Djlpk7E6rcUjyxNmmTa+1/5hv2BLsS3dxyFcTQFdcC4L/J2tMMT3xoowghgGAzFSvLP+Vpx8Psig7M3ecIk1tpElLoenXrKjcM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5139 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_02,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 suspectscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509020081 X-Proofpoint-GUID: OdKMkfHwlY4OZGUVUyIroH327yQ3gZwQ X-Proofpoint-ORIG-GUID: OdKMkfHwlY4OZGUVUyIroH327yQ3gZwQ X-Authority-Analysis: v=2.4 cv=Of2YDgTY c=1 sm=1 tr=0 ts=68b6a60c 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=3VxSRnZmKhVynjaijvUA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfX2pIfkodYUXcg HIQR+Tlek4XDnDCycaFgEKaa9fKLskDQQivypXawNbcE//68WweMmt4yGokX1hbZZrmReL0nCyJ X0NOTZxXBqmFXiYewEiuC1pfvinOPn+Oss2c4T9dUTmpcaXAYp+lrFrmMc04VMge2gskqL9S2jf QFNiEverBGXpxLvLPqOeaG35xgb25NkWFQWckV9TGkzp4/ByfMgbG2SBWbDmJMkr493VXomHV01 u8YtOVsA2OBmo3uonhGfP17tokjKlD9CGK98vJxmYwcEr0Fb3RH6qYuAewDMpCsLily/mvlYbe9 eBy13/5H3agqWnWmVzuR3MZF6tWuPGQnOjCalzk2vLjByrmMAdZB95EGEErbPso7IOrd1TJgG97 M3wrxtVf 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 --- 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.31.1 From nobody Fri Oct 3 11:15:10 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 BAF242E92B4 for ; Tue, 2 Sep 2025 08:09:08 +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=1756800550; cv=fail; b=hpWN4lZ9S/2K8zkF95i72s8EJQBPE1Whuhy19SD19XAjAAiR0QmMON8Ezxdy7imwA57Ae1h9gSUJ2mJOEU9eydcjxvODuTTQeldva4mSq6U67dKGLD0wQSfv8N3AhOzHFIHPCSYXQRNaYXJZc8sCMZolAi74/zx2WehNzEdkKLQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800550; c=relaxed/simple; bh=B4kiYTGQPD3SgOo3QHO5VlMcEln/1EWfOVRFBwKB+/0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=na0AlxFOIw0ppCtTp65DVIvMDlJ2n1FxvYFnS2dGMCvKq4LP45VRVw9MxMOSKaHnwqFt2lNYve6dOx5elc1VM0hF7CuLWCzkF5hH+QScnDUYhCS1YzRftX0hczVlaH9BtdfP6SxpjCU7VDIVCnlL195fsRozPCdLp0xlpRwYQyo= 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=cEvG5y4+; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=gu1URsgl; 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="cEvG5y4+"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="gu1URsgl" 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 5826fgwK032056; Tue, 2 Sep 2025 08:08:46 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=h0fVgE2QNAmmfDUSmTW0YZHjzhHFeqVG2WDGnOC0Yzc=; b= cEvG5y4+ptantpLJ2B5kve1BUfh7MrMcHRyNXg6DIY+YUBatMC22GXyI3jzsICD+ 2z17hIrfLShobgEW/e1xuUdUwGVOeVxPC+hHUByr1fPu4BM8Sr/1q5p/2lrMR9+d ZOB2m7vpfG2mAC0RBDmYpkbsKpFpFlzMFRTSwhOx1Qjthc4R4dulq0CzU/wZjz8a rATMEhfIYdH/Mr/a00ArapgAG5Q0+Q/r9vb7BJOXyyZRAoKTVPSHhVmSC6WxS7kv fjjcvEcslHYwfY1o0pc4lluPPD/zd52oQIKYJRdFPO+yOuL4gHjiO9sUZ795o1/J oJ6P7gvTw5SNHC7i3n4Vug== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48usmbbeyf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:46 +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 5828067s011816; Tue, 2 Sep 2025 08:08:45 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10on2073.outbound.protection.outlook.com [40.107.93.73]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 48uqreuksj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=h4zembOdlxJyEfmBbOF9iZH1y3atCKcz8bNRohmUQ4/fNU2mzL/z36dIpnVwrKL5L4YuTJj80OTG9MzU+ILPERr/E+CIE6w0LeS2p2bDAJrT/XuI1buzzZzxt4oaLkvaYG76ckXF5f3bMQIwtH5x7pa6YpM7ulX9j1fh873ob7vtXt4WhinQrw3c7MMlGmk3TPWT4Jlsg2+vDaneiMeojpwA7ofR4g5S42sa8EwrG0AhU3mcC3aTL/YNRekePRlnfi+eR3W2gvHuQWemcizNqTb2tnhF+pMNNJbBGEI9BpnQlaWe+t3/IXUo2FWz0pvsoQKxMm6Amm8wrYHV3Z/ImQ== 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=h0fVgE2QNAmmfDUSmTW0YZHjzhHFeqVG2WDGnOC0Yzc=; b=rgUuoFWo6IS+ufF9mrfjAwlI7+SqVEP4MwJdeoFMMzsiluCxuJnryR2ZVtD+1d4XmYJNy0lI9HW8IyLyyLEtfGdDTxPJIoLuuwFnsz0uowoIgpCatx64XeRau/EUcbnFCZRzxxidP9sif8BgEydeMZJBpJ1JhGSZUWss+HtP8Pd4Bk/0HRyKqL3/qyTmRE/gR+AwLcb3WnMGQgPSjmMjfggpi2JX/CIPd3vexrVpHuEBtZoC1s0JVNrD8iWv5paS7TfeL53WMIQXkrAtamUFp317kB9cM7xs2vuadBTGqIHylTuQ35iWpmr/QSa4bGa1C5crm7M8r6w/TiJsBFsskg== 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=h0fVgE2QNAmmfDUSmTW0YZHjzhHFeqVG2WDGnOC0Yzc=; b=gu1URsglz8oHgkF62+sxH7d3leJSgq1Ar+tqPmiVf1POIxMWzEGtjTMuED+3e9lZzxH2iZI+9ohwOop6sthL2PILP3U9tTSeqCb9NoCHLyzCw7EROk8T/Z8lf1Q9t85rB4uUNFTXXIFm0py2MCXGoNELn/PVkXGo9at0jq7TTJ4= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by BLAPR10MB5139.namprd10.prod.outlook.com (2603:10b6:208:307::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.16; Tue, 2 Sep 2025 08:08:43 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9052.013; Tue, 2 Sep 2025 08:08:43 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v6 11/15] mm: define clear_pages(), clear_user_pages() Date: Tue, 2 Sep 2025 01:08:12 -0700 Message-Id: <20250902080816.3715913-12-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250902080816.3715913-1-ankur.a.arora@oracle.com> References: <20250902080816.3715913-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0306.namprd04.prod.outlook.com (2603:10b6:303:82::11) 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_|BLAPR10MB5139:EE_ X-MS-Office365-Filtering-Correlation-Id: d8e673d5-1111-4318-0b68-08dde9f7eee9 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?PC4+J5lASGQqJEHpdDFbVXg2zvNQSRFGDE55B+97bHLD2nPusJukj2R0d7sx?= =?us-ascii?Q?EQq7Yi7ifuBnfam2rnA6Xdp9U55x2z++KRjlKJ5LoXCItRje9NcHurLc8+4b?= =?us-ascii?Q?3GUC+E98JmvRvylb691yuT0K7piLRkpUJH/i4u9nXd5Gu5o8cMObQBKea/pV?= =?us-ascii?Q?sC8DrrB4RtNaP26vKYvytdTfwmgeaswwTriPG4gOIvaO7glOkJqb/qQY0Txu?= =?us-ascii?Q?9f+desvttyMT9kCKoyuOJipKNgTZd1APuHHWPDou8PtofrmwGg9Sun40F3/D?= =?us-ascii?Q?Nc+ZWe8fWyUnHYv4Hp1mhnepzqOuC+yRY3QfQyr09whypZrOu4L4FgHs6wfA?= =?us-ascii?Q?qtD5p+uEFHHnPNF3e7lTpzU3RdBlKHzVSdiPb67nPpQ+33oy54TC+HwHGRK8?= =?us-ascii?Q?7+I6TPXdQa4X565sPnw0t5/MgRTflyZMWEemwhx+znpMpZI8ek2QG4ZjzLtc?= =?us-ascii?Q?PqYuE9fGyPw7m3M61r80gxxeVhwb0gx4nASBrIBOdtKErcdNDoWEjFSeBJ8f?= =?us-ascii?Q?aedF3JpIlRM68D4qVTsi5gNnXUvI8MiM8ANaIhlqRM9mfjVsM7ujr/E7lnd0?= =?us-ascii?Q?AKHRmkaNfwWtEFk0Wu7q8KLJQMuHRP/nh7nmEdd6IYvpSkdTBAih8iVk1KK1?= =?us-ascii?Q?ROcOV40naSt7akFCUTo1HLR6LWIgJF9qNzL8V5SflCLJ272HyjjppUrCn1CU?= =?us-ascii?Q?pmTEcQlrtD8L2d4k/OfoVToaQeTTGWpoSg0s/3BBT7DxmUmUxprjwtDVIJx7?= =?us-ascii?Q?SRL4OAi0Z0fl5oSjjv7mAV8y/Rw1e9s6BK20Xa989xSswEGRbn6h3m+7oF5f?= =?us-ascii?Q?eLbY1OghfQ/X0Ze4dsejkdqKX6B3FtQn5XMGO6NaQAubtSI4rOrl1Xld0tae?= =?us-ascii?Q?HmisZT6QhGpQEzCsIvYf1wftd0u3OmMXLIORo4t584lgZ393SoNYbxUqSuSo?= =?us-ascii?Q?sL8pc1V0oHEQTKIc434rPI9v/0p4sPetQIHbzYjDyyD+CGAf6RmF9tOFBjdB?= =?us-ascii?Q?+CdHrhxihbLLmAk8qB2Om/WovNJg2r88BKy6tVzZwLFzI0b77wHR420IHJlX?= =?us-ascii?Q?O6Z3BWfqm28KS5d1TdaFkyz6PWWCIwCAgkULm0GXpmJp2qSiU+y0AW9nTgF/?= =?us-ascii?Q?x7TUbSIix+Ol5JrXFrMzLWQp/J2gurH6iz8LnkxICsp/w0GYDntI/VT3Q57z?= =?us-ascii?Q?QWRe9mzGM+ygXsqdyT4Oy9I3N69AnwcfldOTLgcR/wMNiInf+H9R9xMmiob6?= =?us-ascii?Q?EvbxqFA+/gIsJ80P9c4xc38f6YPVaBvYBKf6e9d8UjdtqLtNAKa6XKSPE3Ln?= =?us-ascii?Q?r9W9epRAycfZWkcC4WXKaJIgW6jrOA+wCmlQquB9ITg45RuQlge5opVAeH2K?= =?us-ascii?Q?XJOLB9usIa1hIGB1GB8f97tv0BGRHMGZdTQb2axAAe/SHEYZOQjMsrcZBCWr?= =?us-ascii?Q?wdtEOpn+tKo=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?5fImZz0rJRfluAlnovz7Bw034JRjq61PFfw/eyO7p4BMzJj3cEE7nBGvGCLl?= =?us-ascii?Q?vhcfafLPb0bSWsjEvOh3Jx71HAf8QolVdwZfV5b2UxLEjI6mhdhEsWipk5GM?= =?us-ascii?Q?UkmwBgipQpdVU9BdKuANmz6csQ+0nXgprL7RllFDlXrB5PblayI//jZ+rnaF?= =?us-ascii?Q?f3Ll0aTjHWZl2VzxZXTrP3+pL4OXUUyqTgsx88aJINZdqSG9bshDHV74oJVh?= =?us-ascii?Q?4RS/ajsu4xzpZInLQ6S+6kVyCkw7t0Ah0nwET6+UQFB/fd/4kWLYT58dVJSF?= =?us-ascii?Q?ebuwMXiH3c369oiIPHPuUG1dIMo1grKwcOKnGcSObSvuPz2Dh44D86Dzzsr2?= =?us-ascii?Q?QSWgRRHzT397FcLZ2EWQqDuuLtBODdhxzvfCzEbN+ERiBUUzFYcFKY2qyM12?= =?us-ascii?Q?0Epwtq4NcVPflK7Fw28RNd3mahRMUoJnYvoCt3AKRi1tkwfR5nbvpO6nQcfm?= =?us-ascii?Q?4V48UXk6+++Soi9t9Zq4jjgdMsyYmFsCPk5C074g1nV47lIeXzYheA5Ektwl?= =?us-ascii?Q?0xtrm7et4ps7MZebJQZQNSzqQs29hn/H9AtfjlvA7Yf4iSdQ/BSOVbhylGrg?= =?us-ascii?Q?hA/LS9IRqxDgqk+EvuiKvva4S8lHRTfa3flIyMIhawpf3NROSZtYOrn4qw4f?= =?us-ascii?Q?NTluCFXiV4kjDdY5hgy023gf4Vwt7b6sJwHoZ1TA2hHMobhZdfthgyRRzYUz?= =?us-ascii?Q?ytlQ4IXlV8qSyHYPyvI/Qa7V3yj/DbG/AXkx/6eE4qZfMudVgticz650Qabm?= =?us-ascii?Q?7/M6MOAKNZFrnXe+mZsXXZMsvxVy7Ujr+D6Ecrtn1NHfjbBgMqZBhadL6fDw?= =?us-ascii?Q?oEzMrE5nr0UURQTlHqGlgkqmexF3Q9raSoxz4hEpAAq1pYdarWOTy2CVSAYR?= =?us-ascii?Q?dEVSF5HQ2EhRk17p+gRKBLqOYmyXvYPbxkYfC3w5U2mdFlmAJ5jS3kcX20+y?= =?us-ascii?Q?zjmFxxsw10jZv6IsJ43q/Ltl6ViwpNnWoMt8X/bDKkt4FGZRNpSx0RgS19uE?= =?us-ascii?Q?zMiCmUN5buusXqzfhsR6wRDwO8XC3k+5pes1swtUImBtpg7dVwI8yT++a7Cj?= =?us-ascii?Q?ryOXipviMqg1/2GZbYenrZuJ7NwCWxtDwmJ9pmTVXC5qCurMZTR+MNaI7aJT?= =?us-ascii?Q?au0q5UyFTz+YV5L878kkrf0AZxAV+3+UYl8FmKL8sSZTUt1/GBBa9oFiMGB8?= =?us-ascii?Q?EbNZwSsxG/560Zz1klgz96pELhnYtXDTPmOXewpvKHz8UF7AYrFQgXVTyS0y?= =?us-ascii?Q?pzobZDBY7t7UJ6Qs+lyUi06RxxoaShmMG8RIX+vVUsvEkb/ZImyTnNqY14PL?= =?us-ascii?Q?h5bJbEHEOWazuUMURNGkB5lmGQSSuxgh/HOScbvRXA1tMgvpTqoJCMs972E+?= =?us-ascii?Q?VUHsTuVwOJt0qJFve40o8Wsww+TiVNwFRw5wcmYi0RTTIJdofhnJB60cXVFw?= =?us-ascii?Q?sA84MhGgLyr4JZx1pLHHbnV5N94eHw7Zanrkg01LrDINugty+MVf8r3HSND6?= =?us-ascii?Q?Xnt7s7LSgcWOrwGZRIJh9+XfwyytkY1f4TsVOK1Xwzr5GJaZebULhxDvBT+C?= =?us-ascii?Q?/seT0IXjQqm38CPtDr7N1Mk81e0HkqD1h2qyj8p7e9aT2KEepCe0g9p6houW?= =?us-ascii?Q?HQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: GmEp7nQpFcHOjWpRzRKzzYkvDHtHGeQcbayn1dEw703sWTu6mcmo7jEPCEzOhnuS05UcpjyS7WUQ4NxOnxU0/jJ2qW7gZ5rYmb8G9pIcRjOpGSWoqoCgO/kPiT2fPy3kuz/mdk4HEB8/7Ht85wiA11S/g6qWkUj0LWuMuG64l9Q7yg4MvJtqz88NkQdOuzJTCqGKfjtXIsBVnaWUX9QfPiBJOSmVzWJcX1haZVDYAVH6x1E9FVdAVmFIcscKxnGkRe6/07yh/Ey2GhlsS/dQ13QKQQ6hioc1c5IbAjgRTWpsgVtU4jCwt8jDzerzcFZ33HMitHHQv2UvdviIPkeNm8Y0V9yIv/rtslAmKIlNhjuaB4HCrsTK1E+Zw7ZbvU9EB4oB0skyOzsWLlLmPzgfUw4o/7uFCNwwA1ib+Eo3V2vSn/y8JccksM0wiZvnzdr80YOcTDWEzvro7Q9mbfyuw+8YxOoTmBFEpYXIM8o1VERRAvlmJMuSmntcAbiXndlj2l8hfgMxWZJnE0Sv4wr06vusWBLd1beOKZFlWLwbxu+p9ROedD5Zchk7TqZ8KlmCluCaLvYeoVaSJ+s5mgi/25L9yXmj9pmpQvnsJYCFN4M= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d8e673d5-1111-4318-0b68-08dde9f7eee9 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2025 08:08:43.2672 (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: 2xOc+JVHdUlG4iyUGOsKHyYtk1n2gXcHoOsy6Lhz+jQGQqxvSDQyX8uKIIUI15RpiVL3YeKNHDjL7nsFIYN2ZChkh2VP99ENpc+0ES8NADc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5139 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_02,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509020081 X-Proofpoint-ORIG-GUID: 0Jb-lxxl221et8ULHh-w1DGyajowfusM X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfXzSCPJBsgwWGC qIYunKqS4JxBgF4+1RT1IvNkFJuOUPazRHYBrMgCb943NRGS2tAgB+wheG1vlWWpJS4u8mC+E+y 1rqspHcXkh1wQ6K8H7nDu1gtk1kdkR4oUAzoECMFH4cXRNgJTN0VsP+niJb9J2OMIxdtnkAqaMt J9RiG1/rB2egJusKAlXRsloh6MfQ1INQicLn8C/uT+NUfzWKtrKDuM/rDGJQdFD0EyMca1pjJWy 9H0iDQjJGulZ14S2iV6qxSVzQoNd7w3/fLbJsymB9x8/Um5LdgDutXVdeidsf18gucnv7g5mq4P nPliF8GBeD0HY7xzR//zQkhllz0qI+dukFeNkHUm1gBA8Yit49Pfwmgr4U9tsUDSRtkYiBkksPL htRXa1ecY7wI4qfV+O81Fk7sSo3bCA== X-Authority-Analysis: v=2.4 cv=KORaDEFo c=1 sm=1 tr=0 ts=68b6a60e 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=7XdPRqDjOAPL5xnB7twA:9 cc=ntf awl=host:12068 X-Proofpoint-GUID: 0Jb-lxxl221et8ULHh-w1DGyajowfusM Content-Type: text/plain; charset="utf-8" Define fallback versions of clear_pages(), clear_user_pages(). In absence of architectural primitives, these just do straight clearing sequentially. Signed-off-by: Ankur Arora --- include/linux/mm.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/include/linux/mm.h b/include/linux/mm.h index 1ae97a0b8ec7..b8c3f265b497 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3768,6 +3768,38 @@ 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 kernel page range. + * @addr: start address of page range + * @npages: number of pages + * + * Assumes that (@addr, +@npages) references a kernel region. + * Like clear_page(), this does absolutely no exception handling. + */ +static inline void clear_pages(void *addr, unsigned int npages) +{ + for (int i =3D 0; i < npages; i++) + clear_page(addr + i * PAGE_SIZE); +} +#endif + +#ifndef clear_user_pages +static inline void clear_user_pages(void *addr, unsigned long vaddr, + struct page *pg, unsigned int npages) +{ + for (int i =3D 0; i < npages; i++) + clear_user_page(addr + i * PAGE_SIZE, + vaddr + i * PAGE_SIZE, pg + i); +} +#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.31.1 From nobody Fri Oct 3 11:15:10 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5D0592EA17E for ; Tue, 2 Sep 2025 08:09:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800560; cv=fail; b=JSHbLJaQu1mD7XA+9tOWFTVC6C6U/qWXdV0HPe51mHxf4qWVzWOrHoyij40Kl38Ryar68doBVv9+ArIFAXte4Q/9m+jrcgVzbk7T5W5wPYjnKg2fLTY+u2ybETMCZAU7XPBwmTs68xcZ3WYpiLr1ppJMLTJ35nj0vieYtOVlrB4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800560; c=relaxed/simple; bh=zxdKxtQe25JhsWdzD3hNR9eTLtrFFmWHJMY/VSegL98=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=kgkFUVFvnb81UeVPPfJScEc+TzsiwulmJmrBPXid6PaFEl4GQI4spjdj5OAnmTaoTPu4L/6W1f8dEyEa5COiI7gQYSEagzu1qdUne4KwVMRoq2MXjHLZadoHZ5OafRf0WMaf44UMCXs18ti3fGSNylPtMN4EOqhuSk46uSigDI0= 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=GP5Rdzpu; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=QMhWlgx4; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="GP5Rdzpu"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="QMhWlgx4" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5826gGQp016311; Tue, 2 Sep 2025 08:08:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=VqoCzjfhEL2rdMru4TewvuP/h1Vc0PiNXOp11ZfZ85E=; b= GP5RdzpudEVUJPWqysEknOMHZhlH8un/cNx1IOVkqjJ0ZFoav9bZqp54iOMPX8hL xQCrOhmnZ0wRmdms85PpiF5VG+GIsI1ptiB0da1x20lom11YhFO/4SLYb2kEA1yu F2Ro19UbhJOJMbDomJDRCQdHy7MEDUOuTi7ztI76FBrTsZzExkKe/ZKVh9E0npXH EWRWRwlXRckVP83tmB07w28+9b55eHzUbV6Gq/AUS7lLvyW9QF+AGOEAWHNVo+u+ KXA/xRKFhzsqZbY0Uu7qMDOk4EVdECrFm8C6GEuJH+Y8Pg5vZfNErbOkEmJnDrBw Jb4OphoioVfKSUEfsZFQiA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48usmnbg7g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08: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 5825ukHr032302; Tue, 2 Sep 2025 08:08:50 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10on2044.outbound.protection.outlook.com [40.107.93.44]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 48uqrf3n3c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=W3XkXvhMcyEAaiRfRuFR8tryLO0/aAPN3vosSUCvM3XEfWUOYmSQKT1d0qMMv7euhZmfVZHH5GhryOvFgixq8pab1emTDSI5xYxdnT2358gqsA7a8XgxFsSCdCwdGt6SDPMsSFgtsrNIeNO3XwPzliNiv6jOcQkTRvN5+ejtH0TSw204Uakidub0RWg50GLCIziudEIX/kE3Pqexrri/Fi+gRvjqgjFCrz6EPqLMBJAq/IcqJeSW7jx5EROGQqhvbAlsq92Afgc8q1y/Zrgj2gsxUaFVA6kC2daaZiUmI5CKefwms1OvR1bkOEytk/0rj0pcvJ72+xvcZa60IjmVRw== 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=VqoCzjfhEL2rdMru4TewvuP/h1Vc0PiNXOp11ZfZ85E=; b=m8DYgGGqgt/PGQLu6Ga4NAqUgavVLOlx20yVQZh24nPJY1TlnTjaxV9NfQo4j7PS/5PcOhv+Y7W8yRmGRwTYRQt8PJbVH6+hPxre5WpZpOR+Hb/hE/UiOSk9hWoa/f8dnOhsRPbzHyCIbxuev6ekIP4nM0VNXfxNXs128+dLYMx+KJhIzI7gENELQSNOfiLPseVWT7ihZkdy6U5pZUqq6jG0AN/P/7BFclVlbkpUX9LX7yKnQo+3bbCUzLbWz78PdYii4Ak4Z8jO6lBf7JM9Je4hPxKDAP4vx3y+lhyJ/EXrk5nFac1oDHCClAQJWb+UWN3HW12dFDV2D7ywHlwLTg== 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=VqoCzjfhEL2rdMru4TewvuP/h1Vc0PiNXOp11ZfZ85E=; b=QMhWlgx4fIeaG3UYfvO504jneXtxj0+puQv6M5oIEsNogp/qQSh4VUr8Fp246zcAR4itV1fJm1ZtBr3yHnqD2l3NCd3jojMnTQLya/aZpTl8rlm/mBQiRDk1qumS7xwJs3o2BQ3R6AMWXRw9rVeyzCtWWzXw5a6DPzII91SiMog= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by BLAPR10MB5139.namprd10.prod.outlook.com (2603:10b6:208:307::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.16; Tue, 2 Sep 2025 08:08: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.9052.013; Tue, 2 Sep 2025 08:08: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 v6 12/15] highmem: define clear_highpages() Date: Tue, 2 Sep 2025 01:08:13 -0700 Message-Id: <20250902080816.3715913-13-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250902080816.3715913-1-ankur.a.arora@oracle.com> References: <20250902080816.3715913-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0330.namprd04.prod.outlook.com (2603:10b6:303:82::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_|BLAPR10MB5139:EE_ X-MS-Office365-Filtering-Correlation-Id: 20168ac4-8b07-4a70-e2dd-08dde9f7f188 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?nnydAC8fx5y6BpI2uZ1+C1CVSN+jH+ZIzOylAcDY5/yX+upZPG3E5qwlqnJM?= =?us-ascii?Q?rKoAQV0FFBJvJslhPQl+kT8TzldgAJHbBUUbhbowUtxTDaHuo5pCVQzWHCBM?= =?us-ascii?Q?/LTBpp3E6KByzDUkbVVbYnMWW7Qg0G75UewwV1iy7H/po8TvwA2qSyI8FvON?= =?us-ascii?Q?BTam+Y/tapKaYF7lnJrqf6aaL7AgcLSo3EiEIgJfqkDkKLOD5NZ7+7OWqOYj?= =?us-ascii?Q?CKdyqu3M1VRx0CwTxI5IAd7eZnPft9PfNxIvNjvBRG5nMHlhbpBxhoSJyij5?= =?us-ascii?Q?AtIPAu4pDI2vzG7+KYGEDNRKywOdb9RFIur51Imf3e0uh5DNRKKqJyhDvdE5?= =?us-ascii?Q?fTkIB+WpCMUNZOxqdq8SrwiNNPlgv+Dnsi4t0SeEEODc+1Avf4clL5431BVg?= =?us-ascii?Q?NEQcRcUuUtM/pjEWMN+oLIaROanszBAxFIwbxTEs/JtlmBqSMO4yItPDohCU?= =?us-ascii?Q?eVzP2iO/+Nq8UqRZDCzv4bA4MTCaY5pu4pgrOr3A7x6Pq/R3bRp4lx4OGFKq?= =?us-ascii?Q?JAq/eGFLSh7VMOnTYRtYmDrK55zahertjQy/0UT2BsoPF+RkZXM9Udyz6uGa?= =?us-ascii?Q?tgj/XKCL7XSmJchSwdPvCooPQH85TAAbsZ0SQXvfo3BR0DpTxL+mZCvLebdB?= =?us-ascii?Q?wvFCfu+VVOs/0ShunrSSCKwfSlwK6V3By6MuLb21T6ksTMbJb+/+irGsf1hm?= =?us-ascii?Q?0153YzgRkYaj9ebw5BcthPuVmseLq62TxkIB2rhZvWpV14en8Bl4abNsfDdJ?= =?us-ascii?Q?QL6tvzfcmJ9ZqVRUEx/EpaZu8TWNpL+gPSHIpH2TH1kYcD7IB1vbOBSUh8yM?= =?us-ascii?Q?60plFzv4bJPkrsQxZDjPISjNK7Awhe3Nqo2cd1pK0Jud/D09XIhjFAxw8SKg?= =?us-ascii?Q?dBfr9nqjWoyAFubhJDYCUp579d3ECb+C1nqifWm9n2g6nUCcmH/OG299X1wJ?= =?us-ascii?Q?dHPMk/xLlgTTADjoXj+JeLPf/53tX9lVeI+6x+ZnS/b3Zv9e2eqeKfAf0G5g?= =?us-ascii?Q?3b9vsvcInAzSVNq/0Heodhz3Zxk6uA43+Q6XSqDlCmgQ576m7JVLy+AyE9zJ?= =?us-ascii?Q?G2rwo4YGVHBI1FDcMYRpbmtqKikGic4F7p9iIUr5xKKJHysQjIqOiRDg7/r8?= =?us-ascii?Q?T5NZ2QPymYAo7GM78vovYV2gbvmfzuci8Rrl3pdPcqGGwayENpOHr0j0aBsk?= =?us-ascii?Q?xS44iFb9J765jrJrvTipIANUs/bMvd9ixWFYwQGTZOAdcUjI8eB3nHJXcAhd?= =?us-ascii?Q?2QVWa7xK1l4NqLFgAXNBiLBUb2JTT6dsIfLWb5sIB4t4P+dGKL196CyhdjS4?= =?us-ascii?Q?5DXtxaAQI8Q+6EkAgYfVl4Ua1k+0Ymqfc3Il+KOyKIq5NOeKhYr8bcG8jdpe?= =?us-ascii?Q?71lyEVeR9xNoddHElkWMmY6cNT6tI26Z5y7n6a+rwmh+XHomqw=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?vPR4BRiGja/8UFKVDbIhdhajIAslmuXuY07BCT30nBfpbJ7LawB26x2lkZX7?= =?us-ascii?Q?wcjdy5lfxrU4+tiLOXW7sNYQxFqXmKAjEkLzjRg2Iw19ome8oRaGXsgc1iEm?= =?us-ascii?Q?a72k14nM6W6FPxmvHO8/B9DTszY9tJ7oqVR3IVnG5v1/HW+KSHHycR1a49Pp?= =?us-ascii?Q?ZJ+qTmXniQlbPOD9A6Ch6qJGow46z9gB7BJ4rw2agm1bCYrVokL1cOVjlqAY?= =?us-ascii?Q?dystqanHwzBWmwe86KarFQYo3fRxVB3Jf9qC5uoCRnj5Xd9molfqKu6kCDFH?= =?us-ascii?Q?mC9yNmzFTUi+xET00tU6V85PDO2Z++h9hSeeUH6PCVljEMUwrg85HFj0lyJJ?= =?us-ascii?Q?6PmCp/qwhykSPU5iFkWL2GnO/VMyA1/uGm+BxRFE76XnDdSv+/GkHo2x0RDO?= =?us-ascii?Q?3V7VX7dS1d/soizfAGnpObo601b7KaCFnCIXbsyWwnL08w7b7mYC/J/edeNV?= =?us-ascii?Q?O6zY+AtJVRq6OYbq3wIoh1sfmbxfPd2mquSZOg+BkSq2MigBc/Dt5LR/Tpt+?= =?us-ascii?Q?CkFiwlYxU5dpmGBoYiHUuQI6PifmatH5laFTTLuogPuz+av+DsDdcjlv7TsY?= =?us-ascii?Q?2MkVNOKNf6ME+il20A9K/HpNKWxSduDRuw1IG1JuWa9j3WovbcrA3IBe493c?= =?us-ascii?Q?BgvExdhjUYHZ+G9CeqjwkG8yPBHMZ8NwVoDCM+ULwILKHubySK4TTXJjyVjL?= =?us-ascii?Q?5hWsJnKbjlrapBvEf0h8cpf0NKGS+ni1ZBAJtfKT3Joys8VSJkRUl799UOiZ?= =?us-ascii?Q?a+21/OBKAsNvK98TmbHmKdSc8AnMsqpIE//iXS6PGZp3MmRdHtjIXx2oglBe?= =?us-ascii?Q?D08xVLXrjRd4vW556zaKOxXFMMvZ+LjQ93VGXi8wTp98gP8l23Nln8IlGm6V?= =?us-ascii?Q?pVXFh5/U8YUBkYbpSD/9gOZlH0R66Ql18IARB1wQ29ECYoBuhp9b31sRlSji?= =?us-ascii?Q?zMzdS4qYqw0hPPZSda1hORWK3qrb9/1TnrqaEbqWH79p6MHeGhUg6L8sg2fq?= =?us-ascii?Q?stsn7R/E3B9+VQXuYkH6I6OlsCdtuzlUfhP84ozMKVuShP+d7/dXXsGn6Z/N?= =?us-ascii?Q?hvV/eKzkbV2+4yQxgFnquemfA0non2rnPvFZfFoz5tITI4Slbne0aHUWJ8O2?= =?us-ascii?Q?v0650Fk7Br1vFC0YdcAIRfRu9WkWXCzFiBApstWu6sElIe7NKorg9DWZQt7l?= =?us-ascii?Q?9OFv2euWeT2m2t4WTiQ12nnLoyjj6JiSUcWR++PJBbETWDHLd+e8kocvNOFe?= =?us-ascii?Q?oTz6hYrR7GN5u3+SzaETsefao81vTBzNx90yNBHzGbquxfOhvykC14DnTJZL?= =?us-ascii?Q?TYaI/XVyztP7hCMZ7ncbFB8m0uxGjp2U92cXgo+iNw0sug8JDqFOqZhvzvtP?= =?us-ascii?Q?AKfxyy5/rKHrZveIbhsg7cknUcx9HOuv4u2sDXI/E1pxjO/dT53A9EGl27dd?= =?us-ascii?Q?uogS9GEV9t7b758a8Kyo0nbnOut2VYB3nAxuPcu9sxO6682Yjwl63XanrNUe?= =?us-ascii?Q?EHM28UDP9lyEzgTK8vB9a7PNk/54eEQvcKV/UoC6WGYJ3JfVZ8FHBZJl+9UF?= =?us-ascii?Q?5HHeqnMwK+lfHcMNZLHdfWmx1qibLWyfw1/hMKIym0Rx8IDg3C2zRCCpI8lR?= =?us-ascii?Q?Bw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: fK1aiwcMSPtuMVEz9i7j0IR8e6KSqDrPcDzNL+cHprOz/oeHy4usQw4iR2quz1GUXNKaR28WTzllHbIM10/Evnagyvb+t3jJoB/f1WFf1WXbamXShYiw6XaUEMvKXnHHjNuK8cWzmZZUg+JHR2iyu3X5KfL9srNgMMFa4I97wssZb4PUHOcFty7IeukqE144bzMvXY1DvJl4x24RcJEXgkWdkhdD0p6DOwOQkKQ3C4JYhmSdMC3Y4B3P9p/wu7X9MA29H2upRiaGsZxnnJNedw4NRYFOTai0jq9xiFkBV8BqyBdR+TfLkDHHcl3E2PoJElAvg9+gIsTvkXFO7boVhV1nSNgrGJaSkBO+IV1+WaR/Ncj0t5KjUang5X2qoF13bGXGWApoUl/z0K51XLnWuCsE4argcdoMINigAXxmIN7Fqsh4abJBKk3OZ9/NdTfV/ehSYhwLOPY2JTyH4xraNOQF14W4voYiQN6iRII5SBuwYU1z5F5wfi36oOu2DCYX0CMaGCnInHSz//LnBZKroZzPl+3Gh2HI+oIv34YJCyHR46dOUUfXgSujd8qjjK2pwSQBqUp+SPC4lgRaJOqAn7UuaAsfEUB//E+LFa6BQ9Q= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 20168ac4-8b07-4a70-e2dd-08dde9f7f188 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2025 08:08:47.6203 (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: Ypz9bgBwZKIYWubHwornk18OI+2nTssc9DXobEHePHu9PQ0X8Hwcx8HLTjCnNqTLASST2j+ew6hGY3LyovvvGiQQTHwv10ijJv5TnyC2+Ls= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5139 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_02,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 mlxscore=0 bulkscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509020081 X-Proofpoint-GUID: PDTeiw3jLgAg4aLKQMak8JQm6ggNfMMj X-Proofpoint-ORIG-GUID: PDTeiw3jLgAg4aLKQMak8JQm6ggNfMMj X-Authority-Analysis: v=2.4 cv=Of2YDgTY c=1 sm=1 tr=0 ts=68b6a613 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:12069 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfX5ktpEREYcSAI fxmt0Fe6i/Ps7naHaADKZqn9mDqp9fFl2q8XghOqbC25IUrM+J/289IM/wbbiKVnmiAtI7hp9ca gRxn1cLZp1FHwSt/kvXiVbxUb9PDym0Bq1I7bX8Ib3nx/39xFZyi52YWHdX/hzs0e7h6S2qbW5K koVfZM+6DHOE5nm6cX3Yg/3N8Ip2Ncs5wUtqr3/fO+VBpy+6hbQ1tZctbibmom+KGTInFCUQ3gT 9bQl1py2iYMr+lbyb6e9LI/5sw9LZbzO4tGB/5xlE0/LQuQf8F8wtykjOdxX/34DfiZrSOy+wSN iIlIRZvJ4KGwGOTsFWZu/KqziEQNUfCtfR9G3GZIKbLt/gMuWQQ1fTonVLuYAAiduF0NWoRQ4MF vv2Y6k3ZRKN8ClG26Bc8zEtTpOx7bg== Content-Type: text/plain; charset="utf-8" Define clear_user_highpages() which clears 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 --- include/linux/highmem.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/linux/highmem.h b/include/linux/highmem.h index 6234f316468c..eeb0b7bc0a22 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -207,6 +207,18 @@ 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)) + clear_user_pages(page_address(page), vaddr, page, npages); + else + for (int i =3D 0; i < npages; i++) + clear_user_highpage(page+i, vaddr + i * PAGE_SIZE); +} +#endif + #ifndef vma_alloc_zeroed_movable_folio /** * vma_alloc_zeroed_movable_folio - Allocate a zeroed page for a VMA. --=20 2.31.1 From nobody Fri Oct 3 11:15:10 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4D68F2E7BBA for ; Tue, 2 Sep 2025 08:09:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800560; cv=fail; b=jJNRBo6cvWMhzjyVYdVAk7CqZqXixFsjlH96Lz8TDfD274NXd50sXzbhySRdIHEstv6g5o8pZhIKnG7lNq+WxZM1u6hGlY+L0pf7cawRVOkBSYMMtdnDFEyhg2gIbmULhqIkjopU4byiSpJytAi49UTutXrV5bgAYKE6kCERby0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800560; c=relaxed/simple; bh=ML/4QE13ssXcfVIjf7yv2s4yqFr1ZDvkIRgF6gFzddA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=IYa84NQHwU3PqbxXMHerhAFE99fcIQnIfV2WG9wWy9oejbdeba6AVQa0Ke+/zS2+kqbkitSYtfoNFY3GPNr13NYpUg/WM3E3IkSg1TJfVfBqhw35GYrzt9i+2fQGTf7lvHzR0wy1fa0TbPScF5OOkgEA3Emu0AOY7yqYJrCWUgE= 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=Rj5R32VQ; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=vljWO6We; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="Rj5R32VQ"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="vljWO6We" Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5826gcbk019854; Tue, 2 Sep 2025 08:08:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=v4BKSTjPl8iRjzHEz8B9Ko6+raUqQeHz1puQrcx5b4s=; b= Rj5R32VQukEP6WAZF5euMQyrCfDPgyBUI6yBgK8pREPAnmi4dtqGLe7syoASiLnq wsU3n5Nguh0BEYxELBZghaq/0CL77rvuJT76S198JqSdmYnwfvOolcurgOacpp/f oWmDw3W2W5/Uc6uFEsGL3d0QktzNe+YOhmT7A5aLObegST9wJupGsKTl7fNlj13U a8vb+sHrRMgWQEO77w9v4arpwdAfoUzjdPMsT/92tW4O2XX4LhCVYQ3DJNBe+/jd mk9R8EE5tpwqM75t7M75rrptjysFS1YQmtydiTJQSUut2fKTS91LVRaCfL4Rnifd yZWdEQCE4lZlLoGK9s8fYA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48v8p4jxga-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:52 +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 5825ukHs032302; Tue, 2 Sep 2025 08:08:51 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10on2044.outbound.protection.outlook.com [40.107.93.44]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 48uqrf3n3c-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CuaVRsVsWRB8UFmwf7p5K+DDnM2RGFjU/jTewvXysJ0ckP9OS3hbD3WQBquyMmZM5bziuWHb4JzSdzFLqarbvNmjq96afgWlN7yMcZU+1S/z1N1aNzy/T1myeMZieGoAH2Amx9K5kojK2KMRI05uTHIEIy6NujII/m3X+bVNJrwi3vHOD/d1sVkdSsMIy0/PA3mOrtsnbreWWnqws9Q9tnjp/ATIi83XldWhjXZ9I/209pTyaonCNPypRLDvhGz5rzHxDkPbtXvNqSRytFrY1StnjJ2x7VO5M+P2b2IDaiqxagEfT0Mvq7JukWK3TULxg4PcsUj6QW3eBKzk/RXTng== 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=v4BKSTjPl8iRjzHEz8B9Ko6+raUqQeHz1puQrcx5b4s=; b=KLI77YY+4ymvCSivHrbuOm7y9RcGLeD0oPcJBE7vBCt+RNBw9xmBvYX0So/oeRf7d/ROq7XXTcxckgTX0lN/3HTyeMavfXq0PhZcPz9/fErd5cYuDzi7zimvEEUD08oVx1NWxtolkqNCaAN9KzwYfxaOHbOfMruVEOhrM73kMxl9BnAmdUrnEcSZdd6E/Xz908Uzj2Ie4WlV2mkbB6ZJDz3uuclEOzhLgENhDfQG2CgR/k6qmry/k1LtFtU7THnuoQuMn7QQEUFWgM1S/OUef40faSGSmJtxEkALgxQQjRPw1DfkTmEndnvRvg04IKgxuSVumsydtZtCOPQ57jmOWQ== 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=v4BKSTjPl8iRjzHEz8B9Ko6+raUqQeHz1puQrcx5b4s=; b=vljWO6WeQNQpWK15jkOtgppODaoQat9kh5lOAMHUE1Zb7Um7oxMapst0eTT7lAIGMcqeGY9A61S7EEpm9fV5aT7mUr7hYzv06rL7hRXcEfUeKgjfnW7xHGbT99nEY6E2+sZgzU1VPpgkWF0px4UmSt0NJEQ7D39lDaW1gQQ5Y/M= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by BLAPR10MB5139.namprd10.prod.outlook.com (2603:10b6:208:307::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.16; Tue, 2 Sep 2025 08:08:49 +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.9052.013; Tue, 2 Sep 2025 08:08:49 +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 v6 13/15] mm: memory: support clearing page ranges Date: Tue, 2 Sep 2025 01:08:14 -0700 Message-Id: <20250902080816.3715913-14-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250902080816.3715913-1-ankur.a.arora@oracle.com> References: <20250902080816.3715913-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0326.namprd04.prod.outlook.com (2603:10b6:303:82::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_|BLAPR10MB5139:EE_ X-MS-Office365-Filtering-Correlation-Id: 7db6ece2-a305-40bc-969b-08dde9f7f250 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?BBz562LPq777vF7VxauuD6snoH6NFt0N8yz1XsdC6aTEmJCbP/Z8X+YVl/DH?= =?us-ascii?Q?kh6GDIb52s3+iC1MkA7J1Vm3zYv/jxZPTgq0gxxzGiczndfBbRSgU3uatU/k?= =?us-ascii?Q?xWOoGJeS3d5KaR7yItxpCK9OPcdCDxD3eyJJd+osb4uenvlNiufa1V+Izh6X?= =?us-ascii?Q?oA6XJ11fLGxoM368d0d1XYVmG6hDn122YDenqadBi1VNv98+qg2s7kfwPxcK?= =?us-ascii?Q?sznsaj7otsDCj8O/Fmqy8rdmLSACpFtdYEdB0Ddby7cwiHTEsxGT141V5GK4?= =?us-ascii?Q?pm4G0TSdogWSqNe70uvpVTqjiVUIJjJ7H9h8i2uIo6Zd0ant2z68m5Vf98Mj?= =?us-ascii?Q?DXTySDN/of6EPnnwsJcL7/vr1eHbgsGbYCKDK57oiiID1z8awPMv0NZe+yBS?= =?us-ascii?Q?bRYwB623jb5i2hR+UHPZUn1Q5KLTgaJNkvGpOQQbOhKvkNAMvLxPLcVDcInc?= =?us-ascii?Q?DX1A1MTMaG0bTFk3AmpM30U/8mXbNaMTFGXhNOEfHni5ic1AQ++Wbhz3Gfod?= =?us-ascii?Q?0MlkikMJonZDki7qE4e4tQt39HF+iZ6ztH8HUpCo01svhbNiwx7loxszES0C?= =?us-ascii?Q?L+w5N06HixZfPpRaMbVFejTJqaLf7WGWHPN/umPkZyvj2oJSLca6PFyDKOYF?= =?us-ascii?Q?KIi7HoRXjwBMfKmRVog6lg9Xj5/Hst+oeQQFWnn3zvnENOWCreTW2vgWBhVE?= =?us-ascii?Q?1HK5snP95hEY//BuKjo3+dijenvQHKCgbHCjQWiTgDdrCMvgEqJfzp0veqV/?= =?us-ascii?Q?muwTjrBxJegLPZNKHOEPRLA2dwEMt6wFgvnKIlQVwZc/vLOKUOkIvVZFsMZG?= =?us-ascii?Q?8unrcoPMD8GzE3/Qwf9U/9J4NcWuJvLZ3jQq5vUI0h5VCNBTQZxrz6xWpr/T?= =?us-ascii?Q?+UPLKyn1xhRyBZFcgerMXzX0zEcRmuzhEHEC6oa+05NTeVFdK20ppWFoCgGK?= =?us-ascii?Q?RN8h+SzoJISs2fCT9U6oUOr6VxFy77Zb0hdL19XmJlKmHH5jQ1aee7YVvORp?= =?us-ascii?Q?RYBzxrtR+uRq2zx8kXx6xUKbiXp6sMWSR+7KFY8EtUM8uHNjIKYpMekLv19r?= =?us-ascii?Q?otk1SNxLyus1XIkWUzkbZA0iXWkjz59v6bjtOLzrB6CeHU/bU2n00Y0yXMof?= =?us-ascii?Q?mIPJb+VU1jmlSHPwuicN7U4JoZApxnpZurcMJpbC5wYh0hw//itCYh5m6R7T?= =?us-ascii?Q?NvT8MYC8QXINECWMlbuuDftURfPH+Dh9cK1A6XpPSHmW+AhUX+klVRuWdIk1?= =?us-ascii?Q?ChpOx9dkA1uAiHLMGQaqioHa52IQQGy1BD+tJqRzEYuS2Dvv4osmL64XCVcR?= =?us-ascii?Q?Dln/b5DPtGHhfrwgWWei8Y/AGs9ZOWgrxHgHWt96Lcmog0rx4NF+rJ0tAD/f?= =?us-ascii?Q?ZTC5eZvigoVT+YM9YoltYyjN9jjdlm34P9UrXULXtgOrV3SwnA=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?6jCT/JjAZkM2TEs7XaHPpHZyPb2w0kahj0cWVK6dF1u+KiAkaLY9Tp5Sg/K6?= =?us-ascii?Q?ELwZ2vU9lmXSnvzow/qURgA4Lae2bFKqqDoVdlGatqF9J7gnTBMOGSmIeGSV?= =?us-ascii?Q?N37DhiALvczS4TLGDMx03Zf8IwcT/DtfPEPazjsqnGfIvuvDLII/X1pvI3PA?= =?us-ascii?Q?G14yGz4gLw0EGRn9oFubLHdo3PcU9F5Dkq7QScmKKowyKuhvraJvye3c8YVK?= =?us-ascii?Q?iodZDftLkKufmAtBgFcFM7ohPYxLe0UwvvFBx46S6ibWyn+ri3MoceDx+80T?= =?us-ascii?Q?qejgT87O4VOuMumNvGrOjBKYz7eGQ5xsGUmja6sK/5l5h/MpmTH0E5y/Pto0?= =?us-ascii?Q?NTdmgMAX2VkAa6vdBxcuSRm/iCr6DdRyJsDv7WEfuFsQS4fbyZkp/41aD4ml?= =?us-ascii?Q?JCtL5JsrsBzCnbLcH/aGcS3GMXNq44unpj1RyAeCi5/eIfR4yMnj0f/zY49R?= =?us-ascii?Q?WtZFJMIvyBEoz3j+bh33AsQjStiuefoz7JA7IMK+suBshK0Dkz9yuWK7FNQe?= =?us-ascii?Q?6K88yPnBAQU2R3k8mEMnQozrPd8zxOiWiIdfJQHd8VGDr4EJL7txKdQh2+rf?= =?us-ascii?Q?iXmTim26hTnXoiVxJrw1IClJN7seOuUMkESSYc+F2UxdvrgzaLYwFvTX1Ul9?= =?us-ascii?Q?iM5OXTCiSHn2hkvEbBTRc6Y7dDVdBZmlHV/ZB0GGdl7ETXkGumRrOkzlQgE0?= =?us-ascii?Q?2dSJLyWeW8bwNLMfAO00HvVLziDnCrrc17ypuTaCeY+i/R86px2cNsEiij88?= =?us-ascii?Q?TxnmpGZpk7dnC5yAiO5qLspB/+V5nAjh6eP0G7SoXfGrLtcDUshyqK1rp83i?= =?us-ascii?Q?a9BKqsi4SdeIic4adWxyE54SAX82SLugJz05k8nETBjP9roC+eTrpb9yG4dD?= =?us-ascii?Q?KTFctOdQoITQ9IhDOcFNUp/VAmLnAgn5g55F78LucPlcM8qx6fe+/d6rxOdO?= =?us-ascii?Q?jrggyNwclU3jIVoGVFwIFcmIdQjStGhh5c7RwU9d9RLXr5B15M9BCHrwHGPV?= =?us-ascii?Q?xevNvOCylIP3/8mRLO+8KB/reFKRBTeDJ3lT+KCtSD5x79p2BS++EwGxJWDQ?= =?us-ascii?Q?t7KHBvt4Wh6riXk/viPoVW3vD07KM7W0JKtB13G/2zw90LZKLBAd+nyBQ1mn?= =?us-ascii?Q?bzSqjob8wN1PoJ+qmK2eX8H1Wjbnt6DyX1eUrWAOxDkKShNN5d6k80wCU5WL?= =?us-ascii?Q?/CP9/vx0L8zBWfLjaTRWKNXeCRfYthbCyH3CX3m7qyJNoW0x1bFHlk+lfdhf?= =?us-ascii?Q?DaTH39k5Hdd/K/2pmydYdVZN0ctd2Igs/r14rfh5TRiS9eN9g1nQ7duUzD1r?= =?us-ascii?Q?haQAqiewVJhNFlDJGrOOaDvRr85AZukq30n9SjA+YuiZW0jr6HGzdYl19JE9?= =?us-ascii?Q?pf44Kc9xW0sI3YmpvPcMBVKXZEPVU6GkK8tks9/POHoq2eDPwUNUH45MhJXI?= =?us-ascii?Q?SzgDiG6+ZiKLlaHTPJWmsJqStgU5eYc/hLkiYoHLOZ2+iDvXyyfNPSQZeffl?= =?us-ascii?Q?KZBrZXSw37g/xDTrI9iLNmQk1vB4dcHEDuLNEbSJbZgS0q3oqaI+ZJPc+iwf?= =?us-ascii?Q?k13K80Rf6pTf8RaMf/PXL8MtfGA4gpoaK8zmWafGNHp5ePuDWWItym8b/inH?= =?us-ascii?Q?Pw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 7uBypVOMfcJJ96ZyJTXiSlSnQQeQNxhCHC4IGeOkprRt9dt714pqU5+FuwHXI+ANZJCO3cfNjVXry5OWG4qU2lMA3fX/hPZXYmt+aUzttY3kkCMXx/6qUZ/uiMkoPA6xLbxOYuf3DuRGzNcdWT4xOznEukwCCCb+9ythlhcn6lLGUk/bjPJuTU0mduQgHNO7+Pi2dDSlPjatfPjzec4P+oA+ZdpnWuJ2cdFSoZuRha8F4mSC27pB0C6U2eYEgpoTw9q4Xggk1jwsLEY86SV1WgkDmoGoEVoxNSQ/K7apasBk6ZPD8SszSgcwjhTHOqunrpeVIf4E+Q4K26rzHZGG0YYZ2vXcFtYE36oODyzJex9piWaYrUGPWXR3Rkhl1QiSv+HED3lkej5+0V0QWq74kjNV5XqD5/kwhz5We0f4fgBRK+ZpYxe0Z1XTTjx8j8UJH/piV3VBW794IGlKe1hqcwO7pj3NXvEHhG9izzVv2UylvpGnOonogXA9qMc++y2nf0DO2mPvEadK0FRWWiENWf2JmCoUZHJlSmpKGH7xOAms8pnd6uih6nVqp0+U4HJMhCvz+B/HteaX4gQdDxw4jsJR04BN06hFXpPk4YJU95w= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7db6ece2-a305-40bc-969b-08dde9f7f250 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2025 08:08:48.9503 (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: mqj5SJUD7lGnweDIq87Qu8Kn1xQtLnggOEZidKkJhYgPal50GELJkyVd8pVifBfxOTbx5QCk3xxMLUVshP35BufoBwLNadGFJ3jmf54LLd8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5139 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_02,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 mlxscore=0 bulkscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509020081 X-Proofpoint-ORIG-GUID: VNSjNORUExRITuI2LNixWIJce1d_EhcR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDIyMiBTYWx0ZWRfX7tcSxICSvimm LK0NaF77bP3J5up2r4YdMwWHe/MlR1HS6m9nondTRYDlB5PpoYzdOnjyKRyCRxqJwsqABaDS72H hqc5Y/3Y99pGwVjwEJxffCXQRYvtdkBes3Fd13hKwwV5astJWdOoOL0wjP5NJALsucjmgz9+yc/ Aod5/fDPjRMMO8oXVsFYd5bi9NGrEqSMMq5reGQ/wbNVFE0fg0TeKDocP8bF06RunUOfjfItoWu vYIyCbCPjTcWK+3tCzXfabDg6cJv/lfmyeZ1Jqx2+fyInWG6whnL2LibDFF/UnL19sYNTycwlhA E2XXwIke0VQ9UCFtfKHbuSCNrnZBKse+fjcDcB+oIAW8wJwgLMA8zt21j6k9kjzQJGoGwUcHhMB y7e4rNNNkzPIImdhLbjjyOBWdSEjSg== X-Authority-Analysis: v=2.4 cv=doHbC0g4 c=1 sm=1 tr=0 ts=68b6a614 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=D2IqL1M7U9ufldF9pVwA:9 cc=ntf awl=host:12069 X-Proofpoint-GUID: VNSjNORUExRITuI2LNixWIJce1d_EhcR Content-Type: text/plain; charset="utf-8" Change folio_zero_user() to clear contiguous page ranges instead of in the current page-at-a-time fashion. This, when exposed to the processor, allows it to optimize clearing based on the knowledge of the 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 is relevant when running under cooperative preemption models. Limit the worst case preemption latency by clearing in architecture specified PAGE_CONTIG_NR units. Signed-off-by: Ankur Arora --- mm/memory.c | 82 +++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 61 insertions(+), 21 deletions(-) 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.31.1 From nobody Fri Oct 3 11:15:10 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 9FDAF2EA17F for ; Tue, 2 Sep 2025 08:09: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=1756800561; cv=fail; b=iAzWoJdmaUTXWQOsVa7gMUH4xvuSrG2K8SLFx0U6Zz66nHZRHKzx98EPUSlwgnHGoDU+4oAZ7AW3QJp25dK9SxdlCPrnTAFzJtD/+tMXltHB+YIi2ZVwkWFYjJHTLimRwTq3DhIRHjSHVoNjDVxtlXEBuIurKx7fqs3Xc1MFc2M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800561; c=relaxed/simple; bh=u+eOjkHYhnJIQb0aLc5Larhis/wIehEsFllXRCkvDCU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=DPEFniaa/5KuNz3jgzUR4OU1T0Ukeo/7W6xLU5nqxuXtobDRuvoq3WfpM59q1pLjYAqOMEgf60XpTbohVwTczFn2tm3e/mJtQ02SyoyUxW+s2rfMSBtWw9RrlZqfRugedfhhdxD0Glk70JN71gB5cYytXAF3uD6BmYrt0PPV+qo= 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=EXDsYR0a; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=VM8ACx3R; 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="EXDsYR0a"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="VM8ACx3R" 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 5826fjWn026302; Tue, 2 Sep 2025 08:08:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=UPWg8IaLCGkrS/X2oPVs17aaNpSGv/rcwYn5unoSWaY=; b= EXDsYR0ai9yGc6iO77O9gb/wgPGQF8X0pCeEHoIM5Adz84wuVz2RgHpyubCS2lQ4 0x5CnZ8dGmWOCXmbEanX9RXRI6nGihLpHYWbtjDp02Lgd3yLE1Al87fY5v6amh04 yqena3daW8jsd84W7XCea+TT90l/1poyLczzdxojdiMF+JuphPaV2scX78JcUKqc WUitsMnbVHqM4i8YTWdzNBlcQ0kh6DPF03O0+pwu5SNRyrFRipdHrdxe7cGTTTQh gYkuuBUhEuZe9Y/A/jLrOtDQadf8UkbSQMULO63CdSMBY23Q2ILq3Q4iDQ49ZD86 /OflufU9hGRWwItKVF9Nwg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48ushguf98-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:58 +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 58265DfX024980; Tue, 2 Sep 2025 08:08:53 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02on2084.outbound.protection.outlook.com [40.107.95.84]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 48uqr8j726-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vHCkEHwTestNeljwhXuLD1pxm22BAyhTfTBxEV6+NoNfkO71S5qxzWFd3KbIogZvrTwQRnTJEIth+WQT7lCcY5wiEAgoPkOEtfqntJPVVTPHcUzONQXSSHNskvprtGvKGKbXi4Qlckh9AOfYFD/UF7WAmHnGh8DZVdmtzFUtHNyYhqhBthpDoQSX41/AUiHgNG+Yz+May7YVLepmbPWHJdlv85HYOVnzpLNl8qmZgcg/Pa8ReuMuyAmqGvJL6gSqEzKecARWvUO/6ZVItQ7P68tcjr3dCIOihJCbT86eV3+YHxeE3MFHaPcvtQMbCUx82Eej6vDUVPsHEgQ/65AQNw== 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=UPWg8IaLCGkrS/X2oPVs17aaNpSGv/rcwYn5unoSWaY=; b=EHY+EMkiLK2EOC6BoWpaJ/gUTM09eQgl9ZqZnOR65V+uwK33BCi5b6nv4CkclGSFDBNyJ4m31tdKCP144JyjLDGXgzOl46PJ7XIHxzsStUuD9DGjyStcK8DdZUacd2/0FVe4qDGCAUPd3L2ML39/O3iPstf9QIv+c9lAkr7nHnw/3LCrGsB0KfPl7q8//vsgUbmHXknO1yArI5aFwueRhseakS7ICCW9Yb99KoPVuvv3f4VbXrEI++irFMyKjHRaglpAEYOu8HFb5wNqbdGFBxFGcqlke5yi8DMB+NRhUILMwhxbnuskTGwrL2QoSETMm4jfbFjpjnOS85Rpzr6ttg== 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=UPWg8IaLCGkrS/X2oPVs17aaNpSGv/rcwYn5unoSWaY=; b=VM8ACx3RqR+J1bKgvQmm6uGoZgqwCRO/uieZeAf/vYAYFWerrTvfE1IZWjaiWWhqXajOALunH2eyxuUMN397eCEp1yZZw8DJ0I7F58IOYwzyUooDSVnDpNoDA9qvc+iVL/di7rXfvVlWLua/87IOl2/W1uNi13Kvn9uoGE8TfkU= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS4PPF6ABE13187.namprd10.prod.outlook.com (2603:10b6:f:fc00::d24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.26; Tue, 2 Sep 2025 08:08:50 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.9052.013; Tue, 2 Sep 2025 08:08:50 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v6 14/15] x86/clear_page: Introduce clear_pages() Date: Tue, 2 Sep 2025 01:08:15 -0700 Message-Id: <20250902080816.3715913-15-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250902080816.3715913-1-ankur.a.arora@oracle.com> References: <20250902080816.3715913-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0127.namprd04.prod.outlook.com (2603:10b6:303:84::12) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|DS4PPF6ABE13187:EE_ X-MS-Office365-Filtering-Correlation-Id: f4d11626-9ff9-4828-816c-08dde9f7f32b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?gGwwijXGUn3eYjMml29nfOq8RiWQ1h/Jll3kM2jvyFrsFif6+4ZDntkergqR?= =?us-ascii?Q?kkjFASmggHKQxCARbOwOAXOxBhDSRorlMaouxn6wtKFWH2ade04MBCS+cbz2?= =?us-ascii?Q?yBotEbZYLT1d6HWvt7AzZiXSOgh9f5/aECya61pP5S9f5JmeQo/zrgmb3ebr?= =?us-ascii?Q?BSlNeL2AyXYYIHa2JQ3my+2RKBMbg+xKScIYlRNf6BOOJJ6JC0p8irYAyzf2?= =?us-ascii?Q?+2l/GnEtXi0PoX9Ncy2YjDo8nQdTGVfmCrOjSw9MbEThVPZEDa117OWYdpHn?= =?us-ascii?Q?5MJOEWRQY7D0lIdhVdKmcFGTPr11eE4WF3xyUMWHKYerO12KlG5egpsE602k?= =?us-ascii?Q?MWGS7ZdjH0pZ5mnDOHid45PMMYxKQZ0PAv9LPFmaj10heCMyEFUhRUvHZP5v?= =?us-ascii?Q?ZRZjRML/JJ1SGy8WW3pXgwwbg+KEYVig3p11lNLbanXg7U1yr9qbmqpXazGB?= =?us-ascii?Q?DFlt1ftkyDTTvzz8aEW/KMp8ydmg/2E/1/YcEPNss4agTvAUQX42//BBNQ39?= =?us-ascii?Q?dzM7Dhw6etSefrboo6xaFxy3U8Hm/CHZGzvX6n+Zk2n9BLBUSWNPm4Hi+WY2?= =?us-ascii?Q?JJgOxZiFvlwqsTJzseKVs3cz0B1aJh8/0QbMFHYTqDZCP/9Mw3r1R2TIuHBZ?= =?us-ascii?Q?AIvkk9ThT27Mrb50ePtM30HISjAdQWKJh5XgDdkPZVt7NjqFek00+46O8UeG?= =?us-ascii?Q?RgR2xYaOnjAFFDoyWcwlj4gtXjgsWunQAN1HR2GoWvoIXFT0L58dh7e6qxna?= =?us-ascii?Q?jMMzXO9tXXyO/vdJQMYO8/qnevOFB0zdBUZzsAQmHc2v60rP1xznggNti+hq?= =?us-ascii?Q?DMaeGqYQSIe9Kx7cF84Swz0EggyzwGr5oG2Bs3FsebxY5En9AklJzewZGBA3?= =?us-ascii?Q?cvzMhvxpeMPySfAvPA/h0K88qWb6QQBw/gfXmXodTvg/69W8GY4cfMTvvsOB?= =?us-ascii?Q?SKhhKAvj0xCv7xjCHa2oBNzyQyEJcd3QCRi/r6g5Fp8+yDwtone4ma5so5Bq?= =?us-ascii?Q?J7OH33BKhw1yNkUL4nDpeF6x+O+MMMG5TVh7LrFaxkx737HhgN2f8uIVMJ2z?= =?us-ascii?Q?4vG6uQF8aEFXmSCQ8X+JSqwL0KTunN6ccQmHxwR6EVbyReW+hAhXtQXrOrLL?= =?us-ascii?Q?a1b9JdJVfT13/uKNbm4JiISY0RLH7+yjxaL9230sfwy3fm7z5rjMBWna+EzI?= =?us-ascii?Q?7jC3s+McWDgmrIEmZhghHabvtXjtWg+818AM7TP724XxC6saHnqVD5KRdib7?= =?us-ascii?Q?oCaRnue6wkAZG020t6Pu6/9ghN+FcmtSAPH5WmsJ4ZZGOjBKjhMG3eLsV/sm?= =?us-ascii?Q?gPveRLZX/+FbUKBqdj2JVejtixquAWqKTPsIOReig+12nwSZ2AJ2ooD+ehM3?= =?us-ascii?Q?6u0LABvVGQDZUe7tCit2QrCR1017tC79bYbiUqCbszU32fh/PGOhk1eBkukv?= =?us-ascii?Q?samrrkli6uI=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)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2rHG/Pv7blcdoawDYfiGInclL3+BllQxm/vq7oXIFnpkyWT/e7vGzWnjelPQ?= =?us-ascii?Q?+8PJBdfl2lxa2NIS556Edxy8x0C6FjQh4jFVqXVfBfYVK/UNHVttoWsnEazN?= =?us-ascii?Q?Nrk/9QQxtFLxdpI6zsFKhgXdmMSmKSQU2bkZhZ4HUskv+en5YTvFeRD0Pm+Z?= =?us-ascii?Q?CSF5qgpz6ZwpyeKxQ+g2pa3fSJSiqvfYqkGNmFU4t9WwpH0TgXZdKycJ2QPe?= =?us-ascii?Q?7yLwfQ6WaTxpcFULakUlD/suW0EeJr2QL4zcDAfuEjMNTinQOetj2QXJrLNN?= =?us-ascii?Q?YGiJLkwv+TZHMDGp40mNRpWGy3kXfUhY/cEc+unjDn7BoTOimrs7uMWewwq2?= =?us-ascii?Q?4wARCORNIJJFbGdad8I6jXQI14YaYE1Yr0tDoJH6XGyksCOY3daAchgYM72P?= =?us-ascii?Q?zLbVJX+Tgwi5RMg7aGsfg8Hm9LOB0vnxMVktsnrw037o4UNjesa5Pn4kefcX?= =?us-ascii?Q?DCBLLM9h0w2C7hfpOvgtO3mHUX1e38tv6ypearT+qXPpftuDhqrC65hfg1kb?= =?us-ascii?Q?whLoGzZHN2ElCdCrLPjiqJxU88W/GWJMhhb5XNv78pdwvuX/C6fH0YKk+SrY?= =?us-ascii?Q?fFosfNWHY8NOUz69WfOCDDtA5gK6/iudEokUHHjn1jg36ZpIlxwCLp0O3hwt?= =?us-ascii?Q?4ZFBwXD1JeFJc9KTLzD4AGqEjha2Abgq8SzB2mJLVqHLaan0ueRnMnri4q4D?= =?us-ascii?Q?SbUMKUn0b1cBgBGwEKzXe3IunDxd+D8ovUrMv2UQvX23CtdbqZsXiq5Zf/qe?= =?us-ascii?Q?KhwhjYVhgtYJm5tQddYuRO51glxRRzY/qa0eWsbFDROXW1cDZ124u84MBgWO?= =?us-ascii?Q?zVXapzQqMNZgxBHGIgBgKHBYBvykCX8CcYd7p9MY1pJ8skX8RRiAjanauord?= =?us-ascii?Q?uae58mv4Ec59xGZG5hjOSVrYSkn9bEo8Ti051RP3MBUm3VGUpDEDPmuZ6g5i?= =?us-ascii?Q?37QNdrtH/HzbokG6uDQEQSo8zlR05P4ug8UjVzGm/tYGjU37jpSWp8O8Ft/7?= =?us-ascii?Q?fF/FidnZMGwKoigfXXCaYDRl0Xyk414aYXj7+q8+PUHpeSYNbL3dWPHU25Uh?= =?us-ascii?Q?qwzXZIcK/F8EVZ9MV9YqPyFXCR4hpyHBUgIwPCyLwuzqCx3eInxhUm2PFTZY?= =?us-ascii?Q?2t55gF14ti609K5ZYdaz4Ydjse+qGUUcQRP/ZGkamP856wLY+I4HIb4NE26B?= =?us-ascii?Q?xKFsn5eLnqoWkBW8eTpesFkqN67RxtpOYWvXHbuq4/W4bjy7BhxuhrHY1DYF?= =?us-ascii?Q?LMNYq8y4FsgPiwNZr887lGkHR0b9b3SOvnKzHULKmglWy0FSGJwS46NMf/0B?= =?us-ascii?Q?IR0p5TAWHUgA8oIzzitXBLT6Y+r/NA8h8MCzxx9RSM2mwBr5kO5MdoDqOAqU?= =?us-ascii?Q?xjr47JTghgeD4NBSh6ejA/dLArHJax5B1SwmyvebeIzMEZIhuyCYdkVUqHRs?= =?us-ascii?Q?kqpRXLaThWJXG2pFHcDSCn2UFgqLWONgG9fyXhJCTubHUOjzMYCXM+08Vxh1?= =?us-ascii?Q?8JuG5O+dE89+00UuI6NG8ZnDdH4GKhAcTuI20kb/3RQvmcZaeZ6001tTgO4N?= =?us-ascii?Q?fu8kQam5BlTPsnZqIj3DdlzXZ41f0MnizwjQr6nbSef6DdSG9F7WMWVtDBCW?= =?us-ascii?Q?BA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ZKM+0t7SJkN33AFlPazllPWwe4N0SUBtQwJrkmfgnDzlqH33NW9lbqR2a1+VU0CuSSXCtiFQEHSm8LwcSEG7dUUGn3ih1i12orJsz8C9STTbBIMJu1I5cCPKpwwerECYAczfIxSm+JxHwvAvuRKXJJm9kKpbQSdsorgt7Ig+D1XDEoLLMULGsIhb8Z2NQCKZPawUpFRfj0HnwZLFFfQT2+0ItDbsGbo2Z4e/U61bpwFD95NPj3RbL2x+bVBW9Z6RHpPxT3kgy1SlCCfFho1N/vtUsxjI6WY3gPZnrivmviLav41ZuEmV9+VkiZw6vCB+ctOlruZ93eNRQTIPj5b3IP803zdPDLqjqQPqWSjyt7EglAoJkWMLAo+uu4eRYx5eJM2WN4ZPQ0nWXG+WHB+apvSdTxqwsydkMTRnxoRnzuQix3hkPqComEFx1H9N2Nh5oqxehEgA9zLRQObpP4rQIFZ1wxKmU3bEFcPJrMMrHf0ovLYEMW4UTv2jUxTFEcX7JPXCdH0pfWV3bUn3M2wJzEWCiqgkNlik3qnsDgUdTBge2yFrKUnJtVjGPdf7oV/0wFlgftOPLAJRc82iDrjtkRU9BIAgOAPUctXRthyvnQA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f4d11626-9ff9-4828-816c-08dde9f7f32b X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2025 08:08:50.4465 (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: o0ERLBidQCVNs/EeCQevuRr307Fs7F3feJnVDQKoXhItSlw90xhHPKyidG58Itm7YiPEYNHbc+NJnwBlV2BaMA66KZ/Ty3QRj+0xN+p7zbY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PPF6ABE13187 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_02,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 suspectscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509020081 X-Proofpoint-ORIG-GUID: 6XKz3F9jXQKGpDaEYCmH6LmzLsRXaNg0 X-Authority-Analysis: v=2.4 cv=YKifyQGx c=1 sm=1 tr=0 ts=68b6a61b 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=M8a9pf4_m8jl-BS7tPkA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfXxbJnkYuJeinl hRDUyK3oWlACv+VxT2YsWFwFtco/zmQ8YZJZA2ClpV4xDs/CP2gyGpG22ecWdSdNYpRzB4ejj2G 0FOV+lcVzx7++BN4kuhgGbISETdRNcxT5cNMjeVxpQH15vTCwmio7yLnNDyZ5WdYEI+tgriZuQO t26Ld/fBOZydhNoq1jTvqpHaIcjjZj9SLw1UJtZzjI742ertb4/xfgJtZJoH4KsRP96HW1xsI1h 7XgT83uzrAPHK++HN8hOtSQZ1HqLrH1fNwycXjKEvFqhS8BwOJKx3MJHZX3bO09453BPCcxLuWt gmYJrAUQlfk8kIVQ1QD/XJBNhBqLw9DTAWIQVeQEqwSZRMxO2hh1O8JA1FbCjolboTLGKMgLVum qaeMAIe2 X-Proofpoint-GUID: 6XKz3F9jXQKGpDaEYCmH6LmzLsRXaNg0 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 --- 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.31.1 From nobody Fri Oct 3 11:15:10 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC9B62E8B67 for ; Tue, 2 Sep 2025 08:09:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800566; cv=fail; b=eLjZ2mWNxnpMtue7dRWsxYpT+8+vGxuZz7S2QBeurBeZoKgCVxWNdZzvpnkB0o9OZAz1ocU4TWuYG0re+ivlMD3nOIr1QNdGBJY3j2aqqaA2+yfmPiffOo2g8zmcz88Vp21EUjWJRcveQ2KHiXdhiqpPaBNQRMveF5WBY+dLEZ4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756800566; c=relaxed/simple; bh=g4NhTcLhkLSJbhI5BQRdCxw65oqcyx9n556Mpn7nENM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=MFSdyja0aVCP3jCbJBKhzWUvjR19GeeUqLFXxkm+QaF6Z+GugIBx4jk5QoEJ8IzwQKIlZb2var3zdciks24isLnr7BXH+LBFENtOc5OQNRNiisubZ0c6KesuIMsj5NOZ9ion1CU7s4jnsZlP5J8UlHMK/linEnJ7+dKfDYbllqI= 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=Dzljo0MV; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=jEDaEJOI; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="Dzljo0MV"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="jEDaEJOI" Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5826gPUb019768; Tue, 2 Sep 2025 08:09:01 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=/SDUnN10pLDKpi1WX+Zwu75zuYNE7Izw92sYYpgVfcg=; b= Dzljo0MVewMLJB65yRZwv19j5JIHgjh0wSHRx6lcHxf/U+RtLFzBTXYeTcx5eqY5 +c7IO513FOHbG6zQxK9gwFCLODaAfHYwoJY4MGNqtNATn43R+ZF8VVrpj58Qn2Q5 Hk2oJCPkF5dTPX1AmUWQectARXH/cDczkm7nMgce6OhQSEE2oo8eX8jqu7qtyJL8 j1RhOQMyteApuE+BJLK0f9ed8RkIAEFWHvGl8ruvgfsCy6Z6OYJmEay9I8A2mY1H 2p2SLe7W9aF1ozJq0yq6NEHhFbXFIIzyG/NP0oKHyO+Fau2vT3LJrzwgKNIs0cXt jiH5YopQfld5Goz/oxmmWQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48v8p4jxgj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:09:00 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 582810a8028674; Tue, 2 Sep 2025 08:08:59 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02on2043.outbound.protection.outlook.com [40.107.95.43]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 48uqr8uw86-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Sep 2025 08:08:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HbyIoBQoY2oDQYTwHJI7WaZk2rsNc/Yg16QfAijxHRLhGTD6w0bYvYbRSkTSNnaDwdGTt0T/S6zwBvVFmKqSZOd/6wIh2IztzbFwU9atJyAh7c+EJHq4MyZw6mEiH1W0Hz3bouTaLSWJjcbq4zkDJ35oxLb8bSfdGg1WCyjdkDWbHbAgOmKiDb0MrytJTziky0Gyi4TCxlpJs9QqEkZoLJdM16selR19c8P9LKmF0Kkd49F0AQfmpBQkHsnqYH8XWv0e6pmf4Akd0zS4La2rrY5QyaE/I0XAqpEr8a0w5asrS741TPjp2C/rEwtziO/zhLaeumpDvrosmVE0qTOcrw== 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=/SDUnN10pLDKpi1WX+Zwu75zuYNE7Izw92sYYpgVfcg=; b=tdaRMnGQ5k64KmNKutnr+aU1x3SA//wks+5xHSiqxeHGN3cY+7KtOwIWHQjrZi89ol6C43i6zrmYwRSj2IJH+ByFVxW4JCtfiRW06DAuaI0nJmauUmiK54qCIOkcOuHf12mu2OkzKW/D7OXwZFERcwPa29N8YDjemXwOFLRIjTYTucxSELbJ8gpRnRAknB1Y05XJxRl5vJZi68e+JZCFxQu2UHdu7bZzZpaMhm29jdiXEF4tWZ27QM0W7ITK0iPA9E/Mt9rpTX5Ze/73v2GsdYw4lWybIxkgascpEpdh9pGS4EuxVzVcD3VsUl7Epx+xaa8WOVtOewPBj3uLQ9r1bA== 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=/SDUnN10pLDKpi1WX+Zwu75zuYNE7Izw92sYYpgVfcg=; b=jEDaEJOItDZSk9QNvgw99gprlWhLDeR6UEtYRcdSRs/AjVFwbvIyj28VUYVHCeq8N7fsmHFNRA9XMD2dc8X1WfNIuEWbYH0mjKLJ4Pom1ze3CmHSw2nQTT4sRqjxcsXRDAI997PRVWFFXgLsRpZqWngLJdJ+jrjr/rGQYjIzypU= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS4PPF6ABE13187.namprd10.prod.outlook.com (2603:10b6:f:fc00::d24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.26; Tue, 2 Sep 2025 08:08:54 +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.9052.013; Tue, 2 Sep 2025 08:08:54 +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 v6 15/15] x86/clear_pages: Support clearing of page-extents Date: Tue, 2 Sep 2025 01:08:16 -0700 Message-Id: <20250902080816.3715913-16-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250902080816.3715913-1-ankur.a.arora@oracle.com> References: <20250902080816.3715913-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0111.namprd03.prod.outlook.com (2603:10b6:303:b7::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_|DS4PPF6ABE13187:EE_ X-MS-Office365-Filtering-Correlation-Id: 00da0ffa-2f60-40fb-8ad7-08dde9f7f5cd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?C0woRDkzW7tuEdr1lbvcFe09zaXePH9pZMvwtZKwdib69k1vHz/6Cuw5wGIf?= =?us-ascii?Q?elrNhJZDohq1jcfq8yKKadT0iuHg7s1YaHHLuXXsolYWY7vsSqmqtrROY2vz?= =?us-ascii?Q?MyF/TZQKYAHGcLF+uCktJc2wnTo+z5/9d2oY4T2x+wSt1BPFD6IiP9/LybzE?= =?us-ascii?Q?kIgp3hNCZqLoiFgqd+VnGDsdgsz4lSFBF8So6hy0WiuM7IcoucZTCqD63fj4?= =?us-ascii?Q?m41DxYwPFXQWrtnWvPVsgey1sSwbK+y928a/FqEeHryYVQzuW/Jbbbo90K60?= =?us-ascii?Q?VusrllDYrsLoQ4RhWLOmz2JKjQldpgn56AJe4UN+ai2O7aeizmGntcE9aGLl?= =?us-ascii?Q?LlrG/bhwtMbEf3aeUeSuEX0pr+KYxfqzR/nnE2DmpACr6uibbozjtW5k8dar?= =?us-ascii?Q?I4NZRscKVBCGU8ejJh5NSPhkSQ+DHAIngtF9IWBWO00SVFpu0DZO4m78PVWJ?= =?us-ascii?Q?sHdo2FHZ2YJU+KUGlS5e/Tc0Z+Vq7doCcWvEWs3RgV2MRF9IOPV+L0TDSjdy?= =?us-ascii?Q?tiRcHzHqJyaibG/lQXeplvLytfS/P9wBZR0GP+IiH1Hv0a/z+pkNVyIq4EAw?= =?us-ascii?Q?5vEcNoNHkQaRJ1ZVGdLJaeRo0S9w4+Q69YDYmn52dmMGJNaK/nFpYijerfVc?= =?us-ascii?Q?ZtXELRzrvw/HLiV5xzkevSIBe4A3Ymydi2F5Rtx4Qkl8awHkz9XwkrKJdAos?= =?us-ascii?Q?OEphTQ5uNWDBurHXbg9T9D+0sii8ed1UJlZvnNtaq2S9p7qbbb39raEC7dSx?= =?us-ascii?Q?Cn+DSZ2Cq/WV0FMYN0t2VfGYS7i0jIcBb4lsQXyHSwgRXwPW8nKHsaAFFwmL?= =?us-ascii?Q?sfsi39b6VicHBi1tH9Ts0yF2b6wzMmmmtQcyGktocb5aZAluTUagC4IChE8M?= =?us-ascii?Q?uMmms04NUd5FbMueS8N1rIfAPt1s3GfWHhY1SnWo1UxcborFW+dBW1cpF8DD?= =?us-ascii?Q?xE9osa3sk9ud0WfszF7fIRJa59syYGAlwwYpltUnNNURMGqlqpXKqvyMsZOE?= =?us-ascii?Q?V3rSzNaJ5goskrVhNh59S1NYcXlkI6u+JaT0CUvFU2mEUYsTgXCEVTTulhmp?= =?us-ascii?Q?yfA4hWaqfz39ALtG6GueEBjTv3OyjhVmPWupdPziSQQmGi+OXcwdNfkke/JO?= =?us-ascii?Q?WHdgxCG9GShBAE+pvm8Ufameyylhs90dyufhR2jvmuOXjdSOuHrWZv8eJ8rC?= =?us-ascii?Q?L+A7Ym0A9ak2RAWW3SBeA++u/cb0ANpefjTnUM6R25zFS/JXjwyb9sTtejXq?= =?us-ascii?Q?8IZ/RdpCHQphRiuBiKRlCmlkJGZAJ+BpmgqV14Vji8oixi4jnMYTvrOytROY?= =?us-ascii?Q?Qsq4Yjm/TmQ2SRhfTK6jSOayyR89aobvg8FjaSXQv5I8snFBgMK93a55Ij37?= =?us-ascii?Q?zrnjw0dntpytxaO26HvMFlCYE6NAHA33GIuyvQPgHEni9aQ45Z0yFbykixIi?= =?us-ascii?Q?oi6474B8GlI=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)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?nw1bzoxFiPc+lRAZSC/BrgSh51B6QTI/UAd4VEW94AGgayMMa5uBlvyXxQyZ?= =?us-ascii?Q?YydRz0Kssws9z0nFvEoAP3PVdWtmLjxlYVLJ/+pxLYQrn55vW2eSf4Nx3hWU?= =?us-ascii?Q?W+Avwqhr6/W7O6MhawKul45a6GRz8HZMBX5VYVYanj17Vxq8bsJWryylqh0Q?= =?us-ascii?Q?kIgfCR+MCdg2r15/yCdTGiEL3SOD8/v2IlSLE5+WZxG3YLaTrSLGPGU5W9Pm?= =?us-ascii?Q?IdPjKyTg1umAi0ZZGoBVCUWtYjFbTKhkdfqcYiNSOXhcwCthOWofbzxerNrC?= =?us-ascii?Q?mTEPDTva2XirYmqmnw3EUliIqzg2+ankoRQPzeQK2VJXAqR6iO6uIYe/Ajwg?= =?us-ascii?Q?RsMKhP4ZG6vpqtTV91U8B5c8kZ70b8doA/fXHmwSgy1pWK/vne2QpANCGFf1?= =?us-ascii?Q?Mu70zNN+84AEOS8uXD4K5QNoW7CsdmCE/HC9pC+KG1VPpR6Yn9cebx9dzxqy?= =?us-ascii?Q?G29taIMo14TwmnWmJBCJoaBwKvtlYbheDW2yl2FkIEX8FM70493JLVQc1y7E?= =?us-ascii?Q?eod6HnDzIpPZsvOP3syZAuR68OckESrhbLpcP8yAZTec17UTfRGAQ4rO/3kn?= =?us-ascii?Q?cVgq+bDl+uhe82/I2CNinmXfFb5ZWC8XGdWI6Llloo/Poa5vLFt9koVNrRo7?= =?us-ascii?Q?j+hl6akxu5/1U7xtfj0QxMizkeMuPSVcf6e+uSHchVbxPKFgnEQ7dUudUB7w?= =?us-ascii?Q?jkYB5ED3vYh0gsXzISi0PzC7KwmEG6dFc1uxut1FZV/JVLco6icmnnAwYfVw?= =?us-ascii?Q?bdl9evkCljTF8fA5aYfIonJooldEbIB1fQM4/dUkkhl3ioyCGCqbwGAc5ygq?= =?us-ascii?Q?DgDtNl13mFsNmGDqgqFuTMaTsP6FMgZ/WxbeJLbKdISQRmHz7EjYNQ5hr4vK?= =?us-ascii?Q?0i5/WrjgwpvojzPfQlxBSJWcUdB0MRr3ofMB6SaD2ezGx4IJcvjMLt0FBLeP?= =?us-ascii?Q?wOqDdDQLP+cJJ7qumKidalCJp8YDaKqGiwoW/+8n4LqswGUHZ8ywanPc/rkV?= =?us-ascii?Q?Zid12RrkYl7Qwbz0ubxh4veQAqpZgXV+4Ti4Ak1o7WCnBHy1Sl4GG6/hIEV0?= =?us-ascii?Q?7RGoW2ggxfse3o8e2Pw8GEEoUy1vas0HvWi/M2z+PBaXLgWtnmnWIOgIB14I?= =?us-ascii?Q?ykMRH7WD5htkdrNuCy7EpSlpEq/hT/pB0j3NT1fxzHXwNWd5mZTTurBrG+2r?= =?us-ascii?Q?snnmrXRgJTc4hs2JfRGL+D3U2MJavwpdQZG/FEpHbzHFIUl1S0LhHgaksawi?= =?us-ascii?Q?Z4a2vsZ99Ts0W5IOSq1X73Ngvb2zJsRDUQ5nOQru94403m9F7Qnblgy7Pfbx?= =?us-ascii?Q?ArekrK2R0U9QcWB8TfJ85krIzHdP7JzNjqt9Qo3zJyvkvWp9ba4fSA3S5cRy?= =?us-ascii?Q?EEmDWpLRwbEZEu7WbIIBAkieFq3RQYPRGwkVapqhR/YMXi57RC6orfCK57S9?= =?us-ascii?Q?3JYPgCq43/LtIitUl6hEYM5nJ/ofDVE7T1s9GT1kTql/2JLK7asm8nGK4IHF?= =?us-ascii?Q?jQqo8x0NP5FV7YDdiGM1PS2PqGz76+bPsZHlVA1PMWmLfgSGe1rbYj8zy5NM?= =?us-ascii?Q?zSgccvAw7AMTVk0mM5NwHMxY0HePVZyAY17je28yeYfslR5TSLiHIaLWTT4F?= =?us-ascii?Q?xQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: n64XDj7hxCXzcmyNJKxBG8NggtDgFIvrNU49LGIrUM3P7NmnYN11CBOarsaLqdAgIEXmEtROPWjOg5/qbwoeizE2aQTwahI91bZSg/vLgeRAAme+ax+RpuRzieznQna2r5OeVzpfvV4fBv0D0apgauf/X9EDEAePdhWgfxbnX95twyBRCZOa6Ezeq3VeVHKCJluzF0V6tIsaYx+wYA4+ojEV6JyVpPuYLmPUfxWpqdXE0pJ1D0flMTj1p6PhsQENjAUwgKRhIQi/5IIaOxRvcd8bZicDZbqF3b1MLt3wo7cOxZEvSp5I69zxcBgsKdU06f4opcaJPT+smcRosEa/WepqhqSX7JxVdcYZRNe9raX8TReij2/CQ1ia7bJmN8xtDBlCBbyY8kyxi8nXkgBM6NrRwf0lqSMNpWw/sEa5pFY7wvQRA37seEohDq+fnMNKRCkDgaokBM0ppmaYTzDrqPcit5bduyDEkW+bv4kA//dUCBkaZXArjbBFltVwfwCLetUW1eVm3fC4IOgDNc3Yk4mwf8nQ0EDaOCDjTNggqjVUC5A0Ef+NUXxIRhWU9Ws3TbiG4+Zixzj8oGIVwsCy0S6iFdmB1HJFqHBiBi3oEsw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 00da0ffa-2f60-40fb-8ad7-08dde9f7f5cd X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2025 08:08:54.8112 (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: vM4o88URVqkA94XV+PW+3WxPxntRTA1b57lBJELYvcnPSqn7rtwxWMhHhkSpdB0lFuBW0rWFjQl5SqFJPYbgkgGT9XnUOtl3D3HsDcAityI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PPF6ABE13187 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-02_02,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0 suspectscore=0 spamscore=0 phishscore=0 mlxscore=0 malwarescore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509020081 X-Proofpoint-ORIG-GUID: cY0tpaR6tQPSuRoItYy39pVprl-d9CZG X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDIyMiBTYWx0ZWRfXxIRwJvmQLps3 7WQ69+0HNFqXmDl5nqFZypcYE2LXf4q3zUhwKWEhV+5Pqc2fXtBqbzJKW4vcp26SqbY4rJcX9+6 oXiE1trls64S5k8YxCghpaMyneLpkf2x4wzv3FaiCe5jM0iSpYFg9WypV9OZ6xhakne/MRkgl4v JO4DplozgLdu7CRJKwfkvXayS4/j9y5ydRhPB0Mf2J5xR3tGRyEiJDfxeQ2T9ecu//cMnM2OWHT cuGKzP0bRMZQXhdW6UU0L4NcUkD0Q9UuAz/LcbDR2TclQsoSPzbqkeJfbXhd0tl5T6knnPqrL4g i0QGVYu2UlKeD0O+h25Rm5jy3xQwuM2rLCueUMg20htdxOHya8gOJQmwBlAFcZ8ZeN7ej8Lsov+ 1T+nGlxqDYYlP8l5sQOH/c4w3ymmVA== X-Authority-Analysis: v=2.4 cv=doHbC0g4 c=1 sm=1 tr=0 ts=68b6a61c b=1 cx=c_pps a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==: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 cc=ntf awl=host:13602 X-Proofpoint-GUID: cY0tpaR6tQPSuRoItYy39pVprl-d9CZG 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 --- 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.31.1