Thank you Xin. Let me have a look and see if there is an alternative.
-- Qing On Fri, Jul 2, 2010 at 2:26 PM, Xin LI <delp...@delphij.net> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA256 > > Hi, Bjoern, > > On 2010/07/02 01:39, Bjoern A. Zeeb wrote: >> On Sat, 5 Jun 2010, Chao Shin wrote: >> >> Hey, >> >>> We add kdb/ddb and extra panic info printing into kernel and catch >>> this panic again. >>> >>> We have instrumented the kernel and found that this panic happens when >>> draining == 1, >>> but seems to be confused with the fact that all access to radix trees >>> are protected >>> by locks. Can anyone familiar with these code shed us some light on >>> this? >>> >>> below is url to screenshot in ddb: >>> http://www.delphij.net/zhao/1.png >>> http://www.delphij.net/zhao/2.png >> >> Did anyone pick this up? > > I don't think so. > > Currently we believe that there is some call paths that would exhibit > the following: > > Thread A Thread B > (...) > RTLOCK(rt) > rt->ref--; > [ref drops to 0 now] > (obtain rnh_lock) > (in in_matroute) > saw rt->ref == 0 > rt->rt_flags & RTPRF_OURS == 0 > (return from in_matroute()) > RT_LOCK(rt) <-- blocks here > rt->rt_flags |= OURS > RT_UNLOCK(rt); > RT_LOCK(rt) <-- got a wakeup > rt->ref++ > (ref == 1 && rt->rt_flags & RTPRF_OURS) > > With the attached workaround they have not see this type of panics so > far but that doesn't seem ideal. > > Kip and Qing's paper titled "Optimizing the BSD routing system for > parallel processing" suggests copying the route entry rather than > referencing it but I didn't yet on how should I implement that and do > benchmark... > > Cheers, > - -- > Xin LI <delp...@delphij.net> http://www.delphij.net/ > FreeBSD - The Power to Serve! Live free or die > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2.0.15 (FreeBSD) > > iQEcBAEBCAAGBQJMLlmNAAoJEATO+BI/yjfBzvAIANjmEXX54lryJ6Qq37yUFdmd > BQqw7r/Q7IYD6gOBU0/iMUySa4x6H3U+8TPUK8Rf+ARkG8CP3JsRMPJtLkFs5Eby > lmvQDRcfcKzFCAC40m/FmdlCl0c2Q/mz5H4PYve3zuU+BEDN0NOEIUtnYVmOJK1U > 4O5XXZcAzNT1BXKKwbogwQq0t4dhT/3+4inH6vC3w8HpzwDfXS2GogFSOYlSurvC > h7b2wjrD7sgTPZZj1DN7qWjGSRNAao+AGzlzvQR6tNCqWV+bn8qF+QaNoFepev+g > ITeUh9IXffn646WCRF5whKUjz+M9IvSPhqGiFyWfhcGj8DbDt074XMsHiBLh7nc= > =lHSK > -----END PGP SIGNATURE----- > _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"