From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id E993AC83F10 for ; Thu, 10 Jul 2025 01:22:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 86E0A6B0093; Wed, 9 Jul 2025 21:22:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 81ED16B00AA; Wed, 9 Jul 2025 21:22:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 698616B00B1; Wed, 9 Jul 2025 21:22:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 4D4BC6B0093 for ; Wed, 9 Jul 2025 21:22:58 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 022011D942B for ; Thu, 10 Jul 2025 01:22:57 +0000 (UTC) X-FDA: 83646606036.30.D1A792C Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf12.hostedemail.com (Postfix) with ESMTP id 7D70440003 for ; Thu, 10 Jul 2025 01:22:54 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2025-04-25 header.b="r5Bnrq/9"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=o4Mvqn5q; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf12.hostedemail.com: domain of ankur.a.arora@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=ankur.a.arora@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752110574; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=w3bmaR7XSSWErZeDIOOKpVYEiN4NluZA1hZEpjjD9Jo=; b=8C3wwo7RRiwELTh219uE6IhyTn43l2Q7Q3ovgePj/Zgvk3GG7diTHX1CFuF7VSidyfJr+x jvLqJLuJwiLeG3haN5N9X3GchJ2GKxaPUIooqwxhqUprIFy+zJKX7jWhxqTDC94yI1cw/L Cl/y/rwZuLr+SIjPpXz6Eum1nWaYiqA= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1752110574; a=rsa-sha256; cv=pass; b=uEiXiAl+u2Y0Xq9MG4IwFTRowRrqiHmTTkM2iLn44HicdSwhVINLDUW18nsyUxSeGlAyLz WaFF2BRPukIIOQE4hdl7SEqCh14jlM9yzsP+EKUCNMg/qfc+kp5f87gZNvuem3py1DkVYT 1G6LSPm0MuJs0997TdgA2SahGGdCH6k= ARC-Authentication-Results: i=2; imf12.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2025-04-25 header.b="r5Bnrq/9"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=o4Mvqn5q; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf12.hostedemail.com: domain of ankur.a.arora@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=ankur.a.arora@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56A0MuZo030250; Thu, 10 Jul 2025 00:59:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=w3bmaR7XSSWErZeDIOOKpVYEiN4NluZA1hZEpjjD9Jo=; b= r5Bnrq/97owtJjEg/dEPXMk/NV6GreHw6zgCHp3TCWzYWY1M4zrZpBTYtjf//uE8 5iM0ivfFvPpoUku78KPrPCteefPQHGHYI+Mf9wcFyK8ljLO2il3oMJgEdXEgL1eu t/Ff+U00eQxU3qTOJDS3DIdfo8tylTa2V6CYrWBuLR0YDlHTmqGPrmL/sAsMORr9 CE6Hi4J72kA7YLq3OUIJEuFDm67c/2nClOhaDurLL/JVTCZ0LHgkcZbFvIh0ZM2K SqI1+Qu7OPkgvdCB+/nKHLpYLuD6micc/2O01CjE+zta6Cq2nFDG11qZTFDH0PaZ v4LXYjc/GOobXtUcngu/7w== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47t2wn8182-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:33 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 569NuiI0014348; Thu, 10 Jul 2025 00:59:32 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10on2082.outbound.protection.outlook.com [40.107.94.82]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 47ptgcds62-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2025 00:59:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=e8tajd7c16gwoYR2gm/sac2Cp9u12/SS8+zFp8a8FAYV9x0hBmiMMcKZgJgCVW3uEMYvTiRpQ7xAYuGSdg2lKm3M8gXaI46kIakehrpvXvMLqIF6+9zYY/+NIR8/WImZiYovER3MDk0JkEnx0p6MUgJkVe/seNKxWVFIU1W/WRmba/Sod8U8o87+Eyw05T2ksz2dWnQTCca5EWYKwLNm0VSPrweFcR9Y08RismegvCmgqYTKt3ldyaUuKH9vbOUtez8Rl5vXq+I4jzlciGD/4UP9+V2rL8EjPK29LwWmMFMl+G4ud6s6pkv/LPfZBHqxURvgTyfRBMAnkykSTdNVJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=w3bmaR7XSSWErZeDIOOKpVYEiN4NluZA1hZEpjjD9Jo=; b=yPyRTgPTYCjEWqoVBZkMl4HSD8bhFlZSuJsznqAql8Q8rAVv9ha2+CNAHPWXIFoVvh2BW+VL0S4IRYQ699LZ1FoqQ/5oLpY7iwYOw6bTT9JbqIWp9YEDdx86O0vsiirCgM7w1zINCiK7TiktnWXL036Nax13SiiJiDiUqvmOZ2sAZLHOmNQOO/t4SbOgqv9RBa0ncrXCKQYKs4k0SiiWluZgthpCQCecQgb4F+NvFEr+xME7xjYAHja/g5C5t0I0DXXc3S6FebIXhKEcv3vIC3mdZ023Snu8uSxU7UuuQ/PaI4+sg+1MLdK1gz4DEsZzGP1RWIlW6609dLbvSDWA7Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=w3bmaR7XSSWErZeDIOOKpVYEiN4NluZA1hZEpjjD9Jo=; b=o4Mvqn5qZ20VA0sN8nnOqrUxsABkq95JZFw6cndgyff4sWsxo4vwxBwJDzPIJrGDhwdjDHX7xxcBke70VjXSMZmscNafaiMTmAVOwzsnmXmceutLBHdEV6ax4cOCNeisQgeYXGBP4rf3cdWrRZ0RP7CceeZH/BHtFZ+nR6m5Qho= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS7PR10MB4832.namprd10.prod.outlook.com (2603:10b6:5:3a6::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.28; Thu, 10 Jul 2025 00:59:28 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%4]) with mapi id 15.20.8901.028; Thu, 10 Jul 2025 00:59:28 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: akpm@linux-foundation.org, david@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org, acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de, willy@infradead.org, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v5 01/14] perf bench mem: Remove repetition around time measurement Date: Wed, 9 Jul 2025 17:59:13 -0700 Message-Id: <20250710005926.1159009-2-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250710005926.1159009-1-ankur.a.arora@oracle.com> References: <20250710005926.1159009-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: MW2PR16CA0044.namprd16.prod.outlook.com (2603:10b6:907:1::21) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|DS7PR10MB4832:EE_ X-MS-Office365-Filtering-Correlation-Id: a248ccac-ae24-40e3-f12e-08ddbf4d05b4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014|13003099007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?gJkqZjVUcl4sypgkGuoMisUOljOWG2XS8UyJhb3k8SclmUH3oKObtW14jXEU?= =?us-ascii?Q?b3zT3SlMU3ALWE1gD2A4L7WPUa1JaIV8EMgE2iK2ehpz2V3Gz382PEp/I+nb?= =?us-ascii?Q?QHblU2SyVSOaBZrQrZ9nrbMC139EMcWzBIaqKbmegQPtQ1FUMegQ1GdJKtA4?= =?us-ascii?Q?EnhqkdmyTrKakYCLe1CHTzXkxLgeg0ZZKphJtdR5U/PNlb4G8HE3MB+f3X4Z?= =?us-ascii?Q?g1GOOZJcTqyi/YSK/OuyBtieEQVgDaM9afsTmBBat2tFS5IL3wLZ73fED/ou?= =?us-ascii?Q?U0/LfAQ6DRWFCnYyuPTDpaPpIzqO69PWUegL53Ths4DqIQH9iAldvX87wF7q?= =?us-ascii?Q?eYU7FPKYeidCW00YfAAoaxPAOz3OkAMNkq4yKNQySGNMqzcvvwjgIOM8XG0j?= =?us-ascii?Q?cP8nP3QAZNjFSi5pN0DtLUto099765TpDDlWiroF4L63ofDa09xUlUMI/NWH?= =?us-ascii?Q?szU3m/kFgwrEP9YA6acrFcpWjXushSDkREbGReaQCpYb+Q3MN5rGJ/Uc1rFC?= =?us-ascii?Q?VnJLpSSsqhdNRP/g38FH4JsXpMPQuwmcuuIpdUnDxLTYt55pKzrfZ3iqlto4?= =?us-ascii?Q?fqx0sgc0FI07R6LcGi9SiO0kGiFg7yc2nVg6OZXcr001bx1mdTFs57WBVc5i?= =?us-ascii?Q?jFlhuH2ihdwQbYRO8THRfwBynq1xtBGImqa1pukl6GLl10S+tRELFrEdbb46?= =?us-ascii?Q?sKZY0JOKMVlYvqq26SNA0oTo9GXQcNZarPYcCDnMGyoTCjkhblTPuskE8JRL?= =?us-ascii?Q?yAfKur1zncUOzn/4pgAWMSZxkjHHRK3Jg/97PqM9BYEWSfql5CFtzKyG9tU5?= =?us-ascii?Q?5ZjiwdC5RuF2m0xBjaq3xilibkc8bKc0CENR/Re+VvqW1smeutErqMGmzuqN?= =?us-ascii?Q?4+05j9pO5TP1v7WjFnzyJHE8mu45rwH76us4TrRZHOPixiG/b8qaarlYWD73?= =?us-ascii?Q?wEgSZf9gHSUsYxxo7/pob9afep26qHTCNR07u625pchIaK7jWPahKl/w78Ua?= =?us-ascii?Q?KJjORjLGqIATeDcr52/5UYVj57Jbzk03picIhQQ+bcnLFBqZbAhdEJdld8TL?= =?us-ascii?Q?wQbB/5cX99il3U32P9E0gS5+wjlfiOdOZBxu4zIUSpCzgioUtkhUQByYAQ9s?= =?us-ascii?Q?lvXRHt7nxBN/TAqDxF3HYx+859F5GH8T0IBxRXfVlx4DSEA++n3iy+hOKZqB?= =?us-ascii?Q?Z0MfrfOUheKAnHRkRhp4cjkgLkDPuoZtE/Tunw0LeQlmBp/yJ+mqfdkQBo8O?= =?us-ascii?Q?Fv24ZGTIDun4ibKjRa5aFAC1/qqK/373iqXFsgU/hHOr8vub8yWoJEv7RXVx?= =?us-ascii?Q?eJbNe3khRgmmU04ERoKwHOcl+EzZP/OimvS9NjlkaPTrvz7pHGe9sXYj2C+q?= =?us-ascii?Q?FJA2YX8=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(13003099007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?l/b5MgLxcuLw3ckw2tNDrdnRJYPDj0+yy6cYMmxXTGyzpG+ZP5DNLd+ZQ+gA?= =?us-ascii?Q?p4q4nqMZdaRnFKDZw0QLI49K1cf2Vr1KrvZQlwFwMJhw0XEa3kGgbZy/IGRO?= =?us-ascii?Q?DXbvaQoukol1ZcG8XvKUNQpT2vc/3GMZDv4TiaDPD+0UDvA3md7Sz0WswFRT?= =?us-ascii?Q?DF8LD7BB7VaJRnmL1rCPMoLQ26lKfGK4BWoIvvdL4B/PS/cZn3iWB2gSlZQP?= =?us-ascii?Q?UzHZYSbVklcOLGKLvFiYPVxAj9EXda4oTeuzCt4/zKJmCZSrIxP3OmIzvcpF?= =?us-ascii?Q?NSoey0JHCNBGS+Cc1gwIAwUix2AfYf9EhRAgkkomqrCBK0y08LUVEq5ZBB8x?= =?us-ascii?Q?wRIlyN8/2rg4WGSdEKLGvfwMa+oS6ECq5ZoixLotGzWTsf7KF7r569uVE4ds?= =?us-ascii?Q?3hyaEW57VmRQqLJuC0+pFFkeNaGQCoJrSvRZ3gqEoINNpg9W4bmy+M1M/bN6?= =?us-ascii?Q?5eh8E4xAtCTkH/Aam4yY4+AA5Q35hDXjHPLmnJTIq8QTmtF/yLYmQry5Es3T?= =?us-ascii?Q?2CSn41DNq9x9MHRzGEMdamZbbpzVREGDVJ7v+7dLG5PtHvMCwsaXTEbD7Yfx?= =?us-ascii?Q?hAxoYwxEU0ZO0eVoivKYqK0CJ6aoBAH9ncnkE9s7+1I/yk0S3VnmJdHsETMF?= =?us-ascii?Q?0NvMOmo09KvZAon4/YcnkC6GyfhqzgxImzViyVk5Cr6CCFrIa6hfdKjFvb2o?= =?us-ascii?Q?JbgeKqlyi4VW0jhQ3lOgDemJOsFwdfKt5VbUo+RdQQBw4Aig6d6mlz2UlZe9?= =?us-ascii?Q?Ovl7KNY20VMAYMBXrf/cDVY9Vhh7jasLkPgkmy7pavyNt/ryjVEpHEbdLU6L?= =?us-ascii?Q?wg4Efnf1KtGBAqT2PhjuE7UtzfTobvvTEL+WXJJUIaOBPY4vUwWmzNHxdZTP?= =?us-ascii?Q?vIvOzTAJGNiOWTiPCXTpEUxoUT+aiHxOPmlMMOgS7F/fAWvJ/HzQQsJSp/Se?= =?us-ascii?Q?HFlOIujju3oL1Dyq7OuWFg05WzFmJ4qHcLEtU7B8SVUJEh9uj5pocR3GPaSQ?= =?us-ascii?Q?xnEWAf6Pt4oB+fVtXDpp5VVdMKl2Em8JAC+oGmt07idVgWaCRRL4hOIXfa9/?= =?us-ascii?Q?QVEQueyy93zviVnJuhahGtqNtUlQq7+k2T5GaayhgOCMXX5cq9ROpbiiw8OG?= =?us-ascii?Q?xkLYDgPsorKUxlFEfJSk4AS90UECqJ0mZtU34+5qSIuVESKXXaTGX2c6hxG3?= =?us-ascii?Q?qH3bkjSXvmAH/G4T6E9Bjt5dtMoIA6SpBRjJho3HV28cDZsJnYFDHtMEv2pQ?= =?us-ascii?Q?7yGN66BF0ypiaH72wqtoFQWMNgcoMe/fgn9VTwAcqMeS0Cdlvy8CFhf9CUKo?= =?us-ascii?Q?xiqaW/cZS0gDgR4HLoCto16IwO0IQySvGor/Dg0NVooGrwSPHMv14yK8meY2?= =?us-ascii?Q?J3BHJGaY3uGHG6tfS4+8WPWFlXZl+FF99Ttt694X6DxSrs/hkxLjyc/uSU4i?= =?us-ascii?Q?dgZK2bwUxTNKpnhXQoujCo1HQymRRO+ZvsdZrf0tw6tBvBHJUwQC/8FGWcdl?= =?us-ascii?Q?9BEWbaUTakXbUrtRwCSJPhvL+a0KlJAtBZ+mM1MjQ70Jn40XxJg+2EXMatsF?= =?us-ascii?Q?/gdbXd/Lo2+vGUcoZ+qmkVy0UsmmsBcNSDenW10IwctD+8fEDSJvdzYfALNe?= =?us-ascii?Q?Kw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 46JJMCTqe5Pn/nrDtiGJQ4/Q2tfvozo3n8zs8Zfg2zoj6PJyKmQEDt4xOFx4nmxwj6RwpXi+wtlkKH22/h6UiXP11bPaLDKplXpsuLzD9+QjCcAR+QXdlc0hCdGI12mlbHbRhkW1i8df1zqD4c7HQgBrl60kcK+L+x/Pgyek5O5/mYEFfHO+lS+Q26iHunJWGlgDFtoHgEp2cFktePTa+PWyV2Zz7Zyr0BYUJIC/b43wsa6X8Aju1SaECxnjFQRggAIHjXtam0f+UqIqh0T4L6peUsdFAD0E5DSwD3Fs6VlrGCXolvRDPUFL3AlgPTqFGZ442wHc7SAGEkxI2OvKv9dkHSMyO6LrCrgXxBRqtCjcOhHcnwdgI0NLNKuUn7GCbSVL35bQ5giQQeVGcO0VCeDLKZu8b55KtwMMhQEb4djs+YzdEC3QcDWqYnNj2KrN2Wi3Ztt0OYj8E5pboht7J6FqFnfdaVOU25XCusweCBXwmXyWKjPqm7om6osHxjcB99JbsV7XCoOq5B9L/mboOwvvBZGXZMPi/Ldbj2VbwLb0tn/ocqPd3C+O3YDtQJYHwJX9M1hxLypBt06YwEAGwEW/lVz3KY+7UoNM4ALElqg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a248ccac-ae24-40e3-f12e-08ddbf4d05b4 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2025 00:59:28.7128 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Mi8uKWKTqsPpkoKGmwFKr+DeZLg8wWx1R38h5B8Da5iXxK6yEKjl5U40WFzLgUNLvusmnhHGvBqhbbPT8VHiQ+UNSY3et4y/Htpavm/pijY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB4832 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-09_05,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 mlxscore=0 phishscore=0 bulkscore=0 mlxlogscore=999 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2507100006 X-Authority-Analysis: v=2.4 cv=WtMrMcfv c=1 sm=1 tr=0 ts=686f1075 b=1 cx=c_pps a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=Wb1JkmetP80A:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=QzB8L1Xlpqjwh72o9DYA:9 cc=ntf awl=host:13565 X-Proofpoint-GUID: yGYIKgFABlPIWtMCc9VB3NalWYyyNHeR X-Proofpoint-ORIG-GUID: yGYIKgFABlPIWtMCc9VB3NalWYyyNHeR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzEwMDAwNiBTYWx0ZWRfX1gkm1Ew+/fG5 PmIdpodBMZBwxUhbWeFKs0wYlKOZK6+9bZ4e5ACLcZZ1shDSQipNKcAqh9Bst+GZyulLCbFJj7o ud5O+80k+NdwPuHRtw8J+U3cyXrF7rwtBT5nMQcqJj+1g6zkrIUAN1De7swPNTgroA1VnkASCM9 hi8jZPHqcdllJ/IMPNcsB4faG2WWlcBFgPy3yjt/B5Yt41eWzls9UaD6TY2v3eGZfd5ICRLIvr3 tVCsnvKvUmPXAh82egZG8S+ffFmxDqhM9BxMlp28UtP6mO8UF/E3+GIA/Q+DgBgPGt+Mr8HQMVT SiK0SlJ6Sx/Io+Z9ZcPnbvAjICtsjUpbS7JoaHM4ItTn4ikiCrNyjpTOWIIrv05Czyg1e284NjW NQix0w0IiR4LOgQOIGAR4I44GEx1aJ+5xzYz7MYDhenqL3RQS5CKDFPdQZ17kyxRGFcV/ctm X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 7D70440003 X-Stat-Signature: wbkznyxntsrtj7be6up6j57u73n5mmie X-HE-Tag: 1752110574-830527 X-HE-Meta: U2FsdGVkX181JbCplTedZRwQTWet7KWr6iZkCRzRWqnwjnaGjcxlrRb9oxHxyTOwvoRJOdCJKjyDwOwmtmq2VFYCcbUcn0MTk8rcrm8ch1vljSHFvOFHX9RvDDyWNiaNXAiIp85BoBsTkYrQMOjfC+n9hzhJFZfh1H2r+QvqjfFKl5pBAw43jw179NV2U5+Q7M9ASYAUPPWhMw4sLWi6Qc2PZghJbds0lyqRGmLn8PHm6oP8n7sbs4/nm1d3gwwdhHNL/22XNwoBtFg2JSS/aIfil+u1o8yObiEcoSeFrorTWjaKXbuMjz0NTJTxqdYAiYEjeuJw0Mq0JFgVyUY3wa47bQMy3xuq4S5lN2GrL0RvSuLtnz4nPChbounn7fKZzjKrQ686pw9XlsXONFchLBYP81mkZLWgjjvD1VkIiVvFcS/Z6bnd2Vcqtr8kOZ00YD/aU4fHFpxBCdqnWRueTUfdW5H8SuOAAOJj+ZIN2IKrJOm7hDpYrnwFIM4lKkYjzUxeLOkod8VB6CnTzCpQiKJmjyu7hGy6cv3zLnmVtWorYbhJnufxRONqDEkNZ/rqTlq9UoWAVze2Xi09em1+Q3cl5wHWkKJi7huqqBeuLNi1sCVFEDql0p+q+hIRKwOX1hG55Ml5c99dpV0YGjghKRiwpj7ucH3VWlzFrfmSeRztXjGAPEK50+RXohjSPpC56TbE6Uz0DJBCV30xu2coQReUzeoabpc4mcQbfEtuQa9Nyv0xjQaKASVB/zwQpd5MzxM9AjIdbVwW7OYg8ACSF+XjFYvj4xmOXGSxfvbDZT8DuZMvYfohzPtQH4+9e/MeJNGdOXr6p0OyO1YF9ny3JSsJeuiZJNHqFp5Q254aao5eOwNmKYtkpyw6Ar2KKMemZx6NxM0arEIkTQb7vCH+OAgHiw3LFYfUbu0QaQ/RIlAdHfFqKofSvmLqpLRRSjg+WgLjHK6z5xipucpmnVy 6e3FMuQ1 gwkFpYqpoYYoqae/T89I6EoZhRMbp3gg7r4NjL99+852nUbWyhS8hsZDaCKy1mpxfKOToM4zyAqhVflpifxS5B7MdmmuhfIx62UHzxNRPCZ4olOaXOGFNreiMfd2Z+oQ9ddnwdSKQcdQs8aAawx8mb8t501IvK0oH6MQbP95TcpD/MTjDH0MB11HKpToiU9R/NDBO2rJFgJGRhgo7CjqJgxkrfyqD/DDg9xyAxMzt6Qa1tWYutbQ3xWdDY/Upk1LwDMbHAa6Q1lE2XJnR4a4yXmy8qgmvAwmo+oJzsvv1niz26MSEB4GMf0aFE/dWZcPRmLbXsk4faAzJJi83rt0BOHKz3pDvLYUj4jwsucEx+SlT7X1vSmALtvEndDNO/7gMz0Y4zlKGJ5Qk1xB7oQ6DAndVaG8yBzW4RAg8KS2vxj9YALGwwV0HIl/ltFiTPvWpU/QRSz0+IksMOs6weT1w6VPLck1Uo+Cll9uuNYJ9N4EhcfZS1gnZJlGXmjYy3OxRuuc5A5jG3J1tnPQUt3+9oYlYnuZ3aYCN6je51x4Yagek1m7KlW4Sj+lcm6dYKdRkCidREDt1kgeQfzJ5aMINSBvh+PRLOqsmukdU1J5fW4j93KoVeIs7SbzMVOwCj85t1oKxzQxsUGP4rUFkh/waWYOxN1zOb9FtaKmJfqWL3CZcEXVsySruSBveGl3nty1XP/6D X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: We have two copies of each mem benchmark: one using cycles to measure time, the second for gettimeofday(). Unify. Signed-off-by: Ankur Arora --- tools/perf/bench/mem-functions.c | 110 +++++++++++++------------------ 1 file changed, 46 insertions(+), 64 deletions(-) diff --git a/tools/perf/bench/mem-functions.c b/tools/perf/bench/mem-functions.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[] = { OPT_END() }; +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); @@ -91,6 +96,26 @@ static u64 get_cycles(void) return clk; } +static void clock_get(union bench_clock *t) +{ + if (use_cycles) + t->cycles = get_cycles(); + else + BUG_ON(gettimeofday(&t->tv, NULL)); +} + +static union bench_clock clock_diff(union bench_clock *s, union bench_clock *e) +{ + union bench_clock t; + + if (use_cycles) + t.cycles = 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) 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 *src, void *dst); + union bench_clock (*do_op)(const struct function *r, size_t size, void *src, 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 = &info->functions[r_idx]; double result_bps = 0.0; - u64 result_cycles = 0; + union bench_clock rt = { 0 }; void *src = NULL, *dst = zalloc(size); printf("# function '%s' (%s)\n", r->name, r->desc); @@ -136,25 +160,23 @@ static void __bench_mem_function(struct bench_mem_info *info, int r_idx, size_t if (bench_format == BENCH_FORMAT_DEFAULT) printf("# Copying %s bytes ...\n\n", size_str); - if (use_cycles) { - result_cycles = info->do_cycles(r, size, src, dst); - } else { - result_bps = info->do_gettimeofday(r, size, src, dst); - } + rt = info->do_op(r, size, src, dst); 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 = size_total/timeval2double(&rt.tv); print_bps(result_bps); } break; 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 = 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); } -static u64 do_memcpy_cycles(const struct function *r, size_t size, void *src, void *dst) +static union bench_clock do_memcpy(const struct function *r, size_t size, + void *src, void *dst) { - u64 cycle_start = 0ULL, cycle_end = 0ULL; + union bench_clock start, end; memcpy_t fn = r->fn.memcpy; int i; memcpy_prefault(fn, size, src, dst); - cycle_start = get_cycles(); + clock_get(&start); for (i = 0; i < nr_loops; ++i) fn(dst, src, size); - cycle_end = get_cycles(); + clock_get(&end); - 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 = r->fn.memcpy; - int i; - - memcpy_prefault(fn, size, src, dst); - - BUG_ON(gettimeofday(&tv_start, NULL)); - for (i = 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); } struct function memcpy_functions[] = { @@ -292,8 +297,7 @@ int bench_mem_memcpy(int argc, const char **argv) { struct bench_mem_info info = { .functions = memcpy_functions, - .do_cycles = do_memcpy_cycles, - .do_gettimeofday = do_memcpy_gettimeofday, + .do_op = do_memcpy, .usage = bench_mem_memcpy_usage, .alloc_src = true, }; @@ -301,9 +305,10 @@ int bench_mem_memcpy(int argc, const char **argv) return bench_mem_common(argc, argv, &info); } -static u64 do_memset_cycles(const struct function *r, size_t size, void *src __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 = 0ULL, cycle_end = 0ULL; + union bench_clock start, end; memset_t fn = r->fn.memset; int i; @@ -313,34 +318,12 @@ static u64 do_memset_cycles(const struct function *r, size_t size, void *src __m */ fn(dst, -1, size); - cycle_start = get_cycles(); + clock_get(&start); for (i = 0; i < nr_loops; ++i) fn(dst, i, size); - cycle_end = get_cycles(); + clock_get(&end); - 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 = 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 = 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); } static const char * const bench_mem_memset_usage[] = { @@ -366,8 +349,7 @@ int bench_mem_memset(int argc, const char **argv) { struct bench_mem_info info = { .functions = memset_functions, - .do_cycles = do_memset_cycles, - .do_gettimeofday = do_memset_gettimeofday, + .do_op = do_memset, .usage = bench_mem_memset_usage, }; -- 2.43.5