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 majord...@freebsd.org
with "unsubscribe freebsd-current" in the body of the message

Reply via email to