Skip site navigation (1)Skip section navigation (2)
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>