On Thu 2020-05-28 20:33:10, Tetsuo Handa wrote:
> On 2020/05/28 19:59, Petr Mladek wrote:
> > 2. Add twist into vprintk_store(). In the current, implementation
> >    it would do:
> > 
> >   #if TWIST
> >     return text_len;
> >   #endif
> > 
> >     return log_output(facility, level, lflags,
> >                       dict, dictlen, text, text_len);
> 
> This part could be possible. But
> 
> > 1. Add twist into ddebug_add_module() and enable all newly added
> >    entries by default. For example, by calling
> >    ddebug_exec_query("*:+p", const char *modname) or what is the syntax.
> > 
> >    This will cause that any pr_devel() variant will always get called.
> 
> how to handle
> 
> >>   #define no_printk(fmt, ...)                             \
> >>   ({                                                      \
> >>           if (0)                                          \
> >>                   printk(fmt, ##__VA_ARGS__);             \
> >>           0;                                              \
> >>   })
> 
> part used by e.g. pr_devel() ? Since this macro is not using dynamic debug
> interface, vprintk_store() will not be called from the beginning. Are you
> suggesting that we should convert no_printk() to use dynamic debug interface ?

OK, this is one more path that would need special handling. Two paths
are much better than 15.


> I don't know whether enabling only in linux-next makes sense. Since not all 
> tests
> are equally done on each git tree, available only in linux-next will not be 
> able
> to cover all callers. Just using 
> CONFIG_TWIST_ALWAYS_EVALUATE_PRINTK_ARGUMENTS=y
> and CONFIG_DYNAMIC_DEBUG=n is the simplest.

I hope that tests done on linux-next would be enough to trigger some
bugs. If you do not see problems in linux-next then this twist
probably is not worth the effort and code complications.

Best Regards,
Petr

Reply via email to