Re: [PATCH v4 00/16] perf, persistent: Add persistent events

Borislav Petkov
2014-05-06T18:58:32Z

On Tue, May 06, 2014 at 02:39:07PM +0200, Robert Richter wrote:
> I rather would change the ioctl to
>
> id = ioctl(PERF_EVENT_IOC_SET_PERSIST, arg);
>
> arg != 0: create persistent event (unclaim)
> arg == 0: delete persistent event (claim)
>
> This has the advantage that the naming is better and arg can be used
> as parameter (e.g. event id to share a namespace).

Yep, this is better than the CLAIM/UNCLAIM thing.

> The unclaim ioctl *creates* a buffer with 512kB default size. The
> reopening process must mmap with the same buffer size. This is a
> problem as in this implementation the buffer size is fix and can not
> be adjusted.

Why do we need it to be adjustable?

> We could let create the process the buffers and make the
> event persistent including the current buffers.
>
> Variable buffer size is a must,

Yeah, why? I'm just asking for my own understanding.

> so the reopening process also must be
> able to detect buffer size. Mmap buffer size could be detected by
> mmap'ing only the header page, reading the buffer size from the header
> and then remapping the buffer with adjusted size.
>
> It would be good to have a perf tool option -P that puts events in
> persistent state instead of starting a command:
>
> # perf record -e ... -a -P <namespace> # create pers. events
> # perf record -e persistent/<namespace>/ -a # read existing buffers
> # perf record -e persistent/<namespace>/ -a -k # read and kill existing events
>
> Note that no args for a command are given.

Yep, looks sane to me.

--
Regards/Gruss,
Boris.

Sent from a fat crate under my desk. Formatting is fine.
--