2014-06-12 18:48:46

by Fabian Frédérick

[permalink] [raw]
Subject: [PATCH 1/1] kernel/debug/debug_core.c: Logging clean-up

-Convert printk( to pr_foo()
-Add pr_fmt
-Coalesce formats

Cc: Jason Wessel <[email protected]>
Cc: Andrew Morton <[email protected]>
Signed-off-by: Fabian Frederick <[email protected]>
---
kernel/debug/debug_core.c | 43 +++++++++++++++++++++----------------------
1 file changed, 21 insertions(+), 22 deletions(-)

diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c
index 1adf62b..b21ff5f 100644
--- a/kernel/debug/debug_core.c
+++ b/kernel/debug/debug_core.c
@@ -27,6 +27,9 @@
* version 2. This program is licensed "as is" without any warranty of any
* kind, whether express or implied.
*/
+
+#define pr_fmt(fmt) "KGDB: " fmt
+
#include <linux/pid_namespace.h>
#include <linux/clocksource.h>
#include <linux/serial_core.h>
@@ -196,8 +199,8 @@ int __weak kgdb_validate_break_address(unsigned long addr)
return err;
err = kgdb_arch_remove_breakpoint(&tmp);
if (err)
- printk(KERN_ERR "KGDB: Critical breakpoint error, kernel "
- "memory destroyed at: %lx", addr);
+ pr_err("Critical breakpoint error, kernel memory destroyed at: %lx",
+ addr);
return err;
}

@@ -256,8 +259,8 @@ int dbg_activate_sw_breakpoints(void)
error = kgdb_arch_set_breakpoint(&kgdb_break[i]);
if (error) {
ret = error;
- printk(KERN_INFO "KGDB: BP install failed: %lx",
- kgdb_break[i].bpt_addr);
+ pr_info("BP install failed: %lx",
+ kgdb_break[i].bpt_addr);
continue;
}

@@ -319,8 +322,8 @@ int dbg_deactivate_sw_breakpoints(void)
continue;
error = kgdb_arch_remove_breakpoint(&kgdb_break[i]);
if (error) {
- printk(KERN_INFO "KGDB: BP remove failed: %lx\n",
- kgdb_break[i].bpt_addr);
+ pr_info("BP remove failed: %lx\n",
+ kgdb_break[i].bpt_addr);
ret = error;
}

@@ -367,7 +370,7 @@ int dbg_remove_all_break(void)
goto setundefined;
error = kgdb_arch_remove_breakpoint(&kgdb_break[i]);
if (error)
- printk(KERN_ERR "KGDB: breakpoint remove failed: %lx\n",
+ pr_err("breakpoint remove failed: %lx\n",
kgdb_break[i].bpt_addr);
setundefined:
kgdb_break[i].state = BP_UNDEFINED;
@@ -400,9 +403,9 @@ static int kgdb_io_ready(int print_wait)
if (print_wait) {
#ifdef CONFIG_KGDB_KDB
if (!dbg_kdb_mode)
- printk(KERN_CRIT "KGDB: waiting... or $3#33 for KDB\n");
+ pr_crit("waiting... or $3#33 for KDB\n");
#else
- printk(KERN_CRIT "KGDB: Waiting for remote debugger\n");
+ pr_crit("Waiting for remote debugger\n");
#endif
}
return 1;
@@ -430,8 +433,7 @@ static int kgdb_reenter_check(struct kgdb_state *ks)
exception_level = 0;
kgdb_skipexception(ks->ex_vector, ks->linux_regs);
dbg_activate_sw_breakpoints();
- printk(KERN_CRIT "KGDB: re-enter error: breakpoint removed %lx\n",
- addr);
+ pr_crit("re-enter error: breakpoint removed %lx\n", addr);
WARN_ON_ONCE(1);

return 1;
@@ -444,7 +446,7 @@ static int kgdb_reenter_check(struct kgdb_state *ks)
panic("Recursive entry to debugger");
}

- printk(KERN_CRIT "KGDB: re-enter exception: ALL breakpoints killed\n");
+ pr_crit("re-enter exception: ALL breakpoints killed\n");
#ifdef CONFIG_KGDB_KDB
/* Allow kdb to debug itself one level */
return 0;
@@ -795,15 +797,15 @@ static struct console kgdbcons = {
static void sysrq_handle_dbg(int key)
{
if (!dbg_io_ops) {
- printk(KERN_CRIT "ERROR: No KGDB I/O module available\n");
+ pr_crit("ERROR: No KGDB I/O module available\n");
return;
}
if (!kgdb_connected) {
#ifdef CONFIG_KGDB_KDB
if (!dbg_kdb_mode)
- printk(KERN_CRIT "KGDB or $3#33 for KDB\n");
+ pr_crit("KGDB or $3#33 for KDB\n");
#else
- printk(KERN_CRIT "Entering KGDB\n");
+ pr_crit("Entering KGDB\n");
#endif
}

@@ -945,7 +947,7 @@ static void kgdb_initial_breakpoint(void)
{
kgdb_break_asap = 0;

- printk(KERN_CRIT "kgdb: Waiting for connection from remote gdb...\n");
+ pr_crit("Waiting for connection from remote gdb...\n");
kgdb_breakpoint();
}

@@ -964,8 +966,7 @@ int kgdb_register_io_module(struct kgdb_io *new_dbg_io_ops)
if (dbg_io_ops) {
spin_unlock(&kgdb_registration_lock);

- printk(KERN_ERR "kgdb: Another I/O driver is already "
- "registered with KGDB.\n");
+ pr_err("Another I/O driver is already registered with KGDB.\n");
return -EBUSY;
}

@@ -981,8 +982,7 @@ int kgdb_register_io_module(struct kgdb_io *new_dbg_io_ops)

spin_unlock(&kgdb_registration_lock);

- printk(KERN_INFO "kgdb: Registered I/O driver %s.\n",
- new_dbg_io_ops->name);
+ pr_info("Registered I/O driver %s.\n", new_dbg_io_ops->name);

/* Arm KGDB now. */
kgdb_register_callbacks();
@@ -1017,8 +1017,7 @@ void kgdb_unregister_io_module(struct kgdb_io *old_dbg_io_ops)

spin_unlock(&kgdb_registration_lock);

- printk(KERN_INFO
- "kgdb: Unregistered I/O driver %s, debugger disabled.\n",
+ pr_info("Unregistered I/O driver %s, debugger disabled.\n",
old_dbg_io_ops->name);
}
EXPORT_SYMBOL_GPL(kgdb_unregister_io_module);
--
1.9.1


2014-06-12 18:58:58

by Jason Wessel

[permalink] [raw]
Subject: Re: [PATCH 1/1] kernel/debug/debug_core.c: Logging clean-up

On 06/12/2014 01:48 PM, Fabian Frederick wrote:
> -Convert printk( to pr_foo()
> -Add pr_fmt
> -Coalesce formats
>
> Cc: Jason Wessel <[email protected]>
> Cc: Andrew Morton <[email protected]>
> Signed-off-by: Fabian Frederick <[email protected]>


Thanks.

I looked through all the bits to make sure there were no cases were we
relied on a printk out to the external debug client and everything is
all good. This even prefixes the KGDB: in one place it was missed as
well as implicitly fixing all the kgdb: -> KGDB: inconsistencies.

The core functionality of kgdb is not changed of course.

I'll put this into the merge queue.

Reviewed-by: Jason Wessel <[email protected]>

Cheers,
Jason.

2014-06-12 19:04:08

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH 1/1] kernel/debug/debug_core.c: Logging clean-up

On Thu, 2014-06-12 at 20:48 +0200, Fabian Frederick wrote:
> -Convert printk( to pr_foo()
> -Add pr_fmt
> -Coalesce formats

Might as well add missing newlines
and maybe remove unnecessary periods.

> diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c
[]
> @@ -196,8 +199,8 @@ int __weak kgdb_validate_break_address(unsigned long addr)
> return err;
> err = kgdb_arch_remove_breakpoint(&tmp);
> if (err)
> - printk(KERN_ERR "KGDB: Critical breakpoint error, kernel "
> - "memory destroyed at: %lx", addr);
> + pr_err("Critical breakpoint error, kernel memory destroyed at: %lx",
> + addr);

Add '\n' newline

[]

> @@ -256,8 +259,8 @@ int dbg_activate_sw_breakpoints(void)
> error = kgdb_arch_set_breakpoint(&kgdb_break[i]);
> if (error) {
> ret = error;
> - printk(KERN_INFO "KGDB: BP install failed: %lx",
> - kgdb_break[i].bpt_addr);
> + pr_info("BP install failed: %lx",
> + kgdb_break[i].bpt_addr);

here too



> @@ -964,8 +966,7 @@ int kgdb_register_io_module(struct kgdb_io *new_dbg_io_ops)
> if (dbg_io_ops) {
> spin_unlock(&kgdb_registration_lock);
>
> - printk(KERN_ERR "kgdb: Another I/O driver is already "
> - "registered with KGDB.\n");
> + pr_err("Another I/O driver is already registered with KGDB.\n");

Maybe remove period

pr_err("Another I/O driver is already registered with KGDB\n");

> @@ -981,8 +982,7 @@ int kgdb_register_io_module(struct kgdb_io *new_dbg_io_ops)
>
> spin_unlock(&kgdb_registration_lock);
>
> - printk(KERN_INFO "kgdb: Registered I/O driver %s.\n",
> - new_dbg_io_ops->name);
> + pr_info("Registered I/O driver %s.\n", new_dbg_io_ops->name);

here too

> @@ -1017,8 +1017,7 @@ void kgdb_unregister_io_module(struct kgdb_io *old_dbg_io_ops)
>
> spin_unlock(&kgdb_registration_lock);
>
> - printk(KERN_INFO
> - "kgdb: Unregistered I/O driver %s, debugger disabled.\n",
> + pr_info("Unregistered I/O driver %s, debugger disabled.\n",
> old_dbg_io_ops->name);

and here