From owner-freebsd-current Tue Oct 8 21:26:49 2002 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 B12FA37B431; Tue, 8 Oct 2002 21:26:44 -0700 (PDT) Received: from gw.catspoiler.org (217-ip-163.nccn.net [209.79.217.163]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3439043E4A; Tue, 8 Oct 2002 21:26:44 -0700 (PDT) (envelope-from dl-freebsd@catspoiler.org) Received: from mousie.catspoiler.org (mousie.catspoiler.org [192.168.101.2]) by gw.catspoiler.org (8.12.5/8.12.5) with ESMTP id g994QTvU037393; Tue, 8 Oct 2002 21:26:33 -0700 (PDT) (envelope-from dl-freebsd@catspoiler.org) Message-Id: <200210090426.g994QTvU037393@gw.catspoiler.org> Date: Tue, 8 Oct 2002 21:26:29 -0700 (PDT) From: Don Lewis Subject: Re: [PATCH] Re: Junior Kernel Hacker page updated... To: e0026813@stud3.tuwien.ac.at Cc: tlambert2@mindspring.com, jhb@FreeBSD.ORG, jmallett@FreeBSD.ORG, current@FreeBSD.ORG In-Reply-To: <20021008204605.GA252@frog.fafoe> MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On 8 Oct, Stefan Farfeleder wrote: > On Mon, Oct 07, 2002 at 03:48:45AM -0700, Terry Lambert wrote: > Following the advice from the spl* man page I turned the spl* calls to a > mutex and was surprised to see it working. My SMP -current survived a 'make > -j16 buildworld' with make using kqueue() (which it did not a single > time out of >30 times before). Further testings will follow tomorrow. > > However, WITNESS complains (only once) about this: > lock order reversal > 1st 0xc662140c kqueue mutex (kqueue mutex) @ /freebsd/current/src/sys/kern/kern_event.c:714 > 2nd 0xc6727d00 pipe mutex (pipe mutex) @ /freebsd/current/src/sys/kern/sys_pipe.c:1478 That's pretty similar to the lock order reversal I've seen in the pipe code and it's interaction with sigio, which is not suprising since pipeselwakeup() calls both pgsigio() and KNOTE(), often while the pipe lock is held. Correctly fixing this doesn't look easy ... To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message