Date: Thu, 11 Jul 2002 05:22:36 -0700 (PDT) From: Don Lewis <dl-freebsd@catspoiler.org> To: current@FreeBSD.ORG Subject: Re: "pipe mutex" vs. "sigio lock" lock order reversal Message-ID: <200207111222.g6BCMawr010506@gw.catspoiler.org> In-Reply-To: <200207072343.g67Nhs0M024152@gw.catspoiler.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 7 Jul, Don Lewis wrote: > This error showed up in my logs this morning while I was building some > ports on a uni-processor box. I'm running a version of -current from > July 7 about 1 AM PDT. > > Jul 7 07:47:09 scratch kernel: lock order reversal > Jul 7 07:47:09 scratch kernel: 1st 0xcabf7980 pipe mutex (pipe mutex) @ /usr/src/sys/kern/sys_pipe.c:451 > Jul 7 07:47:09 scratch kernel: 2nd 0xc0474300 sigio lock (sigio lock) @ /usr/src/sys/kern/kern_sig.c:2113> I figured out part of the problem. The call stack is: pgsigio() pipe_read() dofileread() read() This was a bit tricky to find because the call to pgsigio() is hidden in pipeselwakeup(), which is an inline function called by pipe_read(). I don't see a good way to fix this. I also don't yet know why witness thinks it has seen the locks asserted in the opposite order. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200207111222.g6BCMawr010506>