perf evlist: Introduce {prepare,start}_workload refactored from 'perf record'
So that we can easily start a workload in other tools. Cc: David Ahern <dsahern@gmail.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/n/tip-zdsksd4aphu0nltg2lpwsw3x@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
@ -6,6 +6,7 @@
|
||||
#include "../perf.h"
|
||||
#include "event.h"
|
||||
#include "util.h"
|
||||
#include <unistd.h>
|
||||
|
||||
struct pollfd;
|
||||
struct thread_map;
|
||||
@ -22,6 +23,10 @@ struct perf_evlist {
|
||||
int nr_fds;
|
||||
int nr_mmaps;
|
||||
int mmap_len;
|
||||
struct {
|
||||
int cork_fd;
|
||||
pid_t pid;
|
||||
} workload;
|
||||
bool overwrite;
|
||||
union perf_event event_copy;
|
||||
struct perf_mmap *mmap;
|
||||
@ -68,6 +73,11 @@ int perf_evlist__open(struct perf_evlist *evlist, bool group);
|
||||
void perf_evlist__config_attrs(struct perf_evlist *evlist,
|
||||
struct perf_record_opts *opts);
|
||||
|
||||
int perf_evlist__prepare_workload(struct perf_evlist *evlist,
|
||||
struct perf_record_opts *opts,
|
||||
const char *argv[]);
|
||||
int perf_evlist__start_workload(struct perf_evlist *evlist);
|
||||
|
||||
int perf_evlist__alloc_mmap(struct perf_evlist *evlist);
|
||||
int perf_evlist__mmap(struct perf_evlist *evlist, int pages, bool overwrite);
|
||||
void perf_evlist__munmap(struct perf_evlist *evlist);
|
||||
|
Reference in New Issue
Block a user