From owner-freebsd-current@FreeBSD.ORG Tue Mar 18 19:16:33 2008 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 91B75106566B for ; Tue, 18 Mar 2008 19:16:33 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.154]) by mx1.freebsd.org (Postfix) with ESMTP id 1CED48FC1B for ; Tue, 18 Mar 2008 19:16:32 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: by fg-out-1718.google.com with SMTP id 16so33525fgg.35 for ; Tue, 18 Mar 2008 12:16:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references:x-google-sender-auth; bh=C0+BpVG0U3Oai+2Xn9IUuPWAuhcLLXS/xMBBQg+3zhs=; b=JNDEPuGqIXomZSRNXRBDyDZpNcJ2oYhl9DppUeDu8F/l3CJ8In2qVNx++LH0oj/vseaua8lp+fPDWHOoNdl/joRxhhfSr8xBwhkfkb/F9gZcDt8DjbXgTwqObY9GC30hTjLYONQ+gHKDeMDJ6L8lZ03W7zxiW9xUgeXDpyRoiTk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references:x-google-sender-auth; b=rXoEs1kSd3chZMS8twNVQqqK0hH2f/trApKFie+mjXmO47wQOwEk8LzHZoVQv9KIsT7mKvc/71UsX3I7WjUwzvz45HgaJFuxlpVENcevbL+fzveFYUMkWAcREHxOBiisDVhfnlDZKc7bHTLDCIBectHEW30VnmHmGp/CIaNfm2I= Received: by 10.82.115.8 with SMTP id n8mr3609704buc.10.1205867789082; Tue, 18 Mar 2008 12:16:29 -0700 (PDT) Received: by 10.86.30.17 with HTTP; Tue, 18 Mar 2008 12:16:28 -0700 (PDT) Message-ID: <3bbf2fe10803181216l7a1f7a5fp382b03a74d84161f@mail.gmail.com> Date: Tue, 18 Mar 2008 20:16:28 +0100 From: "Attilio Rao" Sender: asmrookie@gmail.com To: pluknet In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <3bbf2fe10803181145m79e89955re785e1b5048cafd7@mail.gmail.com> X-Google-Sender-Auth: 78dd00dff1c22fcd Cc: freebsd-current@freebsd.org, Alex Goncharov Subject: Re: Seeing lock order reversal 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: Tue, 18 Mar 2008 19:16:33 -0000 2008/3/18, pluknet : > On 18/03/2008, Attilio Rao wrote: > > 2008/3/18, pluknet : > > > > > > > Thought taking that into account I could obtain a new one yesterday. I > > > didn't see this before. > > > > > > Mar 17 03:17:14 pl sudo: pluknet : TTY=ttyv1 ; PWD=/usr/home/pluknet > > > ; USER=root ; COMMAND=/usr/libexec/getty 3wire.9600 ttyd0 > > > Mar 17 03:17:14 pl kernel: lock order reversal: > > > Mar 17 03:17:14 pl kernel: 1st 0xc07e9274 proctree (proctree) @ > > > /usr/src/sys/kern/kern_exit.c:291 > > > Mar 17 03:17:14 pl kernel: 2nd 0xc2fc49e8 devfs (devfs) @ > > > /usr/src/sys/kern/vfs_subr.c:2158 > > > > > > This one seems interesting. > > Next time you experience it can you please drop in DDB and print-out > > the correct order revealed by WITNESS? > > > > > Fortunately I could reproduce it. > > lock order reversal: > > 1st 0xc07e9274 proctree (proctree) @ /usr/src/sys/kern/kern_exit.c:291 > > 2nd 0xc3c18278 devfs (devfs) @ /usr/src/sys/kern/vfs_subr.c:2158 > KDB: stack backtrace: > db_trace_self_wrapper(c07682d0,d6078b24,c0573236,c076a615,c3c18278,...) > > at db_trace_self_wrapper+0x26 > > kdb_backtrace(c076a615,c3c18278,c075bcfb,c075bcfb,c0770a8c,...) at > kdb_backtrace+0x29 > witness_checkorder(c3c18278,9,c0770a8c,86e,c07edcd4,...) at > witness_checkorder+0x6d6 > _lockmgr_args(c3c18278,20002,c3c182a8,0,ffffffff,...) at _lockmgr_args+0x519 > vop_stdlock(d6078bc4,d6078bbc,c0572a1c,20002,c3c182a8,...) at vop_stdlock+0x51 > VOP_LOCK1_APV(c07a07e0,d6078bc4,851,d6078be4,c3c182a8,...) at VOP_LOCK1_APV+0xa5 > _vn_lock(c3c18220,20002,c0770a8c,86e,4,...) at _vn_lock+0xf2 > vrele(c3c18220,0,c07619a2,14e,ffffffff,...) at vrele+0x142 > exit1(c2fdd690,0,d6078d2c,c0729ed3,c2fdd690,...) at exit1+0x8a1 > sys_exit(c2fdd690,d6078cfc,4,c07625a5,c07a3d38,...) at sys_exit+0x1d > syscall(d6078d38) at syscall+0x2b3 > Xint0x80_syscall() at Xint0x80_syscall+0x20 > --- syscall (1, FreeBSD ELF32, sys_exit), eip = 0x2811964f, esp = > 0xbfbfeacc, ebp = 0xbfbfead8 --- > > Something else? This is the "2nd order". It would be nice to get where these locks are acquired and what is the "1st order". In order to get it, it is enough to break in DDB and do: show witness at DDB prompt. Thanks, Attilio -- Peace can only be achieved by understanding - A. Einstein