perf record: Implement control commands handling
Implement handling of 'enable' and 'disable' control commands coming from control file descriptor. Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com> Acked-by: Jiri Olsa <jolsa@redhat.com> Acked-by: Namhyung Kim <namhyung@kernel.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lore.kernel.org/lkml/f0fde590-1320-dca1-39ff-da3322704d3b@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
68cd3b45b9
commit
acce022394
|
@ -1564,6 +1564,7 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
|
|||
bool disabled = false, draining = false;
|
||||
int fd;
|
||||
float ratio = 0;
|
||||
enum evlist_ctl_cmd cmd = EVLIST_CTL_CMD_UNSUPPORTED;
|
||||
|
||||
atexit(record__sig_exit);
|
||||
signal(SIGCHLD, sig_handler);
|
||||
|
@ -1883,6 +1884,21 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
|
|||
draining = true;
|
||||
}
|
||||
|
||||
if (evlist__ctlfd_process(rec->evlist, &cmd) > 0) {
|
||||
switch (cmd) {
|
||||
case EVLIST_CTL_CMD_ENABLE:
|
||||
pr_info(EVLIST_ENABLED_MSG);
|
||||
break;
|
||||
case EVLIST_CTL_CMD_DISABLE:
|
||||
pr_info(EVLIST_DISABLED_MSG);
|
||||
break;
|
||||
case EVLIST_CTL_CMD_ACK:
|
||||
case EVLIST_CTL_CMD_UNSUPPORTED:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* When perf is starting the traced process, at the end events
|
||||
* die with the process and we wait for that. Thus no need to
|
||||
|
|
Loading…
Reference in New Issue