On Sun, 01 Mar 2020 22:22:25 +0000 Chris Wilson chris@chris-wilson.co.uk wrote:
Quoting Steven Rostedt (2020-03-01 18:18:16)
On Sun, 1 Mar 2020 15:52:47 +0000 Chris Wilson chris@chris-wilson.co.uk wrote:
To facilitate construction of per-client event ringbuffers, in particular for a per-client debug and error report log, it would be extremely useful to create an anonymous file that can be handed to userspace so that it can see its and only its events. trace already provides a means of encapsulating the trace ringbuffer into a struct file that can be opened via the tracefs, and so with a couple of minor tweaks can provide the same access via an anonymous inode.
I'm curious to why we need it to be anonymous. Why not allow them to be visible from the tracing directory. This could allow for easier debugging. Note, the trace instances have ref counters thus they can't be removed if something has a reference to it.
Do you really want a few thousand (or even tens) i915-client-%d? That does not particularly seem like it adds ease-of-use, and would need to be restricted to the client [or root]. The intent is for the client to have a private channel for detailed debug/error reporting of its own calls into the kernel.
Fair enough,
I would still want "trace_array_create()" to take a name. If it is NULL, it becomes anonymous, but if you want it to appear in the tracing directory, you can add a name to it.
Again, adding kernel doc comments to the global functions is still necessary.
-- Steve