Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Mar 2015 15:37:11 -0500
From:      Lars <lars@odin-corporation.com>
To:        "Alexander V. Chernikov" <melifaro@freebsd.org>
Cc:        freebsd-current@freebsd.org
Subject:   locking issue between igmp and route code in current?
Message-ID:  <1912E396-1837-4E57-AB26-075DF2141074@odin-corporation.com>

next in thread | raw e-mail | index | archive | help
Hi,
I noticed the following checkins to route.c in current, and was =
wondering if they have barring on the deadlock documented below:

Revision 274589 =
<http://svnweb.freebsd.org/base?view=3Drevision&revision=3D274589>; - =
(view =
<http://svnweb.freebsd.org/base/head/sys/net/route.c?revision=3D274589&vie=
w=3Dmarkup>) (download =
<http://svnweb.freebsd.org/base/head/sys/net/route.c?revision=3D274589&vie=
w=3Dco>) (annotate =
<http://svnweb.freebsd.org/base/head/sys/net/route.c?annotate=3D274589>) =
- [select for diffs] =
<http://svnweb.freebsd.org/base/head/sys/net/route.c?view=3Dlog&r1=3D27458=
9&log_pagestart=3D0>=20
Modified Sun Nov 16 18:15:23 2014 UTC (4 months, 1 week ago) by melifaro=20=

File length: 46990 byte(s)=20
Diff to previous 274585 =
<http://svnweb.freebsd.org/base/head/sys/net/route.c?r1=3D274585&r2=3D2745=
89>
Revert r274585 =
<http://svnweb.freebsd.org/base?view=3Drevision&revision=3D274585>: rte =
lock is properly destroyed in uma dtor callback.

Pointed by:	glebius

 <>Revision 274585 =
<http://svnweb.freebsd.org/base?view=3Drevision&revision=3D274585>; - =
(view =
<http://svnweb.freebsd.org/base/head/sys/net/route.c?revision=3D274585&vie=
w=3Dmarkup>) (download =
<http://svnweb.freebsd.org/base/head/sys/net/route.c?revision=3D274585&vie=
w=3Dco>) (annotate =
<http://svnweb.freebsd.org/base/head/sys/net/route.c?annotate=3D274585>) =
- [select for diffs] =
<http://svnweb.freebsd.org/base/head/sys/net/route.c?view=3Dlog&r1=3D27458=
5&log_pagestart=3D0>=20
Modified Sun Nov 16 14:56:31 2014 UTC (4 months, 1 week ago) by melifaro=20=

File length: 47013 byte(s)=20
Diff to previous 274187 =
<http://svnweb.freebsd.org/base/head/sys/net/route.c?r1=3D274187&r2=3D2745=
85>
Make witness happy: destroy rte lock before free.

MFC after:	2 weeks

lock order reversal:
 1st 0xfffff80003d62190 if_addr_lock (if_addr_lock) @ =
/u/lars/sandbox/builds/curre
nt_10032015/sys/netinet/igmp.c:1714
 2nd 0xfffff800090d7be0 radix node head (radix node head) @ =
/u/lars/sandbox/builds/current_10032015/sys/net/route.c:415
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame =
0xfffffe0043faf3f0
witness_checkorder() at witness_checkorder+0xbe7/frame =
0xfffffe0043faf480
__rw_rlock() at __rw_rlock+0x5a/frame 0xfffffe0043faf520
rtalloc1_fib() at rtalloc1_fib+0x60/frame 0xfffffe0043faf5d0
rtalloc_ign_fib() at rtalloc_ign_fib+0x98/frame 0xfffffe0043faf610
flowtable_lookup_common() at flowtable_lookup_common+0x1e6/frame =
0xfffffe0043faf6f0
flowtable_lookup() at flowtable_lookup+0x10f/frame 0xfffffe0043faf750
ip_output() at ip_output+0x87/frame 0xfffffe0043faf840
igmp_intr() at igmp_intr+0x2ed/frame 0xfffffe0043faf8c0
netisr_dispatch_src() at netisr_dispatch_src+0x61/frame =
0xfffffe0043faf930
igmp_v1v2_queue_report() at igmp_v1v2_queue_report+0x14b/frame =
0xfffffe0043faf980
igmp_fasttimo() at igmp_fasttimo+0x381/frame 0xfffffe0043fafa30
pffasttimo() at pffasttimo+0x54/frame 0xfffffe0043fafa60
softclock_call_cc() at softclock_call_cc+0x165/frame 0xfffffe0043fafb20
softclock() at softclock+0x3d/frame 0xfffffe0043fafb40
intr_event_execute_handlers() at intr_event_execute_handlers+0xb1/frame =
0xfffffe0043fafb70
ithread_loop() at ithread_loop+0x9c/frame 0xfffffe0043fafbb0
fork_exit() at fork_exit+0x71/frame 0xfffffe0043fafbf0
fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0043fafbf0


This was on a current build as of March 10 - svn 279869

Lars=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1912E396-1837-4E57-AB26-075DF2141074>