Messages in this thread Patch in this message | | | Subject | Re: [PATCH 4/6] perf tools: Add FIFO file names as alternative options to --control | From | Adrian Hunter <> | Date | Mon, 31 Aug 2020 16:27:52 +0300 |
| |
On 31/08/20 4:19 pm, Jiri Olsa wrote: > On Sat, Aug 29, 2020 at 01:50:13PM +0300, Adrian Hunter wrote: > > SNIP > >> + *p = '\0'; >> + >> + /* >> + * O_RDWR avoids POLLHUPs which is necessary to allow the other >> + * end of a FIFO to be repeatedly opened and closed. >> + */ >> + fd = open(s, O_RDWR | O_NONBLOCK | O_CLOEXEC); >> + if (fd < 0) { >> + pr_err("Failed to open '%s'\n", s); >> + ret = -errno; >> + goto out_free; >> + } >> + *ctl_fd = fd; >> + *ctl_fd_close = true; >> + >> + if (p && *++p) { >> + /* O_RDWR | O_NONBLOCK means the other end need not be open */ >> + fd = open(p, O_RDWR | O_NONBLOCK | O_CLOEXEC); >> + if (fd < 0) { >> + pr_err("Failed to open '%s'\n", p); >> + ret = -errno; >> + goto out_free; >> + } >> + *ctl_fd_ack = fd; >> + } >> + >> +out_free: >> + free(s); >> + return ret; >> +} >> + >> +int evlist__parse_control(const char *str, int *ctl_fd, int *ctl_fd_ack, bool *ctl_fd_close) >> { >> char *comma = NULL, *endptr = NULL; >> >> if (strncmp(str, "fd:", 3)) >> - return -EINVAL; >> + return evlist__parse_control_names(str, ctl_fd, ctl_fd_ack, ctl_fd_close); > > do we want to mention somewhere that the fifo name is everything > except for 'fd:' ?
It is only mentioned in the documentation i.e.
--- a/tools/perf/Documentation/perf-record.txt +++ b/tools/perf/Documentation/perf-record.txt @@ -627,7 +627,9 @@ option. The -e option and this one can be mixed and matched. Events can be grouped using the {} notation. endif::HAVE_LIBPFM[] +--control=ctl-fifo[,ack-fifo]:: --control=fd:ctl-fd[,ack-fd]:: +ctl-fifo / ack-fifo are opened and used as ctl-fd / ack-fd as follows. Listen on ctl-fd descriptor for command to control measurement ('enable': enable events, 'disable': disable events). Measurements can be started with events disabled using --delay=-1 option. Optionally send control command completion ('ack\n') to ack-fd descriptor > > also how likely is that we will add another channel type that > will need another keyword (likd 'fd:')? I originaly thought > we'd use 'fifo:filename' for this ... would be great to somehow > avoid future confusions
Sure, I will add fifo: in V2
| |