mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 15:27:29 +00:00
libperf: Add perf_evlist__set_maps() function
Move the evlist__set_maps() function from tools/perf to libperf. Committer notes: Fix up reject due to earlier inversion in calling perf_evlist__init(). Signed-off-by: Jiri Olsa <jolsa@kernel.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Alexey Budankov <alexey.budankov@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Michael Petlan <mpetlan@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/20190721112506.12306-57-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
03617c22e3
commit
453fa03090
14 changed files with 83 additions and 67 deletions
|
@ -6,6 +6,7 @@
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <sys/prctl.h>
|
#include <sys/prctl.h>
|
||||||
#include <perf/cpumap.h>
|
#include <perf/cpumap.h>
|
||||||
|
#include <perf/evlist.h>
|
||||||
|
|
||||||
#include "parse-events.h"
|
#include "parse-events.h"
|
||||||
#include "evlist.h"
|
#include "evlist.h"
|
||||||
|
@ -72,7 +73,7 @@ int test__perf_time_to_tsc(struct test *test __maybe_unused, int subtest __maybe
|
||||||
evlist = evlist__new();
|
evlist = evlist__new();
|
||||||
CHECK_NOT_NULL__(evlist);
|
CHECK_NOT_NULL__(evlist);
|
||||||
|
|
||||||
perf_evlist__set_maps(evlist, cpus, threads);
|
perf_evlist__set_maps(&evlist->core, cpus, threads);
|
||||||
|
|
||||||
CHECK__(parse_events(evlist, "cycles:u", NULL));
|
CHECK__(parse_events(evlist, "cycles:u", NULL));
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <subcmd/pager.h>
|
#include <subcmd/pager.h>
|
||||||
|
#include <perf/evlist.h>
|
||||||
|
|
||||||
#include <linux/ctype.h>
|
#include <linux/ctype.h>
|
||||||
|
|
||||||
|
@ -3264,7 +3265,7 @@ static int set_maps(struct perf_script *script)
|
||||||
if (WARN_ONCE(script->allocated, "stats double allocation\n"))
|
if (WARN_ONCE(script->allocated, "stats double allocation\n"))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
perf_evlist__set_maps(evlist, script->cpus, script->threads);
|
perf_evlist__set_maps(&evlist->core, script->cpus, script->threads);
|
||||||
|
|
||||||
if (perf_evlist__alloc_stats(evlist, true))
|
if (perf_evlist__alloc_stats(evlist, true))
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
|
@ -83,6 +83,7 @@
|
||||||
#include <sys/resource.h>
|
#include <sys/resource.h>
|
||||||
|
|
||||||
#include <linux/ctype.h>
|
#include <linux/ctype.h>
|
||||||
|
#include <perf/evlist.h>
|
||||||
|
|
||||||
#define DEFAULT_SEPARATOR " "
|
#define DEFAULT_SEPARATOR " "
|
||||||
#define FREEZE_ON_SMI_PATH "devices/cpu/freeze_on_smi"
|
#define FREEZE_ON_SMI_PATH "devices/cpu/freeze_on_smi"
|
||||||
|
@ -1517,7 +1518,7 @@ static int set_maps(struct perf_stat *st)
|
||||||
if (WARN_ONCE(st->maps_allocated, "stats double allocation\n"))
|
if (WARN_ONCE(st->maps_allocated, "stats double allocation\n"))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
perf_evlist__set_maps(evsel_list, st->cpus, st->threads);
|
perf_evlist__set_maps(&evsel_list->core, st->cpus, st->threads);
|
||||||
|
|
||||||
if (perf_evlist__alloc_stats(evsel_list, true))
|
if (perf_evlist__alloc_stats(evsel_list, true))
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
#include <internal/evsel.h>
|
#include <internal/evsel.h>
|
||||||
#include <linux/zalloc.h>
|
#include <linux/zalloc.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <perf/cpumap.h>
|
||||||
|
#include <perf/threadmap.h>
|
||||||
|
|
||||||
void perf_evlist__init(struct perf_evlist *evlist)
|
void perf_evlist__init(struct perf_evlist *evlist)
|
||||||
{
|
{
|
||||||
|
@ -12,11 +14,39 @@ void perf_evlist__init(struct perf_evlist *evlist)
|
||||||
evlist->nr_entries = 0;
|
evlist->nr_entries = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void __perf_evlist__propagate_maps(struct perf_evlist *evlist,
|
||||||
|
struct perf_evsel *evsel)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* We already have cpus for evsel (via PMU sysfs) so
|
||||||
|
* keep it, if there's no target cpu list defined.
|
||||||
|
*/
|
||||||
|
if (!evsel->own_cpus || evlist->has_user_cpus) {
|
||||||
|
perf_cpu_map__put(evsel->cpus);
|
||||||
|
evsel->cpus = perf_cpu_map__get(evlist->cpus);
|
||||||
|
} else if (evsel->cpus != evsel->own_cpus) {
|
||||||
|
perf_cpu_map__put(evsel->cpus);
|
||||||
|
evsel->cpus = perf_cpu_map__get(evsel->own_cpus);
|
||||||
|
}
|
||||||
|
|
||||||
|
perf_thread_map__put(evsel->threads);
|
||||||
|
evsel->threads = perf_thread_map__get(evlist->threads);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void perf_evlist__propagate_maps(struct perf_evlist *evlist)
|
||||||
|
{
|
||||||
|
struct perf_evsel *evsel;
|
||||||
|
|
||||||
|
perf_evlist__for_each_evsel(evlist, evsel)
|
||||||
|
__perf_evlist__propagate_maps(evlist, evsel);
|
||||||
|
}
|
||||||
|
|
||||||
void perf_evlist__add(struct perf_evlist *evlist,
|
void perf_evlist__add(struct perf_evlist *evlist,
|
||||||
struct perf_evsel *evsel)
|
struct perf_evsel *evsel)
|
||||||
{
|
{
|
||||||
list_add_tail(&evsel->node, &evlist->entries);
|
list_add_tail(&evsel->node, &evlist->entries);
|
||||||
evlist->nr_entries += 1;
|
evlist->nr_entries += 1;
|
||||||
|
__perf_evlist__propagate_maps(evlist, evsel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void perf_evlist__remove(struct perf_evlist *evlist,
|
void perf_evlist__remove(struct perf_evlist *evlist,
|
||||||
|
@ -60,3 +90,27 @@ void perf_evlist__delete(struct perf_evlist *evlist)
|
||||||
{
|
{
|
||||||
free(evlist);
|
free(evlist);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void perf_evlist__set_maps(struct perf_evlist *evlist,
|
||||||
|
struct perf_cpu_map *cpus,
|
||||||
|
struct perf_thread_map *threads)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Allow for the possibility that one or another of the maps isn't being
|
||||||
|
* changed i.e. don't put it. Note we are assuming the maps that are
|
||||||
|
* being applied are brand new and evlist is taking ownership of the
|
||||||
|
* original reference count of 1. If that is not the case it is up to
|
||||||
|
* the caller to increase the reference count.
|
||||||
|
*/
|
||||||
|
if (cpus != evlist->cpus) {
|
||||||
|
perf_cpu_map__put(evlist->cpus);
|
||||||
|
evlist->cpus = perf_cpu_map__get(cpus);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (threads != evlist->threads) {
|
||||||
|
perf_thread_map__put(evlist->threads);
|
||||||
|
evlist->threads = perf_thread_map__get(threads);
|
||||||
|
}
|
||||||
|
|
||||||
|
perf_evlist__propagate_maps(evlist);
|
||||||
|
}
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
|
|
||||||
struct perf_evlist;
|
struct perf_evlist;
|
||||||
struct perf_evsel;
|
struct perf_evsel;
|
||||||
|
struct perf_cpu_map;
|
||||||
|
struct perf_thread_map;
|
||||||
|
|
||||||
LIBPERF_API void perf_evlist__init(struct perf_evlist *evlist);
|
LIBPERF_API void perf_evlist__init(struct perf_evlist *evlist);
|
||||||
LIBPERF_API void perf_evlist__add(struct perf_evlist *evlist,
|
LIBPERF_API void perf_evlist__add(struct perf_evlist *evlist,
|
||||||
|
@ -22,4 +24,8 @@ LIBPERF_API struct perf_evsel* perf_evlist__next(struct perf_evlist *evlist,
|
||||||
(pos) != NULL; \
|
(pos) != NULL; \
|
||||||
(pos) = perf_evlist__next((evlist), (pos)))
|
(pos) = perf_evlist__next((evlist), (pos)))
|
||||||
|
|
||||||
|
LIBPERF_API void perf_evlist__set_maps(struct perf_evlist *evlist,
|
||||||
|
struct perf_cpu_map *cpus,
|
||||||
|
struct perf_thread_map *threads);
|
||||||
|
|
||||||
#endif /* __LIBPERF_EVLIST_H */
|
#endif /* __LIBPERF_EVLIST_H */
|
||||||
|
|
|
@ -20,6 +20,7 @@ LIBPERF_0.0.1 {
|
||||||
perf_evlist__add;
|
perf_evlist__add;
|
||||||
perf_evlist__remove;
|
perf_evlist__remove;
|
||||||
perf_evlist__next;
|
perf_evlist__next;
|
||||||
|
perf_evlist__set_maps;
|
||||||
local:
|
local:
|
||||||
*;
|
*;
|
||||||
};
|
};
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <perf/cpumap.h>
|
#include <perf/cpumap.h>
|
||||||
|
#include <perf/evlist.h>
|
||||||
|
|
||||||
#include "parse-events.h"
|
#include "parse-events.h"
|
||||||
#include "evlist.h"
|
#include "evlist.h"
|
||||||
|
@ -629,7 +630,7 @@ static int do_test_code_reading(bool try_kcore)
|
||||||
goto out_put;
|
goto out_put;
|
||||||
}
|
}
|
||||||
|
|
||||||
perf_evlist__set_maps(evlist, cpus, threads);
|
perf_evlist__set_maps(&evlist->core, cpus, threads);
|
||||||
|
|
||||||
str = do_determine_event(excl_kernel);
|
str = do_determine_event(excl_kernel);
|
||||||
pr_debug("Parsing event '%s'\n", str);
|
pr_debug("Parsing event '%s'\n", str);
|
||||||
|
@ -658,7 +659,7 @@ static int do_test_code_reading(bool try_kcore)
|
||||||
*/
|
*/
|
||||||
perf_cpu_map__get(cpus);
|
perf_cpu_map__get(cpus);
|
||||||
perf_thread_map__get(threads);
|
perf_thread_map__get(threads);
|
||||||
perf_evlist__set_maps(evlist, NULL, NULL);
|
perf_evlist__set_maps(&evlist->core, NULL, NULL);
|
||||||
evlist__delete(evlist);
|
evlist__delete(evlist);
|
||||||
evlist = NULL;
|
evlist = NULL;
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/prctl.h>
|
#include <sys/prctl.h>
|
||||||
#include <perf/cpumap.h>
|
#include <perf/cpumap.h>
|
||||||
|
#include <perf/evlist.h>
|
||||||
|
|
||||||
#include "parse-events.h"
|
#include "parse-events.h"
|
||||||
#include "evlist.h"
|
#include "evlist.h"
|
||||||
|
@ -82,7 +83,7 @@ int test__keep_tracking(struct test *test __maybe_unused, int subtest __maybe_un
|
||||||
evlist = evlist__new();
|
evlist = evlist__new();
|
||||||
CHECK_NOT_NULL__(evlist);
|
CHECK_NOT_NULL__(evlist);
|
||||||
|
|
||||||
perf_evlist__set_maps(evlist, cpus, threads);
|
perf_evlist__set_maps(&evlist->core, cpus, threads);
|
||||||
|
|
||||||
CHECK__(parse_events(evlist, "dummy:u", NULL));
|
CHECK__(parse_events(evlist, "dummy:u", NULL));
|
||||||
CHECK__(parse_events(evlist, "cycles:u", NULL));
|
CHECK__(parse_events(evlist, "cycles:u", NULL));
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
#include "tests.h"
|
#include "tests.h"
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
#include <perf/evlist.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This test will generate random numbers of calls to some getpid syscalls,
|
* This test will generate random numbers of calls to some getpid syscalls,
|
||||||
|
@ -68,7 +69,7 @@ int test__basic_mmap(struct test *test __maybe_unused, int subtest __maybe_unuse
|
||||||
goto out_free_cpus;
|
goto out_free_cpus;
|
||||||
}
|
}
|
||||||
|
|
||||||
perf_evlist__set_maps(evlist, cpus, threads);
|
perf_evlist__set_maps(&evlist->core, cpus, threads);
|
||||||
|
|
||||||
for (i = 0; i < nsyscalls; ++i) {
|
for (i = 0; i < nsyscalls; ++i) {
|
||||||
char name[64];
|
char name[64];
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include "util/evlist.h"
|
#include "util/evlist.h"
|
||||||
#include "util/cpumap.h"
|
#include "util/cpumap.h"
|
||||||
#include "util/thread_map.h"
|
#include "util/thread_map.h"
|
||||||
|
#include <perf/evlist.h>
|
||||||
|
|
||||||
#define NR_LOOPS 10000000
|
#define NR_LOOPS 10000000
|
||||||
|
|
||||||
|
@ -64,7 +65,7 @@ static int __test__sw_clock_freq(enum perf_sw_ids clock_id)
|
||||||
goto out_free_maps;
|
goto out_free_maps;
|
||||||
}
|
}
|
||||||
|
|
||||||
perf_evlist__set_maps(evlist, cpus, threads);
|
perf_evlist__set_maps(&evlist->core, cpus, threads);
|
||||||
|
|
||||||
cpus = NULL;
|
cpus = NULL;
|
||||||
threads = NULL;
|
threads = NULL;
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <linux/zalloc.h>
|
#include <linux/zalloc.h>
|
||||||
#include <perf/cpumap.h>
|
#include <perf/cpumap.h>
|
||||||
|
#include <perf/evlist.h>
|
||||||
|
|
||||||
#include "parse-events.h"
|
#include "parse-events.h"
|
||||||
#include "evlist.h"
|
#include "evlist.h"
|
||||||
|
@ -354,7 +355,7 @@ int test__switch_tracking(struct test *test __maybe_unused, int subtest __maybe_
|
||||||
goto out_err;
|
goto out_err;
|
||||||
}
|
}
|
||||||
|
|
||||||
perf_evlist__set_maps(evlist, cpus, threads);
|
perf_evlist__set_maps(&evlist->core, cpus, threads);
|
||||||
|
|
||||||
/* First event */
|
/* First event */
|
||||||
err = parse_events(evlist, "cpu-clock:u", NULL);
|
err = parse_events(evlist, "cpu-clock:u", NULL);
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
#include <perf/evlist.h>
|
||||||
|
|
||||||
static int exited;
|
static int exited;
|
||||||
static int nr_exit;
|
static int nr_exit;
|
||||||
|
@ -71,7 +72,7 @@ int test__task_exit(struct test *test __maybe_unused, int subtest __maybe_unused
|
||||||
goto out_free_maps;
|
goto out_free_maps;
|
||||||
}
|
}
|
||||||
|
|
||||||
perf_evlist__set_maps(evlist, cpus, threads);
|
perf_evlist__set_maps(&evlist->core, cpus, threads);
|
||||||
|
|
||||||
cpus = NULL;
|
cpus = NULL;
|
||||||
threads = NULL;
|
threads = NULL;
|
||||||
|
|
|
@ -51,7 +51,7 @@ void evlist__init(struct evlist *evlist, struct perf_cpu_map *cpus,
|
||||||
for (i = 0; i < PERF_EVLIST__HLIST_SIZE; ++i)
|
for (i = 0; i < PERF_EVLIST__HLIST_SIZE; ++i)
|
||||||
INIT_HLIST_HEAD(&evlist->heads[i]);
|
INIT_HLIST_HEAD(&evlist->heads[i]);
|
||||||
perf_evlist__init(&evlist->core);
|
perf_evlist__init(&evlist->core);
|
||||||
perf_evlist__set_maps(evlist, cpus, threads);
|
perf_evlist__set_maps(&evlist->core, cpus, threads);
|
||||||
fdarray__init(&evlist->pollfd, 64);
|
fdarray__init(&evlist->pollfd, 64);
|
||||||
evlist->workload.pid = -1;
|
evlist->workload.pid = -1;
|
||||||
evlist->bkw_mmap_state = BKW_MMAP_NOTREADY;
|
evlist->bkw_mmap_state = BKW_MMAP_NOTREADY;
|
||||||
|
@ -152,33 +152,6 @@ void evlist__delete(struct evlist *evlist)
|
||||||
free(evlist);
|
free(evlist);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __perf_evlist__propagate_maps(struct evlist *evlist,
|
|
||||||
struct evsel *evsel)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* We already have cpus for evsel (via PMU sysfs) so
|
|
||||||
* keep it, if there's no target cpu list defined.
|
|
||||||
*/
|
|
||||||
if (!evsel->core.own_cpus || evlist->core.has_user_cpus) {
|
|
||||||
perf_cpu_map__put(evsel->core.cpus);
|
|
||||||
evsel->core.cpus = perf_cpu_map__get(evlist->core.cpus);
|
|
||||||
} else if (evsel->core.cpus != evsel->core.own_cpus) {
|
|
||||||
perf_cpu_map__put(evsel->core.cpus);
|
|
||||||
evsel->core.cpus = perf_cpu_map__get(evsel->core.own_cpus);
|
|
||||||
}
|
|
||||||
|
|
||||||
perf_thread_map__put(evsel->core.threads);
|
|
||||||
evsel->core.threads = perf_thread_map__get(evlist->core.threads);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void perf_evlist__propagate_maps(struct evlist *evlist)
|
|
||||||
{
|
|
||||||
struct evsel *evsel;
|
|
||||||
|
|
||||||
evlist__for_each_entry(evlist, evsel)
|
|
||||||
__perf_evlist__propagate_maps(evlist, evsel);
|
|
||||||
}
|
|
||||||
|
|
||||||
void evlist__add(struct evlist *evlist, struct evsel *entry)
|
void evlist__add(struct evlist *evlist, struct evsel *entry)
|
||||||
{
|
{
|
||||||
entry->evlist = evlist;
|
entry->evlist = evlist;
|
||||||
|
@ -189,8 +162,6 @@ void evlist__add(struct evlist *evlist, struct evsel *entry)
|
||||||
|
|
||||||
if (evlist->core.nr_entries == 1)
|
if (evlist->core.nr_entries == 1)
|
||||||
perf_evlist__set_id_pos(evlist);
|
perf_evlist__set_id_pos(evlist);
|
||||||
|
|
||||||
__perf_evlist__propagate_maps(evlist, entry);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void evlist__remove(struct evlist *evlist, struct evsel *evsel)
|
void evlist__remove(struct evlist *evlist, struct evsel *evsel)
|
||||||
|
@ -1097,7 +1068,7 @@ int perf_evlist__create_maps(struct evlist *evlist, struct target *target)
|
||||||
|
|
||||||
evlist->core.has_user_cpus = !!target->cpu_list;
|
evlist->core.has_user_cpus = !!target->cpu_list;
|
||||||
|
|
||||||
perf_evlist__set_maps(evlist, cpus, threads);
|
perf_evlist__set_maps(&evlist->core, cpus, threads);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -1106,29 +1077,6 @@ out_delete_threads:
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void perf_evlist__set_maps(struct evlist *evlist, struct perf_cpu_map *cpus,
|
|
||||||
struct perf_thread_map *threads)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* Allow for the possibility that one or another of the maps isn't being
|
|
||||||
* changed i.e. don't put it. Note we are assuming the maps that are
|
|
||||||
* being applied are brand new and evlist is taking ownership of the
|
|
||||||
* original reference count of 1. If that is not the case it is up to
|
|
||||||
* the caller to increase the reference count.
|
|
||||||
*/
|
|
||||||
if (cpus != evlist->core.cpus) {
|
|
||||||
perf_cpu_map__put(evlist->core.cpus);
|
|
||||||
evlist->core.cpus = perf_cpu_map__get(cpus);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (threads != evlist->core.threads) {
|
|
||||||
perf_thread_map__put(evlist->core.threads);
|
|
||||||
evlist->core.threads = perf_thread_map__get(threads);
|
|
||||||
}
|
|
||||||
|
|
||||||
perf_evlist__propagate_maps(evlist);
|
|
||||||
}
|
|
||||||
|
|
||||||
void __perf_evlist__set_sample_bit(struct evlist *evlist,
|
void __perf_evlist__set_sample_bit(struct evlist *evlist,
|
||||||
enum perf_event_sample_format bit)
|
enum perf_event_sample_format bit)
|
||||||
{
|
{
|
||||||
|
@ -1381,7 +1329,7 @@ static int perf_evlist__create_syswide_maps(struct evlist *evlist)
|
||||||
if (!threads)
|
if (!threads)
|
||||||
goto out_put;
|
goto out_put;
|
||||||
|
|
||||||
perf_evlist__set_maps(evlist, cpus, threads);
|
perf_evlist__set_maps(&evlist->core, cpus, threads);
|
||||||
out:
|
out:
|
||||||
return err;
|
return err;
|
||||||
out_put:
|
out_put:
|
||||||
|
|
|
@ -191,8 +191,6 @@ int perf_evlist__enable_event_idx(struct evlist *evlist,
|
||||||
void perf_evlist__set_selected(struct evlist *evlist,
|
void perf_evlist__set_selected(struct evlist *evlist,
|
||||||
struct evsel *evsel);
|
struct evsel *evsel);
|
||||||
|
|
||||||
void perf_evlist__set_maps(struct evlist *evlist, struct perf_cpu_map *cpus,
|
|
||||||
struct perf_thread_map *threads);
|
|
||||||
int perf_evlist__create_maps(struct evlist *evlist, struct target *target);
|
int perf_evlist__create_maps(struct evlist *evlist, struct target *target);
|
||||||
int perf_evlist__apply_filters(struct evlist *evlist, struct evsel **err_evsel);
|
int perf_evlist__apply_filters(struct evlist *evlist, struct evsel **err_evsel);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue