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>