forked from luck/tmp_suning_uos_patched
perf tools: Rename group to topdown
The group.h/c only include TopDown group related functions. The name "group" is too generic and inaccurate. Use the name "topdown" to replace it. Move topdown related functions to a dedicated file, topdown.c. Signed-off-by: Kan Liang <kan.liang@linux.intel.com> Acked-by: Jiri Olsa <jolsa@redhat.com> Acked-by: Namhyung Kim <namhyung@kernel.org> Cc: Andi Kleen <ak@linux.intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lore.kernel.org/lkml/20200911144808.27603-2-kan.liang@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
c57f5eaa09
commit
687986bbeb
|
@ -3,7 +3,7 @@ perf-y += tsc.o
|
||||||
perf-y += pmu.o
|
perf-y += pmu.o
|
||||||
perf-y += kvm-stat.o
|
perf-y += kvm-stat.o
|
||||||
perf-y += perf_regs.o
|
perf-y += perf_regs.o
|
||||||
perf-y += group.o
|
perf-y += topdown.o
|
||||||
perf-y += machine.o
|
perf-y += machine.o
|
||||||
perf-y += event.o
|
perf-y += event.o
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "api/fs/fs.h"
|
#include "api/fs/fs.h"
|
||||||
#include "util/group.h"
|
#include "util/topdown.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check whether we can use a group for top down.
|
* Check whether we can use a group for top down.
|
|
@ -56,7 +56,7 @@
|
||||||
#include "util/cpumap.h"
|
#include "util/cpumap.h"
|
||||||
#include "util/thread_map.h"
|
#include "util/thread_map.h"
|
||||||
#include "util/counts.h"
|
#include "util/counts.h"
|
||||||
#include "util/group.h"
|
#include "util/topdown.h"
|
||||||
#include "util/session.h"
|
#include "util/session.h"
|
||||||
#include "util/tool.h"
|
#include "util/tool.h"
|
||||||
#include "util/string2.h"
|
#include "util/string2.h"
|
||||||
|
@ -1481,55 +1481,6 @@ static int perf_stat_init_aggr_mode_file(struct perf_stat *st)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int topdown_filter_events(const char **attr, char **str, bool use_group)
|
|
||||||
{
|
|
||||||
int off = 0;
|
|
||||||
int i;
|
|
||||||
int len = 0;
|
|
||||||
char *s;
|
|
||||||
|
|
||||||
for (i = 0; attr[i]; i++) {
|
|
||||||
if (pmu_have_event("cpu", attr[i])) {
|
|
||||||
len += strlen(attr[i]) + 1;
|
|
||||||
attr[i - off] = attr[i];
|
|
||||||
} else
|
|
||||||
off++;
|
|
||||||
}
|
|
||||||
attr[i - off] = NULL;
|
|
||||||
|
|
||||||
*str = malloc(len + 1 + 2);
|
|
||||||
if (!*str)
|
|
||||||
return -1;
|
|
||||||
s = *str;
|
|
||||||
if (i - off == 0) {
|
|
||||||
*s = 0;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (use_group)
|
|
||||||
*s++ = '{';
|
|
||||||
for (i = 0; attr[i]; i++) {
|
|
||||||
strcpy(s, attr[i]);
|
|
||||||
s += strlen(s);
|
|
||||||
*s++ = ',';
|
|
||||||
}
|
|
||||||
if (use_group) {
|
|
||||||
s[-1] = '}';
|
|
||||||
*s = 0;
|
|
||||||
} else
|
|
||||||
s[-1] = 0;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak bool arch_topdown_check_group(bool *warn)
|
|
||||||
{
|
|
||||||
*warn = false;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak void arch_topdown_group_warn(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Add default attributes, if there were no attributes specified or
|
* Add default attributes, if there were no attributes specified or
|
||||||
* if -d/--detailed, -d -d or -d -d -d is used:
|
* if -d/--detailed, -d -d or -d -d -d is used:
|
||||||
|
|
|
@ -101,6 +101,7 @@ perf-y += call-path.o
|
||||||
perf-y += rwsem.o
|
perf-y += rwsem.o
|
||||||
perf-y += thread-stack.o
|
perf-y += thread-stack.o
|
||||||
perf-y += spark.o
|
perf-y += spark.o
|
||||||
|
perf-y += topdown.o
|
||||||
perf-$(CONFIG_AUXTRACE) += auxtrace.o
|
perf-$(CONFIG_AUXTRACE) += auxtrace.o
|
||||||
perf-$(CONFIG_AUXTRACE) += intel-pt-decoder/
|
perf-$(CONFIG_AUXTRACE) += intel-pt-decoder/
|
||||||
perf-$(CONFIG_AUXTRACE) += intel-pt.o
|
perf-$(CONFIG_AUXTRACE) += intel-pt.o
|
||||||
|
|
53
tools/perf/util/topdown.c
Normal file
53
tools/perf/util/topdown.c
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "pmu.h"
|
||||||
|
#include "topdown.h"
|
||||||
|
|
||||||
|
int topdown_filter_events(const char **attr, char **str, bool use_group)
|
||||||
|
{
|
||||||
|
int off = 0;
|
||||||
|
int i;
|
||||||
|
int len = 0;
|
||||||
|
char *s;
|
||||||
|
|
||||||
|
for (i = 0; attr[i]; i++) {
|
||||||
|
if (pmu_have_event("cpu", attr[i])) {
|
||||||
|
len += strlen(attr[i]) + 1;
|
||||||
|
attr[i - off] = attr[i];
|
||||||
|
} else
|
||||||
|
off++;
|
||||||
|
}
|
||||||
|
attr[i - off] = NULL;
|
||||||
|
|
||||||
|
*str = malloc(len + 1 + 2);
|
||||||
|
if (!*str)
|
||||||
|
return -1;
|
||||||
|
s = *str;
|
||||||
|
if (i - off == 0) {
|
||||||
|
*s = 0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (use_group)
|
||||||
|
*s++ = '{';
|
||||||
|
for (i = 0; attr[i]; i++) {
|
||||||
|
strcpy(s, attr[i]);
|
||||||
|
s += strlen(s);
|
||||||
|
*s++ = ',';
|
||||||
|
}
|
||||||
|
if (use_group) {
|
||||||
|
s[-1] = '}';
|
||||||
|
*s = 0;
|
||||||
|
} else
|
||||||
|
s[-1] = 0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak bool arch_topdown_check_group(bool *warn)
|
||||||
|
{
|
||||||
|
*warn = false;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak void arch_topdown_group_warn(void)
|
||||||
|
{
|
||||||
|
}
|
|
@ -1,8 +1,10 @@
|
||||||
/* SPDX-License-Identifier: GPL-2.0 */
|
/* SPDX-License-Identifier: GPL-2.0 */
|
||||||
#ifndef GROUP_H
|
#ifndef TOPDOWN_H
|
||||||
#define GROUP_H 1
|
#define TOPDOWN_H 1
|
||||||
|
|
||||||
bool arch_topdown_check_group(bool *warn);
|
bool arch_topdown_check_group(bool *warn);
|
||||||
void arch_topdown_group_warn(void);
|
void arch_topdown_group_warn(void);
|
||||||
|
|
||||||
|
int topdown_filter_events(const char **attr, char **str, bool use_group);
|
||||||
|
|
||||||
#endif
|
#endif
|
Loading…
Reference in New Issue
Block a user