2008-10-27 20:04:20

by sniper

[permalink] [raw]
Subject: [PATCH] LOCKDEP: minor fix for debug_show_all_locks()

When we failed to get tasklist_lock eventually (count equals 0),
we should only print " ignoring it.\n", and not print
" locked it.\n" needlessly.

Signed-off-by: Qinghuang Feng <[email protected]>
---
diff --git a/kernel/lockdep.c b/kernel/lockdep.c
index dbda475..12bf812 100644
--- a/kernel/lockdep.c
+++ b/kernel/lockdep.c
@@ -3417,10 +3417,12 @@ retry:
}
printk(" ignoring it.\n");
unlock = 0;
+ goto print_locks;
}
if (count != 10)
printk(" locked it.\n");

+print_locks:
do_each_thread(g, p) {
/*
* It's not reliable to print a task's held locks


2008-10-28 08:29:44

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] LOCKDEP: minor fix for debug_show_all_locks()


* sniper <[email protected]> wrote:

> When we failed to get tasklist_lock eventually (count equals 0),
> we should only print " ignoring it.\n", and not print
> " locked it.\n" needlessly.

well spotted!

Minor nit:

> --- a/kernel/lockdep.c
> +++ b/kernel/lockdep.c
> @@ -3417,10 +3417,12 @@ retry:
> }
> printk(" ignoring it.\n");
> unlock = 0;
> + goto print_locks;
> }
> if (count != 10)
> printk(" locked it.\n");
>
> +print_locks:
> do_each_thread(g, p) {

please move the "if (count != 10)" line into the else section of the
trylock, instead of introducing a label and a goto.

Ingo

2008-10-28 09:24:38

by Qinghuang Feng

[permalink] [raw]
Subject: Re: [PATCH] LOCKDEP: minor fix for debug_show_all_locks()

When we failed to get tasklist_lock eventually (count equals 0),
we should only print " ignoring it.\n", and not print
" locked it.\n" needlessly.

Signed-off-by: Qinghuang Feng <[email protected]>
---
diff --git a/kernel/lockdep.c b/kernel/lockdep.c
index dbda475..6533fd9 100644
--- a/kernel/lockdep.c
+++ b/kernel/lockdep.c
@@ -3417,8 +3417,7 @@ retry:
}
printk(" ignoring it.\n");
unlock = 0;
- }
- if (count != 10)
+ } else if (count != 10)
printk(" locked it.\n");

do_each_thread(g, p) {

2008-10-28 09:32:04

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] LOCKDEP: minor fix for debug_show_all_locks()


* qinghuang feng <[email protected]> wrote:

> When we failed to get tasklist_lock eventually (count equals 0),
> we should only print " ignoring it.\n", and not print
> " locked it.\n" needlessly.
>
> Signed-off-by: Qinghuang Feng <[email protected]>
> ---

> diff --git a/kernel/lockdep.c b/kernel/lockdep.c
> index dbda475..6533fd9 100644
> --- a/kernel/lockdep.c
> +++ b/kernel/lockdep.c
> @@ -3417,8 +3417,7 @@ retry:
> }
> printk(" ignoring it.\n");
> unlock = 0;
> - }
> - if (count != 10)
> + } else if (count != 10)
> printk(" locked it.\n");
>

applied to tip/core/urgent, thanks!

note that i've done two small tweaks to the patch:

- added curly braces to the else branch as well - the convention is
to mirror the curly braces of the main branch in such cases.

- added KERN_CONT for the printk

Ingo

-------------->
>From 46fec7ac40e452a2ea5e63648d98b6bb2b5898f9 Mon Sep 17 00:00:00 2001
From: qinghuang feng <[email protected]>
Date: Tue, 28 Oct 2008 17:24:28 +0800
Subject: [PATCH] lockdep: minor fix for debug_show_all_locks()

When we failed to get tasklist_lock eventually (count equals 0),
we should only print " ignoring it.\n", and not print
" locked it.\n" needlessly.

Signed-off-by: Qinghuang Feng <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
---
kernel/lockdep.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/kernel/lockdep.c b/kernel/lockdep.c
index dbda475..11832ac 100644
--- a/kernel/lockdep.c
+++ b/kernel/lockdep.c
@@ -3417,9 +3417,10 @@ retry:
}
printk(" ignoring it.\n");
unlock = 0;
+ } else {
+ if (count != 10)
+ printk(KERN_CONT " locked it.\n");
}
- if (count != 10)
- printk(" locked it.\n");

do_each_thread(g, p) {
/*