All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@redhat.com>
To: Alexey Budankov <alexey.budankov@linux.intel.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>,
	Andi Kleen <ak@linux.intel.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Namhyung Kim <namhyung@kernel.org>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v5 13/13] perf record: introduce --ctl-fd[-ack] options
Date: Sat, 6 Jun 2020 10:27:53 +0200	[thread overview]
Message-ID: <20200606082753.GA1449048@krava> (raw)
In-Reply-To: <c4f3fc64-0ea1-8a5a-ee9d-7d581510c70b@linux.intel.com>

On Fri, Jun 05, 2020 at 05:47:28PM +0300, Alexey Budankov wrote:
> 
> On 05.06.2020 16:57, Jiri Olsa wrote:
> > On Fri, Jun 05, 2020 at 04:15:52PM +0300, Alexey Budankov wrote:
> >>
> >> On 05.06.2020 13:51, Jiri Olsa wrote:
> >>> On Tue, Jun 02, 2020 at 04:43:58PM +0300, Adrian Hunter wrote:
> >>>> On 2/06/20 12:12 pm, Alexey Budankov wrote:
> >>>>>
> >>>>> On 02.06.2020 11:32, Alexey Budankov wrote:
> >>>>>>
> >>>>>> On 02.06.2020 2:37, Andi Kleen wrote:
> >>>>>>>>> or a pathname, or including also the event default of "disabled".
> >>>>>>>>
> >>>>>>>> For my cases conversion of pathnames into open fds belongs to external
> >>>>>>>> controlling process e.g. like in the examples provided in the patch set.
> >>>>>>>> Not sure about "event default of 'disabled'"
> >>>>>>>
> >>>>>>> It would be nicer for manual use cases if perf supported the path names
> >>>>>>> directly like in Adrian's example, not needing a complex wrapper script.
> >>>>>>
> >>>>>> fds interface is required for VTune integration since VTune wants control
> >>>>>> over files creation aside of Perf tool process. The script demonstrates
> >>>>>> just one possible use case.
> >>>>>>
> >>>>>> Control files could easily be implemented on top of fds making open operations
> >>>>>> for paths and then initializing fds. Interface below is vague and with explicit
> >>>>>> options like below it could be more explicit:
> >>>>>> --ctl-file /tmp/my-perf.fifo --ctl-file-ack /tmp/my-perf-ack.fifo
> >>>>>
> >>>>> Or even clearer:
> >>>>>
> >>>>> --ctl-fifo /tmp/my-perf --ctl-fifo-ack /tmp/my-perf-ack
> >>>>
> >>>> If people are OK with having so many options, then that is fine by me.
> >>>
> >>> the single option Adrian suggested seems better to me:
> >>>
> >>>  --control
> >>>  --control 11
> >>>  --control 11,15
> >>
> >> What if a user specifies fifos named like this above, not fds?
> >>
> >>>  --control 11,15,disabled
> >>>  --control 11,,disabled
> >>>  --control /tmp/my-perf.fifo
> >>>  --control /tmp/my-perf.fifo,/tmp/my-perf-ack.fifo
> >>
> >> What if a user wants not fifos but other type of comm channels?
> >>
> >>>  --control /tmp/my-perf.fifo,/tmp/my-perf-ack.fifo,disabled
> >>>  --control /tmp/my-perf.fifo,,disabled
> >>>
> >>> we already support this kind of options arguments, like for --call-graph
> >>>
> >>> jirka
> >>>
> >>
> >> IMHO,
> >> this interface, of course, looks more compact (in amount of options) however
> >> the other side it is less user friendly. One simple option for one simple
> >> purpose is more convenient as for users as for developers. Also complex
> >> option syntax tends to have limitations and there are probably more
> >> non-obvious ones.
> >>
> >> Please speak up. I might have missed something meaningful.
> > 
> > how about specify the type like:
> > 
> > --control fd:1,2,...
> 
> What do these ... mean?

other possible options

> 
> > --control fifo:/tmp/fifo1,/tmp/fifo2
> > --control xxx:....
> > 
> > this way we can extend the functionality in the future
> > and stay backward compatible, while keeping single option
> 
> Well, it clarifies more. However it still implicitly assumes
> and requires proper ordering e.g. 1 is ctl-fd and 2 is ack-fd
> and if there are some more positions there will be gaps like
> --control fd:10,,something,,something ...

right, that's what we do for other options

> 
> Why is one single option with complex syntax more preferable
> than several simple options? Also it would still consume almost
> equal amount of command line space in shell.

I think it's better for future.. say if there's going to be support
for passing file paths you'll need to add something like --ctl-fifo
and --ctl-fifo-ack no?  with single option we'd just add something
like:

  --control fifo:/tmp/my-perf.fifo,/tmp/my-perf-ack.fifo

jirka


  parent reply	other threads:[~2020-06-06  8:28 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-01 15:46 [PATCH v5 00/13] perf: support enable and disable commands in stat and record modes Alexey Budankov
2020-06-01 15:51 ` [PATCH v5 01/13] tools/libperf: introduce static poll file descriptors Alexey Budankov
2020-06-01 15:51 ` [PATCH v5 02/13] perf evlist: introduce control " Alexey Budankov
2020-06-01 15:52 ` [PATCH v5 03/13] perf evlist: implement control command handling functions Alexey Budankov
2020-06-01 15:53 ` [PATCH v5 04/13] perf stat: factor out body of event handling loop for system wide Alexey Budankov
2020-06-01 15:55 ` [PATCH v5 05/13] perf stat: move target check to loop control statement Alexey Budankov
2020-06-01 15:55 ` [PATCH v5 06/13] perf stat: factor out body of event handling loop for launch case Alexey Budankov
2020-06-01 15:56 ` [PATCH v5 07/13] perf stat: factor out event handling loop into dispatch_events() Alexey Budankov
2020-06-01 15:58 ` [PATCH v5 08/13] perf stat: extend -D,--delay option with -1 value Alexey Budankov
2020-06-01 16:02 ` [PATCH v5 09/13] perf stat: implement control commands handling Alexey Budankov
2020-06-01 16:03 ` [PATCH v5 10/13] perf stat: introduce --ctl-fd[-ack] options Alexey Budankov
2020-06-01 16:03 ` [PATCH v5 11/13] perf record: extend -D,--delay option with -1 value Alexey Budankov
2020-06-01 16:04 ` [PATCH v5 12/13] perf record: implement control commands handling Alexey Budankov
2020-06-01 16:05 ` [PATCH v5 13/13] perf record: introduce --ctl-fd[-ack] options Alexey Budankov
2020-06-01 16:30   ` Adrian Hunter
2020-06-01 17:11     ` Alexey Budankov
2020-06-01 23:37       ` Andi Kleen
2020-06-02  8:32         ` Alexey Budankov
2020-06-02  9:12           ` Alexey Budankov
2020-06-02 13:43             ` Adrian Hunter
2020-06-05 10:51               ` Jiri Olsa
2020-06-05 13:15                 ` Alexey Budankov
2020-06-05 13:57                   ` Jiri Olsa
2020-06-05 14:47                     ` Alexey Budankov
2020-06-05 15:23                       ` Alexey Budankov
2020-06-08  8:04                         ` Alexey Budankov
2020-06-08  8:45                         ` Jiri Olsa
2020-06-06  8:27                       ` Jiri Olsa [this message]
2020-06-01 16:53 ` [PATCH v5 00/13] perf: support enable and disable commands in stat and record modes Alexey Budankov
2020-06-01 20:21   ` Alexey Budankov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200606082753.GA1449048@krava \
    --to=jolsa@redhat.com \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=alexey.budankov@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.