94 lines
3.1 KiB
Diff
94 lines
3.1 KiB
Diff
From f6d50e0a533366718c134f351042ca0cbc4dfbf4 Mon Sep 17 00:00:00 2001
|
|
From: John Garry <john.garry@huawei.com>
|
|
Date: Fri, 4 Dec 2020 19:10:07 +0800
|
|
Subject: [PATCH 155/201] perf jevents: Add support for an extra directory
|
|
level
|
|
|
|
mainline inclusion
|
|
from mainline-v5.11-rc1
|
|
commit 4853f1caa43ea41a544c50a7cefc42e147aafeda
|
|
category: feature
|
|
bugzilla: https://gitee.com/openeuler/kernel/issues/I8C0CX
|
|
|
|
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4853f1caa43ea41a544c50a7cefc42e147aafeda
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
Currently only upto a level 2 directory is supported, in form
|
|
vendor/platform.
|
|
|
|
Add support for a further level, to support vendor/platform
|
|
sub-directories in future, which will be vendor/platform/cpu and
|
|
vendor/platform/sys.
|
|
|
|
Signed-off-by: John Garry <john.garry@huawei.com>
|
|
Acked-by: Kajol Jain <kjain@linux.ibm.com>
|
|
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
|
|
Cc: Andi Kleen <ak@linux.intel.com>
|
|
Cc: Ian Rogers <irogers@google.com>
|
|
Cc: Jiri Olsa <jolsa@redhat.com>
|
|
Cc: Joakim Zhang <qiangqing.zhang@nxp.com>
|
|
Cc: Kan Liang <kan.liang@linux.intel.com>
|
|
Cc: Kim Phillips <kim.phillips@amd.com>
|
|
Cc: Leo Yan <leo.yan@linaro.org>
|
|
Cc: Mark Rutland <mark.rutland@arm.com>
|
|
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
|
|
Cc: Namhyung Kim <namhyung@kernel.org>
|
|
Cc: Peter Zijlstra <peterz@infradead.org>
|
|
Cc: Shaokun Zhang <zhangshaokun@hisilicon.com>
|
|
Cc: Will Deacon <will@kernel.org>
|
|
Cc: linux-arm-kernel@lists.infradead.org
|
|
Cc: linuxarm@huawei.com
|
|
Link: http://lore.kernel.org/lkml/1607080216-36968-2-git-send-email-john.garry@huawei.com
|
|
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
|
|
Signed-off-by: hongrongxuan <hongrongxuan@huawei.com>
|
|
---
|
|
tools/perf/pmu-events/jevents.c | 11 ++++++++---
|
|
1 file changed, 8 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/tools/perf/pmu-events/jevents.c b/tools/perf/pmu-events/jevents.c
|
|
index b988fa2fa270..152acb5d7a39 100644
|
|
--- a/tools/perf/pmu-events/jevents.c
|
|
+++ b/tools/perf/pmu-events/jevents.c
|
|
@@ -978,15 +978,20 @@ static int process_one_file(const char *fpath, const struct stat *sb,
|
|
int level = ftwbuf->level;
|
|
int err = 0;
|
|
|
|
- if (level == 2 && is_dir) {
|
|
+ if (level >= 2 && is_dir) {
|
|
+ int count = 0;
|
|
/*
|
|
* For level 2 directory, bname will include parent name,
|
|
* like vendor/platform. So search back from platform dir
|
|
* to find this.
|
|
+ * Something similar for level 3 directory, but we're a PMU
|
|
+ * category folder, like vendor/platform/cpu.
|
|
*/
|
|
bname = (char *) fpath + ftwbuf->base - 2;
|
|
for (;;) {
|
|
if (*bname == '/')
|
|
+ count++;
|
|
+ if (count == level - 1)
|
|
break;
|
|
bname--;
|
|
}
|
|
@@ -999,13 +1004,13 @@ static int process_one_file(const char *fpath, const struct stat *sb,
|
|
level, sb->st_size, bname, fpath);
|
|
|
|
/* base dir or too deep */
|
|
- if (level == 0 || level > 3)
|
|
+ if (level == 0 || level > 4)
|
|
return 0;
|
|
|
|
|
|
/* model directory, reset topic */
|
|
if ((level == 1 && is_dir && is_leaf_dir(fpath)) ||
|
|
- (level == 2 && is_dir)) {
|
|
+ (level >= 2 && is_dir && is_leaf_dir(fpath))) {
|
|
if (close_table)
|
|
print_events_table_suffix(eventsfp);
|
|
|
|
--
|
|
2.27.0
|
|
|