Re: [PATCH] firewire: core: option to log bus reset initiation

From: Adam Goldman
Date: Tue Mar 26 2024 - 08:19:05 EST


Hi Takashi,

On Mon, Mar 25, 2024 at 09:41:34AM +0900, Takashi Sakamoto wrote:
> Now we have two debug parameters per module for the slightly-similar
> purpose. In my opinion, it is a pretty cumbersome to enable them when
> checking bus-reset behaviour. I think it is time to investigate the other
> way.
>
> Linux Kernel Tracepoints[2] is one of options. Roughly describing, the
> tracepoints mechanism allows users to deliver structured data from kernel
> space to user space via ring-buffer when enabling it by either sysfs or
> kernel command-line parameters. Linux kernel also has a command-line
> parameter to redirect the human-readable formatted data to kernel log[3].
> I think it is suitable in the case.
>
> It requires many work to replace the existent debug parameter of
> firewire-ohci, while it is a good start to work just for bus-reset debug.
> The data structure layout should be pre-defined in each subsystem, thus we
> need to decide it. In my opinion, it would be like:
>
> ```
> struct bus_reset_event {
> enum reason {
> Initiate,
> Schedule,
> Postpone,
> Detect,
> },
> // We can put any other data if prefering.
> }
> ```

Maybe these should be four separate trace events?

> Would I ask your opinion about my idea?

It seems that tracepoints are the modern way to make debugging logs, so
if we want to modernize the FireWire driver, we should replace the
existent logging with tracepoints.

-- Adam