Date: Thu, 15 Sep 2005 21:16:17 +0100 (BST) From: Robert Watson <rwatson@FreeBSD.org> To: John Baldwin <jhb@FreeBSD.org> Cc: freebsd-current@freebsd.org, dan.cojocar@gmail.com Subject: Re: LOR in /usr/src/sys/netinet/in.c:972 Message-ID: <20050915211552.O75005@fledge.watson.org> In-Reply-To: <200509151557.11162.jhb@FreeBSD.org> References: <b37cb09705090307285418dd1e@mail.gmail.com> <200509151422.04459.jhb@FreeBSD.org> <20050915202308.H75005@fledge.watson.org> <200509151557.11162.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 15 Sep 2005, John Baldwin wrote: >>> This is a real LOR caused by the fact that in_addmulti() holds the >>> in_multi_mtx() lock across the call to if_addmulti() and if_addmulti() >>> will acquire Giant for non-MPsafe drivers around calls into their >>> ioctl routine. I think that to better expose these issues, the various >>> conditional-Giant macros need to include a witness_warn() to make sure >>> only sleepable locks and/or Giant are held when the lock macro is >>> invoked. >> >> The right strategy here may in fact be to eliminate Giant acquisition >> by network device drivers... > > I'm working on that. :) And it is much appreciated :-). Robert N M Watson
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050915211552.O75005>