On Fri, Aug 14, 2020 at 11:30:34PM +0200, Jason Baron wrote:
> On 8/14/20 1:15 PM, Steven Rostedt wrote:
> > On Fri, 14 Aug 2020 15:31:51 +0200
> > Vincent Whitchurch <vincent.whitchu...@axis.com> wrote:
> >> index aa9ff9e1c0b3..f599ed21ecc5 100644
> >> --- a/include/linux/dynamic_debug.h
> >> +++ b/include/linux/dynamic_debug.h
> >> @@ -27,13 +27,16 @@ struct _ddebug {
> >>     * writes commands to <debugfs>/dynamic_debug/control
> >>     */
> >>  #define _DPRINTK_FLAGS_NONE       0
> >> -#define _DPRINTK_FLAGS_PRINT      (1<<0) /* printk() a message using the 
> >> format */
> >> +#define _DPRINTK_FLAGS_PRINTK     (1<<0) /* printk() a message using the 
> >> format */
> > 
> > The above looks like a cleanup unrelated to this patch, and probably
> > should be on its own.
> 
> I read it as we used to have this one thing called 'print', which really meant
> printk, but now that we also have the ability to output to the trace buffer,
> what does 'print' mean now? So I read it as being part of this change.

Yes, that's what was intended, but I think it makes sense to split it
out as Steven suggested so I've done that now (and also renamed the
combined flag to the less ambiguous _DPRINTK_FLAGS_ENABLE).

>
> > 
> >>  #define _DPRINTK_FLAGS_INCL_MODNAME       (1<<1)
> >>  #define _DPRINTK_FLAGS_INCL_FUNCNAME      (1<<2)
> >>  #define _DPRINTK_FLAGS_INCL_LINENO        (1<<3)
> >>  #define _DPRINTK_FLAGS_INCL_TID           (1<<4)
> >> +#define _DPRINTK_FLAGS_TRACE              (1<<5)  
> >> +#define _DPRINTK_FLAGS_PRINT              (_DPRINTK_FLAGS_PRINTK | \
> >> +                                   _DPRINTK_FLAGS_TRACE)
> 
> 
> Is _DPRINTK_FLAGS_PRINT actually used anywhere? Looks to me like
> it can be removed.

It's used from DYNAMIC_DEBUG_BRANCH() as well as from
lib/dynamic_debug.c to check if the location is enabled.

> This is a feature I've wanted for dynamic debug for a while. Thanks for
> implementing it!
> 
> Dynamic can be enabled on the command line in order to print things early
> in boot (I think ftrace can as well), I want to make sure that there are
> no ordering issues here? And things wouldn't blow up if we enable printing
> to the ftrace buffer early on via dyanmic debug?

I tried enabling all dynamic debug locations and tracing via the command
line and that worked fine:

 dyndbg="file * +x" trace_event=printk:*

Reply via email to