netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* neigh_lookup lockdep warning
@ 2006-09-03  1:26 Dave Jones
  2006-09-03 11:32 ` Herbert Xu
  0 siblings, 1 reply; 2+ messages in thread
From: Dave Jones @ 2006-09-03  1:26 UTC (permalink / raw)
  To: netdev

Seen during boot of a 2.6.18rc5-git1 based kernel.

		Dave

=======================================================
[ INFO: possible circular locking dependency detected ]
2.6.17-1.2608.fc6 #1
-------------------------------------------------------
swapper/0 is trying to acquire lock:
 (&tbl->lock){-+-+}, at: [<c05bdf97>] neigh_lookup+0x50/0xaf

but task is already holding lock:
 (&list->lock#3){-+..}, at: [<c05bf677>] neigh_proxy_process+0x20/0xc2

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #2 (&list->lock#3){-+..}:
       [<c043c09a>] lock_acquire+0x4b/0x6d
       [<c061411f>] _spin_lock_irqsave+0x22/0x32
       [<c05b451f>] skb_dequeue+0x12/0x43
       [<c05b523a>] skb_queue_purge+0x14/0x1b
       [<c05be990>] neigh_update+0x34a/0x3a6
       [<c05f0f6e>] arp_process+0x4ad/0x4e7
       [<c05f107c>] arp_rcv+0xd4/0xf1
       [<c05b942c>] netif_receive_skb+0x205/0x274
       [<c7bb0566>] rhine_napipoll+0x28d/0x449 [via_rhine]
       [<c05baf73>] net_rx_action+0x9d/0x196
       [<c04293a7>] __do_softirq+0x78/0xf2
       [<c0406673>] do_softirq+0x5a/0xbe

-> #1 (&n->lock){-+..}:
       [<c043c09a>] lock_acquire+0x4b/0x6d
       [<c0613e48>] _write_lock+0x19/0x28
       [<c05bfc69>] neigh_periodic_timer+0x98/0x13c
       [<c042dc58>] run_timer_softirq+0x108/0x167
       [<c04293a7>] __do_softirq+0x78/0xf2
       [<c0406673>] do_softirq+0x5a/0xbe

-> #0 (&tbl->lock){-+-+}:
       [<c043c09a>] lock_acquire+0x4b/0x6d
       [<c0613f02>] _read_lock_bh+0x1e/0x2d
       [<c05bdf97>] neigh_lookup+0x50/0xaf
       [<c05bf0b9>] neigh_event_ns+0x2c/0x77
       [<c05f0e2a>] arp_process+0x369/0x4e7
       [<c05f10a1>] parp_redo+0x8/0xa
       [<c05bf6bd>] neigh_proxy_process+0x66/0xc2
       [<c042dc58>] run_timer_softirq+0x108/0x167
       [<c04293a7>] __do_softirq+0x78/0xf2
       [<c0406673>] do_softirq+0x5a/0xbe

other info that might help us debug this:

1 lock held by swapper/0:
 #0:  (&list->lock#3){-+..}, at: [<c05bf677>] neigh_proxy_process+0x20/0xc2

stack backtrace:
 [<c04051ee>] show_trace_log_lvl+0x58/0x159
 [<c04057ea>] show_trace+0xd/0x10
 [<c0405903>] dump_stack+0x19/0x1b
 [<c043b182>] print_circular_bug_tail+0x59/0x64
 [<c043b99a>] __lock_acquire+0x80d/0x99c
 [<c043c09a>] lock_acquire+0x4b/0x6d
 [<c0613f02>] _read_lock_bh+0x1e/0x2d
 [<c05bdf97>] neigh_lookup+0x50/0xaf
 [<c05bf0b9>] neigh_event_ns+0x2c/0x77
 [<c05f0e2a>] arp_process+0x369/0x4e7
 [<c05f10a1>] parp_redo+0x8/0xa
 [<c05bf6bd>] neigh_proxy_process+0x66/0xc2
 [<c042dc58>] run_timer_softirq+0x108/0x167
 [<c04293a7>] __do_softirq+0x78/0xf2
 [<c0406673>] do_softirq+0x5a/0xbe
 [<c0429250>] irq_exit+0x3d/0x3f
 [<c0417cbf>] smp_apic_timer_interrupt+0x79/0x7e
 [<c0404b0a>] apic_timer_interrupt+0x2a/0x30
DWARF2 unwinder stuck at apic_timer_interrupt+0x2a/0x30
Leftover inexact backtrace:

-- 
http://www.codemonkey.org.uk

-- 
VGER BF report: U 0.489161

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: neigh_lookup lockdep warning
  2006-09-03  1:26 neigh_lookup lockdep warning Dave Jones
@ 2006-09-03 11:32 ` Herbert Xu
  0 siblings, 0 replies; 2+ messages in thread
From: Herbert Xu @ 2006-09-03 11:32 UTC (permalink / raw)
  To: Dave Jones, Ingo Molnar, Arjan van de Ven; +Cc: netdev

On Sun, Sep 03, 2006 at 01:26:59AM +0000, Dave Jones wrote:
> Seen during boot of a 2.6.18rc5-git1 based kernel.
> 
> =======================================================
> [ INFO: possible circular locking dependency detected ]
> 2.6.17-1.2608.fc6 #1
> -------------------------------------------------------
> swapper/0 is trying to acquire lock:
>  (&tbl->lock){-+-+}, at: [<c05bdf97>] neigh_lookup+0x50/0xaf
> 
> but task is already holding lock:
>  (&list->lock#3){-+..}, at: [<c05bf677>] neigh_proxy_process+0x20/0xc2

Looks like a validator bug.  Arjan, it seems that the removal of the
lockdep_set_class from skb_queue_head_init doesn't completely cure
the problem.

> the existing dependency chain (in reverse order) is:
> 
> -> #2 (&list->lock#3){-+..}:
>        [<c043c09a>] lock_acquire+0x4b/0x6d
>        [<c061411f>] _spin_lock_irqsave+0x22/0x32
>        [<c05b451f>] skb_dequeue+0x12/0x43
>        [<c05b523a>] skb_queue_purge+0x14/0x1b
>        [<c05be990>] neigh_update+0x34a/0x3a6

This list->lock is n->arp_queue.

>        [<c05f0f6e>] arp_process+0x4ad/0x4e7
>        [<c05f107c>] arp_rcv+0xd4/0xf1
>        [<c05b942c>] netif_receive_skb+0x205/0x274
>        [<c7bb0566>] rhine_napipoll+0x28d/0x449 [via_rhine]
>        [<c05baf73>] net_rx_action+0x9d/0x196
>        [<c04293a7>] __do_softirq+0x78/0xf2
>        [<c0406673>] do_softirq+0x5a/0xbe

...
 
> -> #0 (&tbl->lock){-+-+}:
>        [<c043c09a>] lock_acquire+0x4b/0x6d
>        [<c0613f02>] _read_lock_bh+0x1e/0x2d
>        [<c05bdf97>] neigh_lookup+0x50/0xaf
>        [<c05bf0b9>] neigh_event_ns+0x2c/0x77
>        [<c05f0e2a>] arp_process+0x369/0x4e7
>        [<c05f10a1>] parp_redo+0x8/0xa
>        [<c05bf6bd>] neigh_proxy_process+0x66/0xc2

This list->lock is tbl->proxy_queue.

>        [<c042dc58>] run_timer_softirq+0x108/0x167
>        [<c04293a7>] __do_softirq+0x78/0xf2
>        [<c0406673>] do_softirq+0x5a/0xbe

BTW, out of the last four validator reports I've read three have turned
out to be genuine bugs.  So you guys have done a fantastic job!

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

-- 
VGER BF report: U 0.5

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-09-03 11:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-09-03  1:26 neigh_lookup lockdep warning Dave Jones
2006-09-03 11:32 ` Herbert Xu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).