Re: [PATCH] introduce boot_printk()

From: Randy Dunlap
Date: Mon Sep 15 2008 - 10:55:32 EST


On Mon, 15 Sep 2008 01:05:16 -0700 Yinghai Lu wrote:

> could be enabled via "boot=verbose" to get more debug info
>
> will use it to convert some printk(KERN_DEBUG ...)
>
> Signed-off-by: Yinghai Lu <yhlu.kernel@xxxxxxxxx>
>
> ---
> include/linux/kernel.h | 19 +++++++++++++++++++
> kernel/printk.c | 21 +++++++++++++++++++++
> 2 files changed, 40 insertions(+)
>
> Index: linux-2.6/include/linux/kernel.h
> ===================================================================
> --- linux-2.6.orig/include/linux/kernel.h
> +++ linux-2.6/include/linux/kernel.h
> @@ -344,6 +344,25 @@ static inline char *pack_hex_byte(char *
> #endif
>
> /*
> + * Debugging macros
> + */
> +#define BOOT_QUIET 0
> +#define BOOT_VERBOSE 1
> +#define BOOT_SPEW 2
> +
> +extern int boot_verbosity;
> +/*
> + * Define the default level of output to be very little
> + * This can be turned up by using boot=verbose for more
> + * information and boot=spew for _lots_ of information.
> + * boot_verbosity is defined in printk.c
> + */
> +#define boot_printk(v, s, a...) do { \
> + if ((v) <= boot_verbosity) \
> + printk(s, ##a); \
> + } while (0)
> +
> +/*
> * Display an IP address in readable format.
> */
>
> Index: linux-2.6/kernel/printk.c
> ===================================================================
> --- linux-2.6.orig/kernel/printk.c
> +++ linux-2.6/kernel/printk.c
> @@ -604,6 +604,27 @@ asmlinkage int printk(const char *fmt, .
> return r;
> }
>
> +int boot_verbosity;
> +
> +static int __init boot_set_verbosity(char *arg)
> +{
> + if (!arg)
> + return -EINVAL;
> +
> + if (strcmp("spew", arg) == 0)
> + boot_verbosity = BOOT_SPEW;
> + else if (strcmp("verbose", arg) == 0)
> + boot_verbosity = BOOT_VERBOSE;
> + else {
> + printk(KERN_WARNING "boot Verbosity level %s not recognised"

ised; "

and please add an entry to Documentation/kernel-parameters.txt for this.


> + " use boot=verbose or boot=spew\n", arg);
> + return -EINVAL;
> + }
> +
> + return 0;
> +}
> +early_param("boot", boot_set_verbosity);
> +
> /* cpu currently holding logbuf_lock */
> static volatile unsigned int printk_cpu = UINT_MAX;


---
~Randy
Linux Plumbers Conference, 17-19 September 2008, Portland, Oregon USA
http://linuxplumbersconf.org/
--
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/