Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 8 May 1999 11:53:43 -0500 (EST)
From:      Alfred Perlstein <bright@rush.net>
To:        Luigi Rizzo <luigi@labinfo.iet.unipi.it>
Cc:        current@FreeBSD.ORG
Subject:   Re: m_get(M_WAIT, ...) _can_ return NULL ?
Message-ID:  <Pine.BSF.3.96.990508115039.7628f-100000@cygnus.rush.net>
In-Reply-To: <199905081332.PAA07452@labinfo.iet.unipi.it>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 8 May 1999, Luigi Rizzo wrote:

> Hi,
> 
> thinking about the supposed "fragility" of FreeBSD when mbufs (or
> clusters) are not properly dimensioned: i notice that
> in various places of the code (and this is, i think, 4.4 heritage),
> there are things like
> 
> 	m = m_get(M_WAIT, ...)
> 	m->m_len = something.
> 
> looking at the code, it seems that m_get() _can_ return a NULL pointer
> even if one specifies M_WAIT.
> 
> Could this be a potential weakness, and in this case, how shuld we go
> and fix it -- by making m_get never return if there is no memory,
> or by hunting all such occurrences of the code ?

I'm pretty sure there was a discussion about this almost a year ago,
the situation with m_get+M_WAIT possibly returning NULL got so
man people annoyed that a few sent in patches that REALLY helped
FreeBSD remain stable during severe mbuf shortages.

Unfortunatly it seems that they didn't catch every place.

I think the answer is to figure out how to make these places
"back out" instead of making m_get totally blocking, It gives
more control.

-Alfred



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?Pine.BSF.3.96.990508115039.7628f-100000>