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