From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752829AbdDDHhT (ORCPT ); Tue, 4 Apr 2017 03:37:19 -0400 Received: from mail-sn1nam01on0057.outbound.protection.outlook.com ([104.47.32.57]:13376 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752785AbdDDHhR (ORCPT ); Tue, 4 Apr 2017 03:37:17 -0400 Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=cavium.com; From: Ganapatrao Kulkarni To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Will.Deacon@arm.com, catalin.marinas@arm.com, mark.rutland@arm.com, acme@kernel.org, alexander.shishkin@linux.intel.com, peterz@infradead.org, mingo@redhat.com, jnair@caviumnetworks.com, gpkulkarni@gmail.com Subject: [PATCH 1/3] perf jevents: Add support to use core pmu name other than cpu Date: Tue, 4 Apr 2017 13:06:41 +0530 Message-Id: <1491291403-29893-2-git-send-email-ganapatrao.kulkarni@cavium.com> X-Mailer: git-send-email 1.8.1.4 In-Reply-To: <1491291403-29893-1-git-send-email-ganapatrao.kulkarni@cavium.com> References: <1491291403-29893-1-git-send-email-ganapatrao.kulkarni@cavium.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: BMXPR01CA0020.INDPRD01.PROD.OUTLOOK.COM (10.174.214.158) To BY1PR0701MB1690.namprd07.prod.outlook.com (10.162.110.28) X-MS-Office365-Filtering-Correlation-Id: a82423d5-6f02-4193-909d-08d47b2d699d X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:BY1PR0701MB1690; X-Microsoft-Exchange-Diagnostics: 1;BY1PR0701MB1690;3:TwxasO2fxQFPLHMwY1LqQQyoTLvW/gAlZmF46S5kVIiTDQLLBETkcl4MDOIQDtu73do5jZKqVQERImIjaV790Y9+9GweI/eqcTJeBhstxMJbrk310JMsOvo9D6tlJd60xpoiZbtkU8/h4QB5hTzXY6B6NQan2lDIQ5gjBibJt9k17u5GHPlG/3TEX9UauFlEwhEl/uucmow/gTSVcMc1mRV+A9oo/jktftus3sx1xr05bKtA+RdcEMqR2Zbd3tVvQRS5rkJjcpUMa4da2epKJlgFMki2iT7VTKGbQtsKNGk+JxwLTSS2QRLsb8eU1ONmQ1iCKNod+FC8C1Mq+nrZpA==;25:/KdYhT3lhJFqeCkpDASI1hofFZEGKZS+XqR/SAXQT3knQWj0VOhrk2UudCsyuhjZ2GuWfS7YExuSdyaCVt9qq64+IZJks6ZbbROnuBN1OGVQg+Q0UEcqevY/vmKft2VsRya92GFG8lbm3/Lf3P6PjXuYr7XTePkATriNaorZgwtl7yjJLsYSzn8mpjHFTm+0jbolBQ6i6Tr5mwA3FyH1MJ3hb36HHfvev2tSVKjj3QVmh0snGJY7cuI7ha0jKHe5b7yUratzQEnEnNxpbXvIwelCJWhIz4C0bjo4RJHY1bGAwR8uI/CMrRlfeToKQtMo1jOqMecQpAQ5R12xpQNXdPxMqob5WS/pk+yalcDq4JyU0nZmr4P3pFkCJCvncP3pdpkb2jHJ8lnwQFQSapAWOH1RvarhNVrpIG5ZKew8D8JB4oFSoXTbBSwf956jg4J61FDmwNcMIX9rMYKma9RMxg== X-Microsoft-Exchange-Diagnostics: 1;BY1PR0701MB1690;31:V39YWYoMl2SXzMrHfSr/nYYFhjLmBTJIkRGo7gs4yQb01UF6GO5bDflMSwx46GWZYTZ8H5bD/ge+aBclAqjTrPp1ksP8/oloWE550ZyWro6FKfxsvggcCB5m2MPBe/Fn7GG3z0o11KOy4xPqFDXfppdvrzLRJ83jIt29YdAIl/lry5OGqsfZunBVp39XStcXYhxo+F4u7lt1cWmANCOJI0bYHsjGivJ4c7EW/FFNOrQ=;20:yTI4aqSHo8BYMJCYDkasNN486AQYtDZRVqQ9zjKAxV263B3XiXPr68C+9SGMb9ZGwlTmeeMYoVs6F7ehPh+mUDz0pOYYhHyO6uVrEHM2tEpTz6LOpeiO7LaETx9g2uzWofGO5GoEudkwXV09Ks6WSJmNPjgML1PRSxRkIAc6jmlriE1Ssd1PlVDMg4oOkyptv88fGRYoNjbmWIPnDp/pmQCVzrDhJFlgTjeaLuA0FoqhkxXz7CkGhbv61bHyaHexJF/+gnn5E+I2/+MnneHv7sEjNUTMNIwTx1ZKjm0F6qYcrtiFfAOkwbmrSE67S3YFNIxEt9m3MGEQkna+zh/sM8nwucTTAesE0ByIu5muLTkUTMNHlSmpoJrY31nL8QI1HB6XPqQaYaH9EIXpAPrRL6HiMkc96+FbzF5M5yqeXB3/K8EuHwuF7dF9oJov/8osrHolOMzYr1uGVbSdwgzd56DIVaU4bjm1J2Cb1ou/OsUlSqhndQVEjtXx2RVO6Iqx X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93001095)(6041248)(20161123555025)(20161123564025)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(6072148);SRVR:BY1PR0701MB1690;BCL:0;PCL:0;RULEID:;SRVR:BY1PR0701MB1690; X-Microsoft-Exchange-Diagnostics: 1;BY1PR0701MB1690;4:S6k5K9ip7pbQdqWieBRVNy5/Yw1tSwyWLf3U/gIn4fJhzYfJz1BbOWfPJSvLdKKDQf3mt1CFkff0C3LW7518SLw2Z8vB5qwXPnaPoi3oUfzW77NcnWpTd8X+4DP/blfeuMa2CqEFicqcznm2TeDalNv9a0KvqZUK2OYYagKfJYCv4SUOXFw61Wg3EKayXJJtOiq/lrnpYPD1vCtuQcTWp48r0qy40wIzSdFguVioZwgjgC9hVH+Gkij5BPxxtUiV6Eai5GCQZs3cbOayDmgMQ/oy4HZXqkANuBCtlzuVwjc4ZLf+AzYCuWel40GisNvUUHHstOiIy1ZIPqS2yL9/cLsyx1tY8pN6wNdD0/YS/2scK09hubp4u63vRm9aq/cwbU5KNHfeH0UrSLCSZjXJzTmduGU7GlfUb3+SYYLMp+kTlAVxH3Uk0rZatUlZhOQshOSF7dvgyzTnU8THN4fgj24WBnEaH5sWiApVoFRWhrwD9alCf5+ezsmfT0FxoKV3kRN4VCtog5iVBEuG7JM1+4S+QKTv0ApGhaVNAEwDqC9ed4TrQZYdbs5Oj15By5+YNk80HOs+3XZ2fgWaGRylvVgSqkLstqGJqRPlbJZSf811DjqLyIKDrWsqLpcKozU0BLUJyUc5J01Z0maBajmdtFufXuPSnue5b9H6HRphme58Okxn4yiU3rYI/UvEFDs7eeQJXXuCgX8DcoxMNSsoUg== X-Forefront-PRVS: 0267E514F9 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39450400003)(39410400002)(39400400002)(39850400002)(39840400002)(50226002)(2906002)(3846002)(8676002)(4326008)(42186005)(5003940100001)(2950100002)(36756003)(6116002)(25786009)(6666003)(4720700003)(86362001)(5660300001)(81166006)(53936002)(6486002)(6506006)(305945005)(66066001)(7736002)(47776003)(5009440100003)(189998001)(53416004)(33646002)(38730400002)(50986999)(76176999)(110136004)(6512007)(50466002)(48376002);DIR:OUT;SFP:1101;SCL:1;SRVR:BY1PR0701MB1690;H:mypc.caveonetworks.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY1PR0701MB1690;23:ObTg1Ng4VmgZHELxPaEGub6AaYck6I0kJXRMiid?= =?us-ascii?Q?hEuRCi0C0uy6cKQwhYxfKZ/dHzlU3CyIsRpdMt1qutM9r9C3TqpOEJTtGsMY?= =?us-ascii?Q?xkL5q96Q5n1Y69z7lIDS/zzM28AI8GoOZjI3wPAn6qEaeODF4gn7wJwq13IS?= =?us-ascii?Q?hrT38A5tqof4WLIvitZwB6Pvhjc85cmksGDyHPX68CBAEcxWrqZ7M4A3oXoD?= =?us-ascii?Q?oz82KxbOahsuVeEptUZs8b6F8bBPEhw3hTz3lXZbc/1GuEahecVI7PYzaJXJ?= =?us-ascii?Q?h8vfBrwMwFXGXrYi83tVOFu5KocY8f1kFlGmYz9aC31RkmvNvky+bspnnaIE?= =?us-ascii?Q?JHGm712sDaE5IuGHg54KaSOrTijxt7Gv5jHEbX4HuIQV6yWAK1E2s44fsGov?= =?us-ascii?Q?CWEg6Ih2tsynKSw+CYxTvVFYeNFbORfgi/XaPvmG0T//tOxt/9c52PeKDPBS?= =?us-ascii?Q?ypUhh8+HgTdHup9eYC52q8Y1/q0HeJKtenMIY2sg3dgzzhUlOsQSUd/2SE8E?= =?us-ascii?Q?HQy4xv/iIIT18yiyb3OscxvLRU8w9qVNzvU8J6gehEaSE7pPl73N9M60KRzJ?= =?us-ascii?Q?QORf1mSNdphEG+RuRPhUyoAAwQxm6FhHVLzcg1gEOdnGf6UUyLAL6+l14nQe?= =?us-ascii?Q?93Q9xg6MjfE4/MroCIhH/8JMQBr9TOe91HcD9Tey3fMCXLWkDgYARZT01OYB?= =?us-ascii?Q?DclnJqGoluC98g2FaHAZqSZbu9YrHLaYwnPofvp8VGx7wNGZ0lB1wqzvqKxv?= =?us-ascii?Q?U31ZXc+r87PZ99wnhzKloWbrB5iKQcrLXk6pB+3hx34dVl05SpwGn078NcIH?= =?us-ascii?Q?8I8x6+/sookQSP7kGK5T0Ic0K4Jtui4jBzPyLZpc3oRLRhy4gVhktz54pFfp?= =?us-ascii?Q?zaAH9Y08HaPb2RaE50JR5EpAwdPtfOBlPyLk+9lhtPZrWFbLkgdK5JOXKwPp?= =?us-ascii?Q?uI7Rd8hA7KkLb34gr2+4ch3n7JQucXpqkBnfq3mODSf7IdUYQEk/mo3e5EvY?= =?us-ascii?Q?LkLpiKZtob4do2yrR0cOxhWFroVhjVb4R5nB9gAsnKdgw1W89C5g5WxUu85n?= =?us-ascii?Q?E2NaNw7A=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY1PR0701MB1690;6:rkQj0NXogsMnSVpMbFxcWx5DC/KcFQocz4u1Jf8nxh3tGM0ZkbaxP2Wf9ror2BpfK+cMpuFdJNCiJ9/UCngQvjQ0V6brcXOXVasWAT5qI/8h7urX3tVFU2t3KdVwkOJGIN8cfVeFlj7OnSd99AiqqRHwMO6BO+wfy7jUgZJYzPRlazUThznwJEQZ9lq0TFsug1U5bQYM+N7Xf2n5NotLc/nR1ngTGOKOYEVVvFOyQV7ZbPUjOGwTf5ZXZNxAjshiEeTwacti+q5DDen7gnY+UUq8mJ4bB4dYwVeJ7891LouSZxbiE0dhzpl2N8nhcQVhq/vUOIzC5RvtW53w42hohM+uIwAoeSUm7RpDizsbQ/GrsRLDLFjaQ5uHDKWMkWc9AbTtC1T19MYZaMNs99r14Q==;5:aUrOEQ/nchMvqnJ9/Hdlb10VcuLtofOjEXf1/llTYjYpFV1DQeM3wfQMYooZvbu5AMaM3MWWea3whX/fMvWYEtE0+HdSO0G6kXH5DhZoYCCPvqzsQu3t4J9WJAgW5MgoVO38mLbns4/KEbQAnNkX/w==;24:4XDBO/QN910ox2w4DdCUX95WWnpfDfsxgQMNnBTEwiSiYvqkfj/LqtO8tLgGloEgCnelamUu8nXrXfmACvIsuEEGkO2d8jqd5cepXNb25bE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BY1PR0701MB1690;7:bUjz4xG/uX7UM/T1dNBqqeJ0P4fstoJV28cn1nw+B1woo91owdhwzgsl9JkGM/hd3yex54lOuGyN9KyxJAZ2jfbIDCN4r1BsXjy/Q+d6tE1VTZUAz0rIe8MfGLvoeGWVUqLddO+U8bg328Lz1vDFEy5SImBBiLA68stMiSu/bNLHa+Vu8PnFsxhypthy+yCpeQu5pGwvEUE+skTRfX6OQTw0QjCv++jCU8onUrHTFD60idA4eRORHz+rFRCfWklv+SPvLiTZuRdDz9RX15iimB0qPrEMVbiWgl3HgeH6tfNN2caLEn+lrP6b63t2x1m5LvVcVEApg9nMHuiN/gis2A== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2017 07:37:10.6973 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0701MB1690 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org jevents assumes core event devices are listed as cpu in sysfs, however some architecture like arm64 have custom names. Adding provision in json files to define CPU name and required changes in jevents.c to parse. Signed-off-by: Ganapatrao Kulkarni --- tools/perf/pmu-events/jevents.c | 15 ++++++++++----- tools/perf/pmu-events/jevents.h | 3 ++- tools/perf/pmu-events/pmu-events.h | 1 + tools/perf/util/pmu.c | 2 +- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/tools/perf/pmu-events/jevents.c b/tools/perf/pmu-events/jevents.c index eed0934..b20e7d1 100644 --- a/tools/perf/pmu-events/jevents.c +++ b/tools/perf/pmu-events/jevents.c @@ -289,7 +289,8 @@ static void print_events_table_prefix(FILE *fp, const char *tblname) close_table = 1; } -static int print_events_table_entry(void *data, char *name, char *event, +static int print_events_table_entry(void *data, char *name, char *cpu, + char *event, char *desc, char *long_desc, char *pmu, char *unit, char *perpkg) { @@ -304,6 +305,7 @@ static int print_events_table_entry(void *data, char *name, char *event, fprintf(outfp, "{\n"); fprintf(outfp, "\t.name = \"%s\",\n", name); + fprintf(outfp, "\t.cpu = \"%s\",\n", cpu); fprintf(outfp, "\t.event = \"%s\",\n", event); fprintf(outfp, "\t.desc = \"%s\",\n", desc); fprintf(outfp, "\t.topic = \"%s\",\n", topic); @@ -360,8 +362,8 @@ static char *real_event(const char *name, char *event) /* Call func with each event in the json file */ int json_events(const char *fn, - int (*func)(void *data, char *name, char *event, char *desc, - char *long_desc, + int (*func)(void *data, char *name, char *cpu, char *event, + char *desc, char *long_desc, char *pmu, char *unit, char *perpkg), void *data) { @@ -381,7 +383,8 @@ int json_events(const char *fn, EXPECT(tokens->type == JSMN_ARRAY, tokens, "expected top level array"); tok = tokens + 1; for (i = 0; i < tokens->size; i++) { - char *event = NULL, *desc = NULL, *name = NULL; + char *event = NULL, *desc = NULL; + char *name = NULL, *cpu = NULL; char *long_desc = NULL; char *extra_desc = NULL; char *pmu = NULL; @@ -421,6 +424,8 @@ int json_events(const char *fn, free(code); } else if (json_streq(map, field, "EventName")) { addfield(map, &name, "", "", val); + } else if (json_streq(map, field, "CPU")) { + addfield(map, &cpu, "", "", val); } else if (json_streq(map, field, "BriefDescription")) { addfield(map, &desc, "", "", val); fixdesc(desc); @@ -487,7 +492,7 @@ int json_events(const char *fn, addfield(map, &event, ",", msr->pname, msrval); fixname(name); - err = func(data, name, real_event(name, event), desc, long_desc, + err = func(data, name, cpu, real_event(name, event), desc, long_desc, pmu, unit, perpkg); free(event); free(desc); diff --git a/tools/perf/pmu-events/jevents.h b/tools/perf/pmu-events/jevents.h index 71e13de..d423295 100644 --- a/tools/perf/pmu-events/jevents.h +++ b/tools/perf/pmu-events/jevents.h @@ -2,7 +2,8 @@ #define JEVENTS_H 1 int json_events(const char *fn, - int (*func)(void *data, char *name, char *event, char *desc, + int (*func)(void *data, char *name, char *cpu, + char *event, char *desc, char *long_desc, char *pmu, char *unit, char *perpkg), diff --git a/tools/perf/pmu-events/pmu-events.h b/tools/perf/pmu-events/pmu-events.h index c669a3c..c8da522 100644 --- a/tools/perf/pmu-events/pmu-events.h +++ b/tools/perf/pmu-events/pmu-events.h @@ -6,6 +6,7 @@ */ struct pmu_event { const char *name; + const char *cpu; const char *event; const char *desc; const char *topic; diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c index 12f84dd..31b02d4 100644 --- a/tools/perf/util/pmu.c +++ b/tools/perf/util/pmu.c @@ -556,7 +556,7 @@ static void pmu_add_cpu_aliases(struct list_head *head, const char *name) if (!pe->name) break; - pname = pe->pmu ? pe->pmu : "cpu"; + pname = pe->pmu ? pe->pmu : pe->cpu ? pe->cpu :"cpu"; if (strncmp(pname, name, strlen(pname))) continue; -- 1.8.1.4