Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753066AbdLEOC5 (ORCPT ); Tue, 5 Dec 2017 09:02:57 -0500 Received: from mail-lf0-f68.google.com ([209.85.215.68]:37518 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752630AbdLEOCz (ORCPT ); Tue, 5 Dec 2017 09:02:55 -0500 X-Google-Smtp-Source: AGs4zMaTOGS+JtYhKHGkqzKPdWA73YDT8qTO5SrBSjfEKGbE00XJVhh4UvTe+xZMyNLn9/qybYIPudYT4hx7cns9Pwc= MIME-Version: 1.0 In-Reply-To: <20171205135648.GC28405@kernel.org> References: <20171016183222.25750-1-ganapatrao.kulkarni@cavium.com> <20171016183222.25750-4-ganapatrao.kulkarni@cavium.com> <6fdad34d-1612-0447-e58e-5c748f92668d@linux.intel.com> <1f79aa3c-a061-7c55-5d3e-f13638be01ad@linux.intel.com> <20171205135648.GC28405@kernel.org> From: Ganapatrao Kulkarni Date: Tue, 5 Dec 2017 19:32:52 +0530 Message-ID: Subject: Re: [PATCH v9 3/5] perf utils: use pmu->is_uncore to detect PMU UNCORE devices To: Arnaldo Carvalho de Melo Cc: "Jin, Yao" , Ganapatrao Kulkarni , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Will Deacon , catalin.marinas@arm.com, mark.rutland@arm.com, Alexander Shishkin , Peter Zijlstra , Ingo Molnar , jnair@caviumnetworks.com, Zhangshaokun , Jonathan.Cameron@huawei.com, Robert Richter , "Jin, Yao" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3128 Lines: 109 Hi Arnaldo, On Tue, Dec 5, 2017 at 7:26 PM, Arnaldo Carvalho de Melo wrote: > Em Tue, Dec 05, 2017 at 08:35:22PM +0800, Jin, Yao escreveu: >> A quick test with the new patch 'fix_json_v9_2.patch' shows it working. > > Where is this fix_json_v9_2.patch file? I want to fold it with the patch > introducing the problem. I will send you formal patch ASAP. thanks Ganapat > > - Arnaldo > >> See the log: >> >> root@skl:/tmp# perf stat --per-thread -p 10322 -M CPI,IPC >> ^C >> Performance counter stats for process id '10322': >> >> vmstat-10322 1,879,654 inst_retired.any # >> 0.8 CPI >> vmstat-10322 1,565,807 cycles >> vmstat-10322 1,879,654 inst_retired.any # >> 1.2 IPC >> vmstat-10322 1,565,807 cpu_clk_unhalted.thread >> >> 2.850291804 seconds time elapsed >> >> Thanks for fixing it quickly. >> >> Thanks >> Jin Yao >> >> On 12/5/2017 3:23 PM, Jin, Yao wrote: >> > Hi, >> > >> > I applied the diff but it's failed. >> > >> > jinyao@skl:~/skl-ws/perf-dev/lck-4594/src$ patch -p1 < 1.pat >> > patching file tools/perf/util/pmu.c >> > patch: **** malformed patch at line 41: *head, struct perf_pmu *pmu) >> > >> > Could you send the patch as attachment to me in another mail thread? >> > >> > to yao.jin@linux.intel.com >> > cc yao.jin@intel.com >> > >> > Thanks >> > Jin Yao >> > >> > On 12/5/2017 3:12 PM, Ganapatrao Kulkarni wrote: >> > > diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c >> > > index 5ad8a18..57e38fd 100644 >> > > --- a/tools/perf/util/pmu.c >> > > +++ b/tools/perf/util/pmu.c >> > > @@ -538,6 +538,34 @@ static bool pmu_is_uncore(const char *name) >> > > } >> > > >> > > /* >> > > + * PMU CORE devices have different name other than cpu in sysfs on some >> > > + * platforms. looking for possible sysfs files to identify as core >> > > device. >> > > + */ >> > > +static int is_pmu_core(const char *name) >> > > +{ >> > > + struct stat st; >> > > + char path[PATH_MAX]; >> > > + const char *sysfs = sysfs__mountpoint(); >> > > + >> > > + if (!sysfs) >> > > + return 0; >> > > + >> > > + /* Look for cpu sysfs (x86 and others) */ >> > > + scnprintf(path, PATH_MAX, "%s/bus/event_source/devices/cpu", sysfs); >> > > + if ((stat(path, &st) == 0) && >> > > + (strncmp(name, "cpu", strlen("cpu")) == 0)) >> > > + return 1; >> > > + >> > > + /* Look for cpu sysfs (specific to arm) */ >> > > + scnprintf(path, PATH_MAX, "%s/bus/event_source/devices/%s/cpus", >> > > + sysfs, name); >> > > + if (stat(path, &st) == 0) >> > > + return 1; >> > > + >> > > + return 0; >> > > +} >> > > + >> > > +/* >> > > * Return the CPU id as a raw string. >> > > * >> > > * Each architecture should provide a more precise id string that >> > > @@ -641,7 +669,7 @@ static void pmu_add_cpu_aliases(struct list_head >> > > *head, struct perf_pmu *pmu) >> > > break; >> > > } >> > > >> > > - if (pmu->is_uncore) { >> > > + if (!is_pmu_core(name)) { >> > > /* check for uncore devices */ >> > > if (pe->pmu == NULL) >> > > continue; thanks Ganapat