From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752850AbdJLKf1 (ORCPT ); Thu, 12 Oct 2017 06:35:27 -0400 Received: from mail-dm3nam03on0083.outbound.protection.outlook.com ([104.47.41.83]:35768 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752620AbdJLKfV (ORCPT ); Thu, 12 Oct 2017 06:35:21 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Ganapatrao.Kulkarni@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, zhangshaokun@hisilicon.com, Jonathan.Cameron@huawei.com, Robert.Richter@cavium.com, gklkml16@gmail.com Subject: [PATCH v7 1/4] perf utils: passing pmu as a parameter to function get_cpuid_str Date: Thu, 12 Oct 2017 16:04:16 +0530 Message-Id: <20171012103419.29824-2-ganapatrao.kulkarni@cavium.com> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20171012103419.29824-1-ganapatrao.kulkarni@cavium.com> References: <20171012103419.29824-1-ganapatrao.kulkarni@cavium.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: MA1PR0101CA0024.INDPRD01.PROD.OUTLOOK.COM (52.134.136.162) To BN3PR07MB2562.namprd07.prod.outlook.com (10.167.4.151) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 14cbdd03-7c3f-48aa-cb1f-08d5115ceee5 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:BN3PR07MB2562; X-Microsoft-Exchange-Diagnostics: 1;BN3PR07MB2562;3:W6NjWqGKv7pD+UxfmhE5YbLXhZlcCouveU8P+4zEOtafedPfF0HxG9J6m2yBILMQzNGMFTREGuh4LNiL1R9QEXvVYWsojQuPCirGXA1SBmBQBPKPAz3ymzNLgct2t+QdK0gtTI7ovZBRWa0aYRCdBGnIadIghsEmPWhnRKwZ2dpBejPRcOQIsFzr91jkDIY9iA0PBhmidqBSrgBobhBop+pikXmy9sSsAD1rvZhZvbq3QF9t6sMwSqb7fPZJL1lB;25:PejyACEpigcqZtBvOpIt/por6AssQYuzrujDzSUzm9DetnswbPomRPht4F42iFaBmEb3Xh3nZhPGeaVpXqLgiUCt1FVVUY5RJ6aWbJVJkyDz4N0k05g1jf5D29n7ddBHp7sUv29Lmsw4TYWMTZvkQlKRoFaF8Nvw4YKxTeKHWTZLcE9P3xKoe/rEKDNYpC+WXWytzY5jh/bhRZ98d+pgLZrZ/3mktrMXwEmV//XXjZi1AvHzVrLzorvwwJdWjTZKGISHT9dTabPeUfeDpe/Xa4WTYJwMrUwpWuprovNBs4AF9SLp+qz6ErpRL+lN2vFH63yAacWuzBvvYwdQdRxoeg==;31:S1gb+yFR9NA7q7+7c2UbWcJ6r82aqVt7VG0OOog40cQo5a6jwj5qAnzcqebU+MfZiDu0a3JCwRVCEXGGPpJbiCBCga9F9gvPUwpMQDQTO5d/9ecLkhY6YtKo6rDOKJReAA3AQdtony3wA+Bg7hWQz53lUXOqz3woTd4nmBcAZQO1kO460ddj2z/GkL862Lf+62Tyb4+F6Av9w9mpY7Affun5/Wbz6uSnkO9tUuTzEGs= X-MS-TrafficTypeDiagnostic: BN3PR07MB2562: X-Microsoft-Exchange-Diagnostics: 1;BN3PR07MB2562;20:tduub+D4NsLBs/CqjCP2HZWgEBOH0foh+JfdTOmHatc8bqJLS1nV9+QiEutl+B7cI4eObICSIFhUxy7nEEfoFbiekxvRcwPrCXEzVkPULad5nge86Ps9TY4FJcWXwgmsUw9qh+BIdMkQYngzelF5TqsQPTADSO7ZWvKaN3SlSl24oMikFlQJm/wnysKkfDv7qtgrJGzjxJkGNzE/LYCJHu2lPulC6jy816V+32+SlIcFwVnEXje/v0kx/0ji4PTUd21TkZdNmqhM8VUXlMXNmozTmqn/VTyLORwrpXUHAwG19VuITfrxqqpN7VMt1vuP2FmHnrTkReMi+uWBVgv95xGhCB5JcsUYRNkK9IJauZTwLfAVLNqDjDqa9I3qHBumCsdBfhG47vp8ys/KpWMpvB7Wc5hdaHy7Q8l/OS/4EWDElm/ATMccS+zLcXYh5XFJV6teChFH3vb672OmfAmQGAaO6sA0SzQZUuGDbQCLpEvyGAAhsJM+YZ0iWoBHmn96;4:DiD3C1g44Xg05iTIJ3zjKtxLxdX7xP62PgAiLuYlBJ02Ldp93SDKwQnZ3ghERs4QmiCP5ELLFI8stefAM1ONz/i6suzM4QkI2daLEzcJrxcwQ3Ubu1K0yInKsF+ciOzFfIEQjQdIBw3biomW5k2l4aMI0VPhhZZV9y23n/CiRDEV2+f/CU0PKA+No3jHceb+DlSTswcJv0vn1ZW/QhZKzKcaJcd4aXO6OUqSCuU8dNEW06iYIfxPNamDAWYsb+0O X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93001095)(100000703101)(100105400095)(6041248)(20161123558100)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:BN3PR07MB2562;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:BN3PR07MB2562; X-Forefront-PRVS: 04583CED1A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(376002)(346002)(199003)(189002)(7416002)(4326008)(68736007)(3846002)(5003940100001)(33646002)(81156014)(105586002)(47776003)(25786009)(66066001)(106356001)(2906002)(86362001)(39060400002)(189998001)(8936002)(5660300001)(8676002)(2950100002)(81166006)(6512007)(97736004)(50226002)(478600001)(36756003)(316002)(76176999)(50986999)(72206003)(53936002)(50466002)(6506006)(16586007)(305945005)(1076002)(16526018)(6116002)(6486002)(48376002)(101416001)(7736002)(5009440100003);DIR:OUT;SFP:1101;SCL:1;SRVR:BN3PR07MB2562;H:mypc.cavium.com.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN3PR07MB2562;23:5sRDvDJbB6tfnNL8u/NKmdCMBS2MYgjnRJ3u+0lXe?= =?us-ascii?Q?Z9JQasTOxfESIZDvkKPB87OfD11Fy7Sh2TVqVv40lekJ4iFtZDXtgJEDqH8p?= =?us-ascii?Q?lo4vUXUHVxl4JFxHey9JZH269nji/O+lf0Y8CNtkJJ5V1oK+76seFWhj6G+s?= =?us-ascii?Q?zQPIz5p5siUczPQCAT9jg6ykwkZfTmfdGwltQCfW2lSUS/g7QWJVmuwyilbH?= =?us-ascii?Q?eLWgHGl98/qkMy85Tbbws/a3MfQkXN620FTdvrQ3f9DKMcUkexDRNIZXuCnQ?= =?us-ascii?Q?CNM4IPnfBFizsm+DhNht/b6AdcT+sK0VmNjm22/uCvZDhqUqscAES+CttKb+?= =?us-ascii?Q?JyJTiiIq+wK6R8/RA1rXTjzY6nfXG9/Poc+nG1LQTLG2P9Oe52dk4zeEkWd/?= =?us-ascii?Q?qnYJx+rk+acvShkDXkm2QpbW+7Y7m9mRarPbsTg0YrLCoW1hiGJeniAn2oKv?= =?us-ascii?Q?lttZHDMszDEYYsyBcT9vRw8tfpAxGXKHkFk1wQopge6Wxfqh2EfIEoD7wtQF?= =?us-ascii?Q?K99Wc7BvZiHrEOYs0xHRjoARLz4nzSsEjO85weVXZwW5x/VNXq86WQRbg+4D?= =?us-ascii?Q?nfmp4W5oX/5Qe7RcnVq1nLTbAQ4SXGA1rgBhwy2zWgUlCvOQGDrt8078SqV0?= =?us-ascii?Q?ntHnt5Fy5dbA1pIVtcKFeCnIy+pLWu2cJpB/GeYbq3BseQTRAPSWh2U/5dB/?= =?us-ascii?Q?+gOPCGEfNIUVlr9KV7cj7JhbvFFfSodIoKltDDFPHFT8stsXPMj7tOg4/K85?= =?us-ascii?Q?8ZIR6nn09kda2yf+FSuW+daLJVeoHz2XSKqLy89gfPZakvyuaLAOkZafPndd?= =?us-ascii?Q?JGWVPVfoim593BaH1+HF3+Viv5vIr3C6f2ikXRWnuOLnYLtXx8wfXp1uIfaO?= =?us-ascii?Q?Ry0Zu7rjQPuqSIn6CKOLHKtVVEuEF874EQvoaW+Sx13VL/OMpaFriEaOxqvu?= =?us-ascii?Q?tAfPXG+wwOd37JXnReEziRB177/GxO0HaTBDmdkk4n+dedhFE1LjQ7GQYM00?= =?us-ascii?Q?lRCDdl/WOtmt7Y0x27SWo5z2wXth1YprIAKo32vF5Pv7JLt+d0zSz5A8BD4A?= =?us-ascii?Q?2nNvoCCKRnQvGHwlez0P845kivDNFZ21PFLQTPa4PZfW6SGn5LV55bL10WLO?= =?us-ascii?Q?FJX1UI2+jpPppP3LYdGBxdJs2Gb7kbQ?= X-Microsoft-Exchange-Diagnostics: 1;BN3PR07MB2562;6:gUmenvtr0I0rRFercBrup0alyW9YxmoHtwzX08V2N+0GxTGbjfUPdO/UjwPpwazz58TzUctATtd8u4Ih2+HvNlvGc+eWAI2yMU0ZYGp2osxvgzskOTnhZMvsw7jpw7OWCbER1t/SJiX9Bl3SZ7wIgZzXaVFiwgCeG/DCjrkVJFgAnk+DSdcAKOuYbKKMA1P8uNQp7WAiiGd/oXcR0FfpvMhARbft3pwSEqQYwbQHsxZHx2MUqtewbZlLT1f9+5YAyCbdSs7VuH8GPlYj6rxJ9kWv0RQp3vZQPmgDyTWFnI8FA9g/S+7udD4nVV3Ef10CQ0peznIIY/+SDFKhGSKJuA==;5:OiBPEZOMaHXlcVw4OLHz0BUSwrZgE/+mvOoNpC86D4b4GOnOLe6P7CO91sbaP+0zJUGJ6/ZiJZHoPBgiBte0b/zqjg1Te2jcka563kQj8j2gK9shEG4or4enYBoPKdFI8NDcZlfxKz701NN1CI1vcQ==;24:zrsQ56lP+7sNbTGNSwlZQyakQYA7merG1z9nXnPPKEkRGQDBOlAQGqy1z1773kqwSXHHJS0WQ6Un4MW0uNGTIQXM20Jkmj9FrQ2yK6dBEwI=;7:W5ZXfyXGCLVnayvXCGEcGCzyWCASNFpnhNDEFzVC4jpOtYrwKAHmbUDU9LOOoCwBTVtE83/YT+ZuSBW0FDRJFQBM95A2zlvKIEUB5307VOivpChinWfW/BB71ik3H9i2n0SiSLrrFIn67MAp95AnXVlIwy55A87OGw1yBU5MT10tkzyVQ1lsP6Ah3gXFNon8a1+OXrVYrIdSYhZHQT1Tjoj6s3e2kn8RevnFwoEX/5s= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Oct 2017 10:35:14.2681 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR07MB2562 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org cpuid string will not be same on all CPUs on heterogeneous platforms like ARM's big.LITTLE, adding provision(using pmu->cpus) to find cpuid string from associated CPUs of PMU CORE device. also optimise arguments to function pmu_add_cpu_aliases. Signed-off-by: Ganapatrao Kulkarni --- tools/perf/arch/powerpc/util/header.c | 2 +- tools/perf/arch/x86/util/header.c | 2 +- tools/perf/util/header.h | 3 ++- tools/perf/util/pmu.c | 13 +++++++------ 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/tools/perf/arch/powerpc/util/header.c b/tools/perf/arch/powerpc/util/header.c index 9aaa6f5..2953681 100644 --- a/tools/perf/arch/powerpc/util/header.c +++ b/tools/perf/arch/powerpc/util/header.c @@ -34,7 +34,7 @@ get_cpuid(char *buffer, size_t sz) } char * -get_cpuid_str(void) +get_cpuid_str(struct perf_pmu *pmu __maybe_unused) { char *bufp; diff --git a/tools/perf/arch/x86/util/header.c b/tools/perf/arch/x86/util/header.c index a74a48d..d52bc27 100644 --- a/tools/perf/arch/x86/util/header.c +++ b/tools/perf/arch/x86/util/header.c @@ -65,7 +65,7 @@ get_cpuid(char *buffer, size_t sz) } char * -get_cpuid_str(void) +get_cpuid_str(struct perf_pmu *pmu __maybe_unused) { char *buf = malloc(128); diff --git a/tools/perf/util/header.h b/tools/perf/util/header.h index f7a16ee..3de4be9 100644 --- a/tools/perf/util/header.h +++ b/tools/perf/util/header.h @@ -8,6 +8,7 @@ #include #include "event.h" #include "env.h" +#include "pmu.h" enum { HEADER_RESERVED = 0, /* always cleared */ @@ -165,5 +166,5 @@ int write_padded(struct feat_fd *fd, const void *bf, */ int get_cpuid(char *buffer, size_t sz); -char *get_cpuid_str(void); +char *get_cpuid_str(struct perf_pmu *pmu __maybe_unused); #endif /* __PERF_HEADER_H */ diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c index ac16a9d..18edf86 100644 --- a/tools/perf/util/pmu.c +++ b/tools/perf/util/pmu.c @@ -511,7 +511,7 @@ static struct cpu_map *pmu_cpumask(const char *name) * Each architecture should provide a more precise id string that * can be use to match the architecture's "mapfile". */ -char * __weak get_cpuid_str(void) +char * __weak get_cpuid_str(struct perf_pmu *pmu __maybe_unused) { return NULL; } @@ -521,19 +521,20 @@ char * __weak get_cpuid_str(void) * to the current running CPU. Then, add all PMU events from that table * as aliases. */ -static void pmu_add_cpu_aliases(struct list_head *head, const char *name) +static void pmu_add_cpu_aliases(struct list_head *head, struct perf_pmu *pmu) { int i; struct pmu_events_map *map; struct pmu_event *pe; char *cpuid; static bool printed; + const char *name = pmu->name; cpuid = getenv("PERF_CPUID"); if (cpuid) cpuid = strdup(cpuid); if (!cpuid) - cpuid = get_cpuid_str(); + cpuid = get_cpuid_str(pmu); if (!cpuid) return; @@ -610,19 +611,19 @@ static struct perf_pmu *pmu_lookup(const char *name) if (pmu_aliases(name, &aliases)) return NULL; - pmu_add_cpu_aliases(&aliases, name); pmu = zalloc(sizeof(*pmu)); if (!pmu) return NULL; pmu->cpus = pmu_cpumask(name); + pmu->name = strdup(name); + pmu->type = type; + pmu_add_cpu_aliases(&aliases, pmu); INIT_LIST_HEAD(&pmu->format); INIT_LIST_HEAD(&pmu->aliases); list_splice(&format, &pmu->format); list_splice(&aliases, &pmu->aliases); - pmu->name = strdup(name); - pmu->type = type; list_add_tail(&pmu->list, &pmus); pmu->default_config = perf_pmu__get_default_config(pmu); -- 2.9.4