INFO: possible circular locking dependency detected

From: Sergey Senozhatsky
Date: Thu Jul 14 2011 - 10:50:34 EST


Hello,

[ 4172.371094] =======================================================
[ 4172.371097] [ INFO: possible circular locking dependency detected ]
[ 4172.371103] 3.0.0-rc7-dbg-00565-g6b31efc #644
[ 4172.371105] -------------------------------------------------------
[ 4172.371108] make/11702 is trying to acquire lock:
[ 4172.371111] (rcu_node_level_0){..-...}, at: [<ffffffff810a55e2>] __rcu_read_unlock+0xb9/0x217
[ 4172.371123]
[ 4172.371123] but task is already holding lock:
[ 4172.371125] (&p->pi_lock){-.-.-.}, at: [<ffffffff8103775e>] try_to_wake_up+0x29/0x28b
[ 4172.371135]
[ 4172.371135] which lock already depends on the new lock.
[ 4172.371136]
[ 4172.371138]
[ 4172.371138] the existing dependency chain (in reverse order) is:
[ 4172.371141]
[ 4172.371141] -> #2 (&p->pi_lock){-.-.-.}:
[ 4172.371146] [<ffffffff810717f6>] lock_acquire+0x138/0x1ac
[ 4172.371153] [<ffffffff8147cdfe>] _raw_spin_lock_irqsave+0x4e/0x60
[ 4172.371159] [<ffffffff8103775e>] try_to_wake_up+0x29/0x28b
[ 4172.371163] [<ffffffff810379cd>] default_wake_function+0xd/0xf
[ 4172.371167] [<ffffffff8105d7ad>] autoremove_wake_function+0xf/0x33
[ 4172.371173] [<ffffffff81028d6b>] __wake_up_common+0x48/0x7e
[ 4172.371179] [<ffffffff8102b4f4>] __wake_up+0x34/0x48
[ 4172.371183] [<ffffffff810a54ef>] rcu_report_exp_rnp.isra.24+0x4a/0x84
[ 4172.371187] [<ffffffff810a56de>] __rcu_read_unlock+0x1b5/0x217
[ 4172.371191] [<ffffffff8105a2cd>] get_pid_task+0x71/0x7e
[ 4172.371195] [<ffffffff811571b8>] proc_single_show+0x36/0x7c
[ 4172.371201] [<ffffffff81124e59>] seq_read+0x17b/0x362
[ 4172.371208] [<ffffffff81107ff1>] vfs_read+0xaa/0x13a
[ 4172.371213] [<ffffffff811080c6>] sys_read+0x45/0x6c
[ 4172.371217] [<ffffffff81483792>] system_call_fastpath+0x16/0x1b
[ 4172.371223]
[ 4172.371223] -> #1 (sync_rcu_preempt_exp_wq.lock){......}:
[ 4172.371228] [<ffffffff810717f6>] lock_acquire+0x138/0x1ac
[ 4172.371232] [<ffffffff8147cdfe>] _raw_spin_lock_irqsave+0x4e/0x60
[ 4172.371236] [<ffffffff8102b4dd>] __wake_up+0x1d/0x48
[ 4172.371240] [<ffffffff810a54ef>] rcu_report_exp_rnp.isra.24+0x4a/0x84
[ 4172.371244] [<ffffffff810a56de>] __rcu_read_unlock+0x1b5/0x217
[ 4172.371248] [<ffffffff8105a2cd>] get_pid_task+0x71/0x7e
[ 4172.371251] [<ffffffff811571b8>] proc_single_show+0x36/0x7c
[ 4172.371255] [<ffffffff81124e59>] seq_read+0x17b/0x362
[ 4172.371259] [<ffffffff81107ff1>] vfs_read+0xaa/0x13a
[ 4172.371263] [<ffffffff811080c6>] sys_read+0x45/0x6c
[ 4172.371266] [<ffffffff81483792>] system_call_fastpath+0x16/0x1b
[ 4172.371270]
[ 4172.371270] -> #0 (rcu_node_level_0){..-...}:
[ 4172.371275] [<ffffffff81070bd7>] __lock_acquire+0xffa/0x1661
[ 4172.371279] [<ffffffff810717f6>] lock_acquire+0x138/0x1ac
[ 4172.371283] [<ffffffff8147cd0e>] _raw_spin_lock+0x36/0x45
[ 4172.371286] [<ffffffff810a55e2>] __rcu_read_unlock+0xb9/0x217
[ 4172.371290] [<ffffffff81038ccc>] select_task_rq_fair+0xa51/0xa99
[ 4172.371294] [<ffffffff81037888>] try_to_wake_up+0x153/0x28b
[ 4172.371298] [<ffffffff810379df>] wake_up_process+0x10/0x12
[ 4172.371302] [<ffffffff81056581>] wake_up_worker+0x1f/0x21
[ 4172.371306] [<ffffffff810572c0>] insert_work+0x63/0x67
[ 4172.371309] [<ffffffff8105803b>] __queue_work+0x3bd/0x46a
[ 4172.371313] [<ffffffff810581a9>] delayed_work_timer_fn+0x25/0x2a
[ 4172.371316] [<ffffffff8104c8ae>] run_timer_softirq+0x2dc/0x510
[ 4172.371321] [<ffffffff8104528c>] __do_softirq+0x134/0x2ff
[ 4172.371327] [<ffffffff8148469c>] call_softirq+0x1c/0x30
[ 4172.371331] [<ffffffff8100316f>] do_softirq+0x46/0x9f
[ 4172.371336] [<ffffffff810456ad>] irq_exit+0x4e/0xa0
[ 4172.371339] [<ffffffff8101895a>] smp_apic_timer_interrupt+0x85/0x93
[ 4172.371343] [<ffffffff814841d3>] apic_timer_interrupt+0x13/0x20
[ 4172.371347] [<ffffffff81204e96>] do_msgsnd+0x399/0x40e
[ 4172.371352] [<ffffffff81204f53>] sys_msgsnd+0x48/0x4f
[ 4172.371355] [<ffffffff81483792>] system_call_fastpath+0x16/0x1b
[ 4172.371360]
[ 4172.371360] other info that might help us debug this:
[ 4172.371361]
[ 4172.371363] Chain exists of:
[ 4172.371363] rcu_node_level_0 --> sync_rcu_preempt_exp_wq.lock --> &p->pi_lock
[ 4172.371370]
[ 4172.371371] Possible unsafe locking scenario:
[ 4172.371372]
[ 4172.371374] CPU0 CPU1
[ 4172.371375] ---- ----
[ 4172.371377] lock(&p->pi_lock);
[ 4172.371380] lock(sync_rcu_preempt_exp_wq.lock);
[ 4172.371384] lock(&p->pi_lock);
[ 4172.371387] lock(rcu_node_level_0);
[ 4172.371390]
[ 4172.371390] *** DEADLOCK ***
[ 4172.371391]
[ 4172.371393] 3 locks held by make/11702:
[ 4172.371395] #0: (&(&dbs_info->work)->timer){+.-...}, at: [<ffffffff8104c79f>] run_timer_softirq+0x1cd/0x510
[ 4172.371402] #1: (&(&gcwq->lock)->rlock){-.-...}, at: [<ffffffff81057e55>] __queue_work+0x1d7/0x46a
[ 4172.371409] #2: (&p->pi_lock){-.-.-.}, at: [<ffffffff8103775e>] try_to_wake_up+0x29/0x28b
[ 4172.371415]
[ 4172.371416] stack backtrace:
[ 4172.371419] Pid: 11702, comm: make Not tainted 3.0.0-rc7-dbg-00565-g6b31efc #644
[ 4172.371421] Call Trace:
[ 4172.371423] <IRQ> [<ffffffff8147361c>] print_circular_bug+0x293/0x2a4
[ 4172.371431] [<ffffffff81070bd7>] __lock_acquire+0xffa/0x1661
[ 4172.371436] [<ffffffff81038400>] ? select_task_rq_fair+0x185/0xa99
[ 4172.371440] [<ffffffff810a55e2>] ? __rcu_read_unlock+0xb9/0x217
[ 4172.371444] [<ffffffff810717f6>] lock_acquire+0x138/0x1ac
[ 4172.371448] [<ffffffff810a55e2>] ? __rcu_read_unlock+0xb9/0x217
[ 4172.371453] [<ffffffff8147cd0e>] _raw_spin_lock+0x36/0x45
[ 4172.371456] [<ffffffff810a55e2>] ? __rcu_read_unlock+0xb9/0x217
[ 4172.371460] [<ffffffff810a55e2>] __rcu_read_unlock+0xb9/0x217
[ 4172.371464] [<ffffffff81038ccc>] select_task_rq_fair+0xa51/0xa99
[ 4172.371468] [<ffffffff810388d1>] ? select_task_rq_fair+0x656/0xa99
[ 4172.371471] [<ffffffff8103775e>] ? try_to_wake_up+0x29/0x28b
[ 4172.371475] [<ffffffff8103775e>] ? try_to_wake_up+0x29/0x28b
[ 4172.371482] [<ffffffff81246c1d>] ? do_raw_spin_lock+0x6b/0x122
[ 4172.371486] [<ffffffff81037888>] try_to_wake_up+0x153/0x28b
[ 4172.371489] [<ffffffff81246c1d>] ? do_raw_spin_lock+0x6b/0x122
[ 4172.371493] [<ffffffff810379df>] wake_up_process+0x10/0x12
[ 4172.371497] [<ffffffff81056581>] wake_up_worker+0x1f/0x21
[ 4172.371500] [<ffffffff810572c0>] insert_work+0x63/0x67
[ 4172.371503] [<ffffffff8105803b>] __queue_work+0x3bd/0x46a
[ 4172.371507] [<ffffffff8104c79f>] ? run_timer_softirq+0x1cd/0x510
[ 4172.371511] [<ffffffff810581a9>] delayed_work_timer_fn+0x25/0x2a
[ 4172.371514] [<ffffffff8104c8ae>] run_timer_softirq+0x2dc/0x510
[ 4172.371518] [<ffffffff8104c79f>] ? run_timer_softirq+0x1cd/0x510
[ 4172.371521] [<ffffffff81058184>] ? schedule_work+0x15/0x15
[ 4172.371525] [<ffffffff8104528c>] __do_softirq+0x134/0x2ff
[ 4172.371530] [<ffffffff8106b9a1>] ? tick_program_event+0x1a/0x1c
[ 4172.371534] [<ffffffff8148469c>] call_softirq+0x1c/0x30
[ 4172.371538] [<ffffffff8100316f>] do_softirq+0x46/0x9f
[ 4172.371541] [<ffffffff810456ad>] irq_exit+0x4e/0xa0
[ 4172.371545] [<ffffffff8101895a>] smp_apic_timer_interrupt+0x85/0x93
[ 4172.371549] [<ffffffff814841d3>] apic_timer_interrupt+0x13/0x20
[ 4172.371551] <EOI> [<ffffffff81071fca>] ? trace_hardirqs_on_caller+0x10d/0x131
[ 4172.371559] [<ffffffff810a5578>] ? __rcu_read_unlock+0x4f/0x217
[ 4172.371563] [<ffffffff81204e96>] do_msgsnd+0x399/0x40e
[ 4172.371567] [<ffffffff81204f53>] sys_msgsnd+0x48/0x4f
[ 4172.371571] [<ffffffff81483792>] system_call_fastpath+0x16/0x1b



Sergey

Attachment: pgp00000.pgp
Description: PGP signature