From owner-freebsd-current@FreeBSD.ORG Thu Sep 1 17:22:40 2005 Return-Path: X-Original-To: freebsd-current@FreeBSD.org Delivered-To: freebsd-current@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A807716A41F; Thu, 1 Sep 2005 17:22:40 +0000 (GMT) (envelope-from truckman@FreeBSD.org) Received: from gw.catspoiler.org (217-ip-163.nccn.net [209.79.217.163]) by mx1.FreeBSD.org (Postfix) with ESMTP id 34B4F43D46; Thu, 1 Sep 2005 17:22:40 +0000 (GMT) (envelope-from truckman@FreeBSD.org) Received: from FreeBSD.org (mousie.catspoiler.org [192.168.101.2]) by gw.catspoiler.org (8.13.3/8.13.3) with ESMTP id j81HMMPp021231; Thu, 1 Sep 2005 10:22:26 -0700 (PDT) (envelope-from truckman@FreeBSD.org) Message-Id: <200509011722.j81HMMPp021231@gw.catspoiler.org> Date: Thu, 1 Sep 2005 10:22:22 -0700 (PDT) From: Don Lewis To: fli+freebsd-current@shapeshifter.se In-Reply-To: <4316CE7B.2090303@shapeshifter.se> MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii Cc: bzeeb-lists@lists.zabbadoz.net, freebsd-current@FreeBSD.org, rwatson@FreeBSD.org, dandee@volny.cz, imp@bsdimp.com Subject: Re: LOR route vr0 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Sep 2005 17:22:40 -0000 On 1 Sep, Fredrik Lindberg wrote: > Don Lewis wrote: >> On 27 Aug, M. Warner Losh wrote: >> >>>In message: <20050828025721.X43518@fledge.watson.org> >>> Robert Watson writes: >>>: >>>: On Sat, 27 Aug 2005, M. Warner Losh wrote: >>>: >>>: > : You need to add an entry to subr_witness.c creating a graph edge between >>>: > : the softc lock and the routing lock. An example of an entry in >>>: > : subr_witness.c: >>>: > : >>>: > : /* >>>: > : * TCP/IP >>>: > : */ >>>: > : { "tcp", &lock_class_mtx_sleep }, >>>: > : { "tcpinp", &lock_class_mtx_sleep }, >>>: > : { "so_snd", &lock_class_mtx_sleep }, >>>: > : { NULL, NULL }, >>>: > : >>>: > : Note that sets of ordered entries are terminated with a double-null. This >>>: > : declares that locks of type "tcp" preceed "tcpinp" which preceed >>>: > : "so_snd". >>>: > >>>: > So you have to have locks of type tcp BEFORE you take out tcpinp type >>>: > locks? >>>: >>>: Correct. 'tcp' reflects the global TCP state tables (pcbinfo) locks, and >>>: 'tcpinp' is for individual PCBs. If you acquire first a tcpinp and then >>>: tcp, the above settings should cause WITNESS to generate a lock order >>>: warning. Likewise, both tcp and tcpinp preceed so_snd, so if you acquire >>>: a protocol lock after a socket lock, it will get unhappy. WITNESS handles >>>: transitive relationships, so it gets connected up to the rest of the lock >>>: graph, explicit and implicit, so indirect violations of orders are fully >>>: handled. >>> >>>OK. I've been seeing similar LORs in ed, sn, iwi (ed is my locked >>>version of ed, not in tree GIANT locked ed). >> >> >> Just as a datapoint, I've got fxp interfaces on all my machines running >> -CURRENT and I'm not seeing the problem here. >> > > I'm seeing both the rentry and the tcpinp LORs on my fxp interface > on a machine running a few days old -current (Aug 25). > > lock order reversal > 1st 0xc1e30d38 inp (tcpinp) @ /usr/src/sys/netinet/tcp_input.c:742 > 2nd 0xc1b74018 fxp0 (network driver) @/usr/src/sys/dev/fxp/if_fxp.c:1172 > > lock order reversal > 1st 0xc1e06bb8 rtentry (rtentry) @ /usr/src/sys/net/route.c:1269 > 2nd 0xc1b74018 fxp0 (network driver) @/usr/src/sys/dev/fxp/if_fxp.c:1172 > > As for their backtraces they are almost identical to the > once already posted. Are you using any applications that use multicast? Can you break into DDB and capture the output of "show witness"?