mbuf LOR
Andrew Gallatin
gallatin at cs.duke.edu
Wed Apr 9 10:28:22 PDT 2003
Nate Lawson writes:
> On Fri, 4 Apr 2003, Andrew Gallatin wrote:
> > The following patch boots & passed the basic 'make -j16 buildworld'
> > test on x86 SMP. As I outlined before, I'm not certain if it is safe
> > on all platforms.
> >
> > Index: vm/uma_core.c
> > ===================================================================
> > RCS file: /home/ncvs/src/sys/vm/uma_core.c,v
> > retrieving revision 1.51
> > diff -u -r1.51 uma_core.c
> > --- vm/uma_core.c 26 Mar 2003 18:44:53 -0000 1.51
> > +++ vm/uma_core.c 4 Apr 2003 15:11:34 -0000
> > @@ -703,10 +703,15 @@
> > wait &= ~M_ZERO;
> >
> > if (booted || (zone->uz_flags & UMA_ZFLAG_PRIVALLOC)) {
> > - mtx_lock(&Giant);
> > - mem = zone->uz_allocf(zone,
> > - zone->uz_ppera * UMA_SLAB_SIZE, &flags, wait);
> > - mtx_unlock(&Giant);
> > + if ((wait & M_NOWAIT) == 0) {
> > + mtx_lock(&Giant);
> > + mem = zone->uz_allocf(zone,
> > + zone->uz_ppera * UMA_SLAB_SIZE, &flags, wait);
> > + mtx_unlock(&Giant);
> > + } else {
> > + mem = zone->uz_allocf(zone,
> > + zone->uz_ppera * UMA_SLAB_SIZE, &flags, wait);
> > + }
> > if (mem == NULL) {
> > ZONE_LOCK(zone);
> > return (NULL);
>
> I have been running with this patch for days with MPSAFE and it works
> fine. Will you commit it at some point? Can the non-i386 platform heads
> chime in?
I'd really prefer that Jeff reviewed it, as I'm not 100% familiar with the
code. I seem to remember that he's out of town for a week.
Drew
More information about the freebsd-current
mailing list