Re: [PATCH] printk.caller

From: Andrew Morton
Date: Thu Oct 02 2008 - 19:32:20 EST


On Thu, 2 Oct 2008 16:21:15 -0700 (PDT)
Roland McGrath <roland@xxxxxxxxxx> wrote:

> This adds the printk.caller=[0|1] boot parameter, default setting
> controlled by CONFIG_PRINTK_CALLER. (This is modelled on printk.time
> and CONFIG_PRINTK_TIME.)
>
> When this is set, each printk line is automagically prefixed with
> "{0x123abc} " giving the PC address of that printk call (actually
> the PC address just after the call).
>
> As a kernel hacker, I always hate having to grep for some fragment
> of a message to find the code that generated it. But I always have
> my -g vmlinux handy, so:
> (gdb) info line *(0x123abc - 1)
> is real handy (it pops the source up in an Emacs buffer).
>

hm. What do others think?

>
> ...
>
> +config PRINTK_CALLER
> + bool "Show caller PC on printks"
> + depends on PRINTK
> + help
> + Selecting this option causes printk output to include
> + the PC address of the printk call. This is useful for
> + kernels hackers to quickly locate the source code that
> + produced the message.
> +

This is quite misleading. The config help implies that
CONFIG_PRINTK_CALLER will enable the feature at compile time. But it
doesn't - it just sets the boot-time enable/disable default.

If you do this:

#ifdef CONFIG_PRINTK_CALLER
static int printk_caller = 1;
#else
#define printk_caller 0
#endif

then the implementation would somewhat reflect the config option.


But I'd suggest that this thing is so small that it doesn't need a
config option to enable the presence of the code - just make it
unconditional.

Also, I guess that the boot-time option is useful, but a runtime /proc
knob might also be needed?

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/