perf tools: Copy metric events properly when expand cgroups
The metricgroup__copy_metric_events() is to handle metrics events when expanding event for cgroups. As the metric events keep pointers to evsel, it should be refreshed when events are cloned during the operation. The perf_stat__collect_metric_expr() is also called in case an event has a metric directly. During the copy, it references evsel by index as the evlist now has cloned evsels for the given cgroup. Also kernel test robot found an issue in the python module import so add empty implementations of those two functions to fix it. Reported-by: kernel test robot <rong.a.chen@intel.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org> Acked-by: Jiri Olsa <jolsa@redhat.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Ian Rogers <irogers@google.com> Cc: John Garry <john.garry@huawei.com> Cc: Kajol Jain <kjain@linux.ibm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lore.kernel.org/lkml/20200924124455.336326-4-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:

committed by
Arnaldo Carvalho de Melo

parent
d1c5a0e86a
commit
b214ba8c42
@@ -15,6 +15,8 @@
|
||||
#include "thread_map.h"
|
||||
#include "trace-event.h"
|
||||
#include "mmap.h"
|
||||
#include "stat.h"
|
||||
#include "metricgroup.h"
|
||||
#include "util/env.h"
|
||||
#include <internal/lib.h>
|
||||
#include "util.h"
|
||||
@@ -60,6 +62,23 @@ int parse_callchain_record(const char *arg __maybe_unused,
|
||||
*/
|
||||
struct perf_env perf_env;
|
||||
|
||||
/*
|
||||
* Add this one here not to drag util/stat-shadow.c
|
||||
*/
|
||||
void perf_stat__collect_metric_expr(struct evlist *evsel_list)
|
||||
{
|
||||
}
|
||||
|
||||
/*
|
||||
* Add this one here not to drag util/metricgroup.c
|
||||
*/
|
||||
int metricgroup__copy_metric_events(struct evlist *evlist, struct cgroup *cgrp,
|
||||
struct rblist *new_metric_events,
|
||||
struct rblist *old_metric_events)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Support debug printing even though util/debug.c is not linked. That means
|
||||
* implementing 'verbose' and 'eprintf'.
|
||||
|
Reference in New Issue
Block a user