[tip:core/locking 2/3] lockdep:define preallocated "stack" for BFS as per cpu variable

From: tom . leiming
Date: Wed Jul 22 2009 - 08:59:22 EST


From: Ming Lei <tom.leiming@xxxxxxxxx>

Signed-off-by: Ming Lei <tom.leiming@xxxxxxxxx>
---
kernel/lockdep.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/kernel/lockdep.c b/kernel/lockdep.c
index 1b1796a..1583439 100644
--- a/kernel/lockdep.c
+++ b/kernel/lockdep.c
@@ -847,7 +847,7 @@ struct circular_queue {
unsigned int front, rear;
};

-static struct circular_queue lock_cq;
+static DEFINE_PER_CPU(struct circular_queue, lock_cq);

unsigned int max_bfs_queue_depth;

@@ -937,7 +937,7 @@ static int __bfs(struct lock_list *source_entry,
{
struct lock_list *entry;
struct list_head *head;
- struct circular_queue *cq = &lock_cq;
+ struct circular_queue *cq = &get_cpu_var(lock_cq);
int ret = 1;

if (match(source_entry, data)) {
@@ -993,6 +993,7 @@ static int __bfs(struct lock_list *source_entry,
}
}
exit:
+ put_cpu_var(lock_cq);
return ret;
}

--
1.6.0.GIT

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