Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 31 Jul 2002 23:12:51 -0700
From:      Terry Lambert <tlambert2@mindspring.com>
To:        Alan Cox <alc@cs.rice.edu>
Cc:        Andrew Gallatin <gallatin@cs.duke.edu>, Peter Wemm <peter@wemm.org>, John Baldwin <jhb@FreeBSD.org>, freebsd-smp@FreeBSD.org
Subject:   Re: INTR_MPSAFE network drivers
Message-ID:  <3D48D163.2213890@mindspring.com>
References:  <XFMail.20020729175342.jhb@FreeBSD.org> <20020730000345.E0D9F2A7D6@canning.wemm.org> <15686.48913.150407.307190@grasshopper.cs.duke.edu> <20020730171226.GA26599@cs.rice.edu> <15688.22002.772933.316104@grasshopper.cs.duke.edu> <20020801021235.GD9934@cs.rice.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
Alan Cox wrote:
> On Wed, Jul 31, 2002 at 05:26:10PM -0400, Andrew Gallatin wrote:
> >
> > For what its worth, this *seems* to work OK on a non-WITNESS,
> > non-INVARIENTs kernel.
> 
> That's what I would expect.  The difficult problem that we'll have
> with kmem_malloc() and friends stems from legacy drivers that rely on
> Giant, not a properly locked driver.  If a legacy driver sleeps because
> kmem_malloc() is unable to acquire the mb_map or kernel_map lock, they
> may wake up to an inconsistent state.  Right now, requiring Giant in
> the top half of the kernel to call kmem_malloc() et al. prevents this.

Why the heck is a driver calling this anyway?

Why the heck is there *anything* in the driver that needs a lock
that's not implicit in the fact that it's called to process an
interrupt?

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3D48D163.2213890>