Re: [PATCH v10 08/10] dyndbg: add print-to-tracefs, selftest with it - RFC

Steven Rostedt
2021-11-19T22:54:35Z

On Fri, 19 Nov 2021 15:46:31 -0700
jim.cromie@gmail.com wrote:

> > So I could see us supporting subsystem specific trace buffer output
> > via dynamic debug here. We could add new dev_debug() variants that
> > allow say a trace buffer to be supplied. So in that way subsystems
> > could 'opt-out' of having their data put into the global trace buffer.
> > And perhaps some subsystems we would want to allow output to both
> > buffers? The subsystem specific one and the global one?
> >
>
> * trace_array_printk - Print a message to a specific instance
> * @tr: The instance trace_array descriptor
> * @ip: The instruction pointer that this is called from.
> * @fmt: The format to print (printf format)
> *
>
> what happens when @tr == NULL ?

It does nothing, but perhaps crash the kernel.

> It could allow up-flow of events to the global instance

Absolutely not!

Then it's just a reimplementation of trace_printk(). Which I refuse to
have.

Nothing should just dump to the main instance. Once we allow that, then
everyone will be dumping there and you will no longer be able to trace
anything because it will be filled with noise.

What is allowed is an event that acts like a trace_printk() but is an
event, which you can turn off (have default off), and even pick which
instance to go to.

>
> > Thanks,
> >
> > -Jason
> >
> >
>
> So I wonder, is there any conceptual utility to this ?
>
> echo 1 > instances/foo/filter_up # enable event upflow (or query-time merging?)
>
> Maybe enabling this causes other files (the ones missing from
> instances/foo) to magically appear
> so all those filtering capacities also appear.

I've been busy doing other things so I haven't been keeping up with
this thread (which I need to go back and read). Perhaps it was already
stated, but I don't know why you want that.

trace-cmd can read several instances (including the top level one) and
interleave them nicely, if that is what you are looking for. So can
KernelShark.

-- Steve