Re: [re: PATCH v2 00/15 - 05/11] dyndbg: change +T:name_terminator to dot

From: Petr Mladek
Date: Thu Jan 04 2024 - 02:54:49 EST


On Thu 2023-12-21 16:21:49, Łukasz Bartosik wrote:
> pon., 18 gru 2023 o 18:29 Petr Mladek <pmladek@xxxxxxxx> napisał(a):
> >
> > On Thu 2023-12-07 17:15:08, Jim Cromie wrote:
> > > This replaces ',' with '.' as the char that ends the +T:name.
> > >
> > > This allows a later patch to treat ',' as a space, which mostly
> > > eliminates the need to quote query/rules. And this in turn avoids
> > > quoting hassles:
> > >
> > > modprobe test_dynamic_debug dyndbg=class,D2_CORE,+p
> > >
> > > It is particularly good for passing boot-args into test-scripts.
> > >
> > > vng -p 4 -v \
> > > -a test_dynamic_debug.dyndbg=class,D2_CORE,+p
> >
> > Could you please add example how it looked before and after?
>
> Before a user had to issue a command in the format
> modprobe test_dynamic_debug dyndbg="class D2_CORE +p"
>
> Now a use can use either
> modprobe test_dynamic_debug dyndbg="class D2_CORE +p"
> or
> modprobe test_dynamic_debug dyndbg=class,D2_CORE,+p

I see. This was not clear to me. Please, mention it in
the commit message.

That said, I am not sure if it is worth it and if it
is a good idea. Supporting more formats adds complexity
and confusion. It is the reason why people hate perl.

I agree that quoting in scripts is complicated. Well,
a sane approach is to use quotes everywhere where possible.

If a script works correctly only with class,D2_CORE,+p
and breaks with "class D2_CORE +p" then it is a ticking
bomb. People might try to use "class D2_CORE +p"
one day because they would cut&paste the string
from the internet.

> > Is this format documented somewhere?
> > Will the documentation get updated?
>
> Documentation will be updated.
>
> > Could it break existing scripts? [*]
>
> It should not break any scripts as this change does not change the
> interface but extends it.
>
> > The dynamic debug interface is really hard to use for me
> > as an occasional user. I always have to look into
> > Documentation/admin-guide/dynamic-debug-howto.rst
> >
> > Anyway, there should be a good reason to change the interface.
> > And the exaplantion:
> >
> > "Let's use '.' instead of ',' so that we could later
> > treat ',' as space"
> >
> > sounds scarry. It does not explain what is the advantage at all.
> >
> I will clarify in the commit message that this change allows to use
> two formats either
> modprobe test_dynamic_debug dyndbg="class D2_CORE +p"
> or
> modprobe test_dynamic_debug dyndbg=class,D2_CORE,+p

But the patch replaces ',' with '.'. It looks like it modifies
some existing syntax.

Note that I am not familiar with this code. And I even do not see
the patched function in the current Linus' tree.

Best Regards,
Petr