Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Dec 2002 16:05:23 -0500 (EST)
From:      Andrew Gallatin <gallatin@cs.duke.edu>
To:        Kyunghwan Kim <redjade@ada.snu.ac.kr>
Cc:        current@FreeBSD.ORG
Subject:   Re: INTR_MPSAFE to network device drivers
Message-ID:  <15871.37267.31358.280147@grasshopper.cs.duke.edu>
In-Reply-To: <20021217202402.GA57385@ada.snu.ac.kr>
References:  <20021217191841.GA57094@ada.snu.ac.kr> <15871.31635.962334.855790@grasshopper.cs.duke.edu> <20021217195300.GB57094@ada.snu.ac.kr> <20021217202402.GA57385@ada.snu.ac.kr>

next in thread | previous in thread | raw e-mail | index | archive | help

Kyunghwan Kim writes:
 > On Wed, Dec 18, 2002 at 04:53:00AM +0900, Kyunghwan Kim wrote:
 > > On Tue, Dec 17, 2002 at 02:31:31PM -0500, Andrew Gallatin wrote:
 > > >  > mbuf and bpf routines are all mp-safe, so it seems that
 > > >  > it is safe to make network device drivers out of Giant lock.
 > > >  > Or is there any unresolved related issues?
 > > > 
 > > > Yes, the mbuf allocator must occasionally call kmem_malloc(), which
 > > > requires Giant.    This means no net driver can be made INTR_MPSAFE,
 > > > or it will eventually panic when kmem_malloc is called. 
 > > 
 > > I found and read the thread that you and Alan had discussed about this
 > > problem just before. Then what about making updated version of mb_pop_cont()
 > > that accepts occasionally acquiring Giant?
 > 
 > Oh, sorry. Conclusion of the thread was preallocation.
 > But it doesn't seem that preallocation is the correct way.

Well, the "right" way is bringing kmem_malloc() out from under Giant.
Preallocation would just be an interim measure until kmem_malloc() was
mp-safe.

The VM maintainers were only recently made aware of this issue. I have
no idea what the scope of the changes to make kmem_malloc() mpsafe
would be, so I have no idea when kmem_malloc() will become mpsafe.

Drew

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?15871.37267.31358.280147>