From patchwork Wed Jun 28 10:29:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Garry X-Patchwork-Id: 13295540 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A5090EB64DA for ; Wed, 28 Jun 2023 10:32:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ORr1qLbVVfUz8KfChVZeHbf307HRQUEThyYeegRFoXE=; b=ibMyL+VypsDp3x YBDN0QPbKcEIX4/NCkLBEdPS3ueLYaKeAexKxEQ0aMQdp899m23c7dVfkQ+GS+zPy+Xy4cEw+sccC 2WW3VT7mFV81MW8EkCKWNpitX9Y0LvDjb7ngQI5jw1Tm7V4pR+1dAFYEUM0y3CP5O/U3A60gzWfsU QnRuEIM78aiw/WSiU99nU74/tEqGwpOcBCZEC+xC3f3NG8G+EGmekIepnIjK5dd8OYyX05Af3WLUt MVkrB5zbtPNcAavKIrmNnXUJj+Q/ArqxyEgln3gRE4xYKl6IOMrE/wUk+hsJMyB94+MGigm2yFDxj v7tUx0Kf+Rr7nGYDHoDw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qESSm-00FMaT-1t; Wed, 28 Jun 2023 10:31:52 +0000 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qESS4-00FMKj-0J for linux-arm-kernel@lists.infradead.org; Wed, 28 Jun 2023 10:31:13 +0000 Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35S8xptI023003; Wed, 28 Jun 2023 10:30:22 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=hDsL0TaLiobo7uqJNdvWlxbrKXtS9CwEhtroNWANHLA=; b=WK+jWImpkAsl47HwUVma9i0dmnCrgTu531e7kQ+U1SJMAvKzg7WPwOk8oqv1mJwUUQVw rERwbTlfkV3BiXURI5bRgBEF5l40HTYJt8vII7RS/PKbNPLrepREq182z+8KDjsuRLMF FoXh3Myp9GfTpPqUE5I5dnWSqvvwMFXF/b3BPIU27XuMN6kj0uPvvcmkykyrI6pVQd4+ 6qXiaFSVOa/fKIBH7qGHE/YLIOMAD05pwiz7mNjyzwIgrufmgVPyxUtG3eAUIicZTYLJ wcog+dP8su1rqf9THUXU6godvFYSK349Dd9lXR5mQPhzruUD5luJrygtqAHNmY+z9rMF Xg== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rdqdtq5w7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 28 Jun 2023 10:30:21 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35S99cKq008684; Wed, 28 Jun 2023 10:30:21 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2177.outbound.protection.outlook.com [104.47.55.177]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3rdpx5trc4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 28 Jun 2023 10:30:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fPDuBMQkUXyrPJLZRsg4z2LH+0+QkZdMOTp41lJ2zhRSgKq2N5Ecuc7yoIOt/tUtuDHnSeyLh9SQBSa5JSMXsa59JTJB6YlYN3erb1fjdN2B5HVumAyxeSGfHXEpwO0qv1eD6PIHMocWEcRxtRqoKOAGIcEyMj2BPmdBONBazhRr72xpQ4yBTp2kEwCGXhtf6aTmgJukhGA1XIVaCSB7/In6K+PZIzqXNLTLmck4Xhp6UF242nGOFSnR2F++LeAiuAllkZXFPGsopJMzmMoN+oCvTQGLNVPKYrv0soBOFL0AwfzUZvGOGbM8tW57gfAvuTsRQ9XCPoQ+Eody0ChAJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=hDsL0TaLiobo7uqJNdvWlxbrKXtS9CwEhtroNWANHLA=; b=jFxQj1AVeFnhkod2eRN9QQRLBHZstCdNkPCta2f0zTHaGcZizUsZLLOpcCCcBMnZl8Xx1DXVg08/dvxRaQekhm04OIqL3ti7fh5Wb20dKQKzBTHVFlvtNoauFPRuSXQ5TBpZ0nO4yJox5cp4ttB6WFl2tJOsnEkK5PT3A6TzsDJ/5zrWZwtMJ2HvRplspWQE8dx1vfM0Ow8ytPfjF/meViFZD9Y1cKIyPBPAA8mZ/4p38m1Vb17qQ4lpLcVMJ6xCZvCxASSeYltb7I1lLT0bp4GFfZIPC14lA8JsBonsHk59browayiAoyiUdzny9TFOleP2/HqaBg6ZFzwY/egB+Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hDsL0TaLiobo7uqJNdvWlxbrKXtS9CwEhtroNWANHLA=; b=l28osTJgMBYziQjWAtoB81z0Einx4R4kc4z+DpvQqYlUFUQ6f5ZCcidxQlmA9GEPr8LfhF/2J+bkZ4guTMixURuRb2/j1nKU12W96fbi949Ti3yhjEA4s3ej63pXpbVgIRUb66vR9fPk303knTL3TAKI2FyBeJblyGql83azGFE= Received: from DM6PR10MB4313.namprd10.prod.outlook.com (2603:10b6:5:212::20) by SA2PR10MB4715.namprd10.prod.outlook.com (2603:10b6:806:fb::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.24; Wed, 28 Jun 2023 10:30:18 +0000 Received: from DM6PR10MB4313.namprd10.prod.outlook.com ([fe80::e38:5b81:b87f:c1eb]) by DM6PR10MB4313.namprd10.prod.outlook.com ([fe80::e38:5b81:b87f:c1eb%7]) with mapi id 15.20.6521.023; Wed, 28 Jun 2023 10:30:18 +0000 From: John Garry To: acme@kernel.org, irogers@google.com, namhyung@kernel.org, jolsa@kernel.org Cc: linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, renyu.zj@linux.alibaba.com, shangxiaojing@huawei.com, zhangshaokun@hisilicon.com, qiangqing.zhang@nxp.com, kjain@linux.ibm.com, kan.liang@linux.intel.com, John Garry Subject: [PATCH RFC 4/9] perf jevents: Add sys_events_find_events_table() Date: Wed, 28 Jun 2023 10:29:44 +0000 Message-Id: <20230628102949.2598096-5-john.g.garry@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20230628102949.2598096-1-john.g.garry@oracle.com> References: <20230628102949.2598096-1-john.g.garry@oracle.com> X-ClientProxiedBy: SJ0PR13CA0193.namprd13.prod.outlook.com (2603:10b6:a03:2c3::18) To DM6PR10MB4313.namprd10.prod.outlook.com (2603:10b6:5:212::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR10MB4313:EE_|SA2PR10MB4715:EE_ X-MS-Office365-Filtering-Correlation-Id: 5f35fef0-a16f-4e08-3721-08db77c2ab5e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /XOtBxFB+3AgAvp7kfT03Qv3eZNeYUIfx0tI/ifABnKN+qbR8FA/DbLjeWPG1fsUx6vnAD0abfQRe5rpyQDn7PlXDM1ZkqzYJ0FkSDBLzB0ph3R2nb0rNjffyE7Z6GPB6QkyF27I8qV8uYCTztuQSynYOM6XO5dpavyjQO88E5Qz2jNxYmhgoXSeOpqsIZTPdsPUqFipaoJjHuThR0fkGaVDbXshwuv5h6z0btc6ewFfp14Fy5++GGkw9i4kpfyGnjYWxR0YbFqjcpiy1/UPhBc+xv81bcpVUU+UAKcBhCImYimjfAICvd6m9YCaBrStZdpUz62j6u8ViuI7rxjXZqMjSwpRJcq5s1Qa2hh9ODeUFjoG7gMCDzOco/vhSKSwZfYAorwlpAFnugg9n7MR+NzFCTbBEdl6OV8xGWauYWxtT2scQMyNBKySIQ42Upe28LbJ/o0O04d5zzmPV3o3ijmKksIQI7gSbpLJj5PpsuFI39h+kOn7OBonEmWbEc8nol30JYxccFY5YZZtmszBvMrHNUkp/A5zqc7Jx/fqLIRQi4q0G69sfAPB1pGbUaW6 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR10MB4313.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(39860400002)(396003)(346002)(376002)(136003)(451199021)(38100700002)(103116003)(36756003)(86362001)(478600001)(6666004)(6486002)(2616005)(8936002)(316002)(66946007)(8676002)(41300700001)(66556008)(4326008)(66476007)(107886003)(1076003)(6512007)(6506007)(26005)(186003)(7416002)(5660300002)(2906002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vagiZz3DI91c3sosbeLNrhT6Uhk4exa/wDA9PBwxg9iDuHKlC3YGEahlMxuoPzw+bDOJe6MZVhM7p/t8aZvKG46obo86UtcCJWW0J6FYtSwcP+2F9s/1JriNujsXChgw442YMIlGZsHzyVJvPralHXSY272gzoJndQb3lHLOMutkAikbvHR+sk9g7zw6ZJxItQc4Mwk2gk5pslGjBc+Hb2Vg7JQ1buW8uxMZidem40slYpDKtMHAxB5qKm+kWG6lB20QmlXyW+OZXtaqtDvuCWybRdhnFkay7FXg8hO72+LdzVpWDooweyG9iz4uAGsiCo813NMBGLwk9IISMdMAcSWtnmVwVKiztK/6H37xuX6DGs0VH946mRRLM8pORlHrMKStagWsUPik2zpEfdAqTt6/jerfT0TUYxJpGv4+Y7ERRH4R7kX2wN9ncWpTT76uzAESS67zLkbneYW+2DRlIM8Dgv7OgZMeHQ/k4Yt5DuFjO2jm/vuMRwse8VucUlhLclUI6RASxf9RUtpdck3a9JJ/gYDX2ynkmbrQgYcgcUuQUrjBepirl308Sybo4yUFMkF5Ynu7Sbi1OHGXHyIM+Hv5/TWEsiFgU8kS6oUKGWtBS8pHBw+6pDvF+RbaZ1S+nAHL4289t9peXH6VGaLDPBC0C6L5wVKd/0oCR0WLdjJR0dKdnVCr5eeUpFYzjvQfKEL99LMFqiVylvMC+qiarxUJTAphf0wbIYmTZaj6LzRVOkUZA0fmu+nmwgX4lgNnSb5G7Uo1dh1md5XbOVc1UuZK9IsULvCW8Ff0+olmVOACeiGkoDMZbk2NgiHk0XH9MoeeRQjQ3LdH/iBeed6HtnTQuuMmcfQfTaaqMhajJoJDjhPcd75KH2hnNrL8RtrFZg55HlOIcdtkU3M5kg8YrINmKXy9K95FNf+If6cwRYBMgaZkE91PNNk8GanbpY1exkE9NLoZJfQPWVQy48A1atv1sLJ2YHYXEX2GRv4wcAYKHGOakr08UdQUgYNMfSUGX1fBhIMHh5Vw41TL1G+bwdH8iOGis1jF2qmZHfSGmow9BBxs3ZklpJW0Qe20J5Kb5gDE97nMlZ93NadKKjjbKAQpLFrpRdTB14nWY2SSvssTQ98ZZz2pRwme5N7LEf17Jj28CLmgTxgNiHPF/19zfzPVq3pCIo3ECZ+Mig28eoKi8VgZLHqV8WUgvJEHVvzPt4IWlj51jCKRtRlsnKFQsU+7ud8uluCK1w+KSDkDW+IRxnulu2fMcTERdsnkIdbqHE7csfiXeSazP4ce/lMUPJnLWC4t6Q7u6L8cl5Q8X9EsMpdqruJjO230lvyQnxSqaaLiKuwr21UyOyzHvnEmMXvCya2bezanuQwL9dTP2Btz31SyyJqxamFopBncMqE3E/wHTCfyhPk1YJaEepGTQpTYLK9tIRxruHAUyEEPrr2aruFEkZkLhhsSaYdLD/PY0HdK6QOfdmyDXQoQc7eYwblLMLYK5eBC2cT2MJL4FHZDW0r0dPp7KWmVbG0HUy1U7/I53NYCBh1mxid4F+QTo5nt+KMeei/67EhgrV7+6a61SAB8tRsn5/gtX1tHaqNdDa4yckvQ25ELq0fZtXnG8g== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ftvuzwMsXS3PLhb2/zXAqo7l2Ubb1jPvZnAiuHxV3sHgg41esSYRMT8PCd96rIIupFV0UTeK5zxp9NSzjZh/dbFavYTYW/P0DZolheQNT+Uzz9h+RyRvHGrnygK6LRJXPunJjA6nX6nSgy1mMufrC+UdFRyWpGhrwVCInREIsh/bU+NLzRb6Eoef/UHn/zB7Bp6Rl+OkW+7VrlleGResW6ZSa8j3D3d+pCSXntrEBZ9cudykgkBngb66b4LwYVqckW9NeX25WQdS1DfmFEhV89G7miFP/mumAkGwSKg+NchZl3GpnSJO0F4mNZ7zXPGCosRbsW0JoEXeMPNGS2oeqLuyPEyYq+4FZTv4t1wSECAtg5+VHK1k6mLqVG+JWVwm2XCXLa41SYQDE+lGhK3HY8eiQYj0yAy/2fi/r6IMTHEUxLc+xN/et92LXKQLy5gKPZkmYKDkNQ0MOB6megCGM1lTXsLHIlq3lDR8S4yqpSgDzWjYnIWgZ5H86vYi4I6M+akIosADj9T86I3FIKMzIDXfdRoqV34PwTOIXOeYAqSpQn86gBDg5A5VRqIT7tWpoCnNaNeVG/COOHFnXEoB9iBUv98mIaeiEwGTuVYYLK3O4fqfUp+jafFo+LE97EGGPhl/oq2Z0VCBkfIudnKgXDfNuzkkQTrEj2J9j5r355ahMdJuzV4efbrvOIurmb+8rYQLRgARcmptoOB/hWLNz3G4Y5OlF23fBbBG6nWFrEORdamCPeFmBnaMhz40AKl6WkN0To40wYL4s/L/W1IbZx5wKfmQhHJgKSM+qc0GQMlAxNls9FHPGlaSmP75eGSfOuUCJTlKm+4sqpx0xQ5iDhIJAeXsJ33kC8DeFgRjahiRVIQpLFamoc5g/TrfyJKRHhS9CrAepsNC98d7bgav/UXE/62W2YgjVRxBbvXqyr2CLAhOcgQHvDPXaAhS19RXICmQx6QkjNJ4+WFCZdKYlsc3+UFbJVYiRVGlPQzC8nnTDmLshX1NepifX+FqRXupVDEMETHiuQuuOhM6FSNxorZr+i3iWviT6hH7B3I/ZgjRd8py3lvFx5Y3GfserPA5dBdoLwxl5SCzJkYIgk126w== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5f35fef0-a16f-4e08-3721-08db77c2ab5e X-MS-Exchange-CrossTenant-AuthSource: DM6PR10MB4313.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jun 2023 10:30:18.6332 (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: S9XnbolKZtmHx4M3H42DwmSAhUUiqtoS5wnJowYFu2g4Xp0+LhRfOu6pR+nsVQUWmLgWm9MdYjRtYxJdRN4XQA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4715 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-06-28_06,2023-06-27_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0 malwarescore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306280092 X-Proofpoint-GUID: Iapxjc13p_ydgA7t2gpxNYsOAP6xBEzI X-Proofpoint-ORIG-GUID: Iapxjc13p_ydgA7t2gpxNYsOAP6xBEzI X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230628_033108_140951_BF8A2868 X-CRM114-Status: GOOD ( 18.85 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add a function to get the events table associated with a metric table for struct pmu_sys_events. We could also use something like: struct pmu_sys_events *sys = container_of(metrics, struct pmu_sys_events, metric_table); to lookup struct pmu_sys_events, but that relies on the user always passing a sys events metric struct pointer, so this way is safer, but slower. Signed-off-by: John Garry --- tools/perf/pmu-events/empty-pmu-events.c | 6 ++++++ tools/perf/pmu-events/jevents.py | 11 +++++++++++ tools/perf/pmu-events/pmu-events.h | 3 +++ 3 files changed, 20 insertions(+) diff --git a/tools/perf/pmu-events/empty-pmu-events.c b/tools/perf/pmu-events/empty-pmu-events.c index a630c617e879..ae431b6bdf91 100644 --- a/tools/perf/pmu-events/empty-pmu-events.c +++ b/tools/perf/pmu-events/empty-pmu-events.c @@ -290,6 +290,12 @@ int pmu_metrics_table_for_each_metric(const struct pmu_metrics_table *table, pmu return 0; } +const struct pmu_events_table * +sys_events_find_events_table(__maybe_unused const struct pmu_metrics_table *metrics) +{ + return NULL; +} + const struct pmu_events_table *perf_pmu__find_events_table(struct perf_pmu *pmu) { const struct pmu_events_table *table = NULL; diff --git a/tools/perf/pmu-events/jevents.py b/tools/perf/pmu-events/jevents.py index 80b569b8634b..947e8b1efa26 100755 --- a/tools/perf/pmu-events/jevents.py +++ b/tools/perf/pmu-events/jevents.py @@ -786,6 +786,17 @@ int pmu_metrics_table_for_each_metric(const struct pmu_metrics_table *table, return 0; } +const struct pmu_events_table * +sys_events_find_events_table(const struct pmu_metrics_table *metrics) +{ + for (const struct pmu_sys_events *tables = &pmu_sys_event_tables[0]; + tables->name; tables++) { + if (&tables->metric_table == metrics) + return &tables->event_table; + } + return NULL; +} + const struct pmu_events_table *perf_pmu__find_events_table(struct perf_pmu *pmu) { const struct pmu_events_table *table = NULL; diff --git a/tools/perf/pmu-events/pmu-events.h b/tools/perf/pmu-events/pmu-events.h index caf59f23cd64..a3642c08e39d 100644 --- a/tools/perf/pmu-events/pmu-events.h +++ b/tools/perf/pmu-events/pmu-events.h @@ -77,6 +77,9 @@ typedef int (*pmu_metric_iter_fn)(const struct pmu_metric *pm, const struct pmu_metrics_table *table, void *data); +const struct pmu_events_table * +sys_events_find_events_table(const struct pmu_metrics_table *metrics); + int pmu_events_table_for_each_event(const struct pmu_events_table *table, pmu_event_iter_fn fn, void *data); int pmu_metrics_table_for_each_metric(const struct pmu_metrics_table *table, pmu_metric_iter_fn fn,