perf_evsel__pause() is introduced to pause a ring buffer. Since output of a evsel is bound together, ioctl() on the first file is enough.
Signed-off-by: Wang Nan <[email protected]> Signed-off-by: He Kuang <[email protected]> Cc: Arnaldo Carvalho de Melo <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Masami Hiramatsu <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Zefan Li <[email protected]> Cc: [email protected] --- tools/perf/util/evsel.c | 6 ++++++ tools/perf/util/evsel.h | 1 + 2 files changed, 7 insertions(+) diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index 7498d58..0b562cf 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -1009,6 +1009,12 @@ int perf_evsel__disable(struct perf_evsel *evsel) 0); } +int perf_evsel__pause(struct perf_evsel *evsel, bool pause) +{ + return perf_evsel__run_ioctl(evsel, 1, 1, PERF_EVENT_IOC_PAUSE_OUTPUT, + (void *)(pause ? 1UL : 0UL)); +} + int perf_evsel__alloc_id(struct perf_evsel *evsel, int ncpus, int nthreads) { if (ncpus == 0 || nthreads == 0) diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h index 022fcff..d5ae7ba 100644 --- a/tools/perf/util/evsel.h +++ b/tools/perf/util/evsel.h @@ -230,6 +230,7 @@ int perf_evsel__apply_filter(struct perf_evsel *evsel, int ncpus, int nthreads, const char *filter); int perf_evsel__enable(struct perf_evsel *evsel); int perf_evsel__disable(struct perf_evsel *evsel); +int perf_evsel__pause(struct perf_evsel *evsel, bool pause); int perf_evsel__open_per_cpu(struct perf_evsel *evsel, struct cpu_map *cpus); -- 1.8.3.4

