Messages in this thread Patch in this message | | | From | Yinghai Lu <> | Subject | [PATCH] introduce boot_printk() | Date | Mon, 15 Sep 2008 01:05:16 -0700 |
| |
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@gmail.com>
--- 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" + " 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;
| |