[RFC PATCH] include/linux/kernel.h: Add config option forpr_fmt(fmt)

From: Joe Perches
Date: Thu Oct 21 2010 - 22:20:00 EST


Change the default #define pr_fmt(fmt) from:
- #define pr_fmt(fmt) fmt
to:
- #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt

This will standard use of prefixes and prevent the
addition of new #defines when using pr_<level>.

Adds a config option to use the old style if desired.

This adds prefixes to 326 strings in an x86 defconfig.
Broken out by subsystem/module, the prefixes are:

10 acpi
2 act_api
2 af_inet
6 af_packet
22 apic
1 apic_noop
2 blktrace
1 boot
4 calibrate
1 centaur
2 cleanup
1 common
2 dev
1 devinet
17 edac_mce_amd
1 ehci_hcd
1 fb
13 generic
9 hibernate
2 i2c_algo_bit
1 io_delay
1 ip6table_filter
1 iptable_filter
2 iptable_nat
3 ipv6
2 irq
8 kexec
5 libphy
19 main
2 manage
11 mce
2 mount
1 msr
5 nf_conntrack_ipv4
7 nf_conntrack_ipv6
4 nf_conntrack_netlink
2 nfnetlink
2 nfnetlink_log
1 ohci_hcd
5 oom_kill
1 pcieportdrv
9 percpu
21 perf_event
1 pid
2 platform
2 probe_32
1 rtc_cmos
2 setup
1 setup_bus
1 skbuff
1 sleep
8 smpboot
4 snapshot
3 suspend
6 swap
1 tcp_ipv4
8 trace
14 trace_events
26 trace_kprobe
3 trace_sched_switch
1 trace_stat
3 tsc_sync
10 usbcore
2 usb_storage
10 vgaarb
1 xt_state

Some of these add useful info, others are redundant
and can and will be trivially fixed by adding either
a new line to #define pr_fmt(fmt) fmt to the sources
or by removing the internal prefix strings in the
existing pr_<level> calls.

Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
---
include/linux/kernel.h | 4 ++++
init/Kconfig | 10 ++++++++++
2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 1759ba5..9cb2e8f 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -409,8 +409,12 @@ static inline char *pack_hex_byte(char *buf, u8
byte)
extern int hex_to_bin(char ch);

#ifndef pr_fmt
+#ifdef CONFIG_PR_FMT_IS_KBUILD_MODNAME
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+#else
#define pr_fmt(fmt) fmt
#endif
+#endif

#define pr_emerg(fmt, ...) \
printk(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__)
diff --git a/init/Kconfig b/init/Kconfig
index 7b920aa..a406d1c 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -897,6 +897,16 @@ config PRINTK
very difficult to diagnose system problems, saying N here is
strongly discouraged.

+config PR_FMT_IS_KBUILD_MODNAME
+ default y
+ depends on PRINTK
+ bool "Use KBUILD_MODNAME as prefix for pr_<level>"
+ help
+ This option sets the default pr_fmt to KBUILD_MODNAME.
+ This will prefix all pr_<level> logging message calls with the
+ build system defined value unless there is an existing define
+ of pr_fmt in the source code.
+
config BUG
bool "BUG() support" if EMBEDDED
default y


--
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/