mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-13 14:24:11 +08:00
lockdep: Explicitly flag likely false-positive report
The reason that lockdep_rcu_suspicious() prints the value of debug_locks is because a value of zero indicates a likely false positive. This can work, but is a bit obtuse. This commit therefore explicitly calls out the possibility of a false positive. Reviewed-by: Boqun Feng <boqun.feng@gmail.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
This commit is contained in:
parent
27ba76e164
commit
1feb2cc8db
@ -6393,6 +6393,7 @@ asmlinkage __visible void lockdep_sys_exit(void)
|
||||
void lockdep_rcu_suspicious(const char *file, const int line, const char *s)
|
||||
{
|
||||
struct task_struct *curr = current;
|
||||
int dl = READ_ONCE(debug_locks);
|
||||
|
||||
/* Note: the following can be executed concurrently, so be careful. */
|
||||
pr_warn("\n");
|
||||
@ -6402,11 +6403,12 @@ void lockdep_rcu_suspicious(const char *file, const int line, const char *s)
|
||||
pr_warn("-----------------------------\n");
|
||||
pr_warn("%s:%d %s!\n", file, line, s);
|
||||
pr_warn("\nother info that might help us debug this:\n\n");
|
||||
pr_warn("\n%srcu_scheduler_active = %d, debug_locks = %d\n",
|
||||
pr_warn("\n%srcu_scheduler_active = %d, debug_locks = %d\n%s",
|
||||
!rcu_lockdep_current_cpu_online()
|
||||
? "RCU used illegally from offline CPU!\n"
|
||||
: "",
|
||||
rcu_scheduler_active, debug_locks);
|
||||
rcu_scheduler_active, dl,
|
||||
dl ? "" : "Possible false positive due to lockdep disabling via debug_locks = 0\n");
|
||||
|
||||
/*
|
||||
* If a CPU is in the RCU-free window in idle (ie: in the section
|
||||
|
Loading…
Reference in New Issue
Block a user