Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Jan 1999 14:17:03 -0800
From:      Mike Smith <mike@smith.net.au>
To:        Brian Feldman <green@unixhelp.org>
Cc:        Mike Smith <mike@smith.net.au>, Julian Elischer <julian@whistle.com>, Matthew Dillon <dillon@apollo.backplane.com>, current@FreeBSD.ORG
Subject:   Re: kernel malloc and M_CANWAIT 
Message-ID:  <199901182217.OAA19112@dingo.cdrom.com>
In-Reply-To: Your message of "Mon, 18 Jan 1999 16:34:49 EST." <Pine.BSF.4.05.9901181629050.18713-100000@janus.syracuse.net> 

next in thread | previous in thread | raw e-mail | index | archive | help
> On Mon, 18 Jan 1999, Mike Smith wrote:
> 
> > > >     So malloc() will generally not return NULL even in low memory situations
> > > >     unless the KVM map fills up, which isn't supposed to happen but can in
> > > >     certain severe circumstances.  Callers should therefore check for NULL.
> > > 
> > > why not just put it in a loop and block on lbolt?
> > > (or call panic)
> > 
> > Because you shouldn't panic unless there's no alternative.  Panicking 
> > on resource starvation is just totally lame.
> 
> And what's wrong with spinning inside malloc until the resources are free?

If you have to ask this, you have a lot of reading to do before you're 
going to be able to understand any of the deadlock issues.

Just as a hint for this one though - if you're spinning inside malloc() 
waiting for the resources to be freed, who is going to free them?

> There are places that architecturally require M_WAITOK to not return NULL.
> Look at the void () functions that call malloc/MALLOC. 

These are (obviously) bogus code.  So they need to be fixed...

> Also, commit the
> attached patch; it was OKed by Bruce to disallow this, but he seems to forget
> to commit it.

I'm not going to second-guess Bruce on this one.

-- 
\\  Sometimes you're ahead,       \\  Mike Smith
\\  sometimes you're behind.      \\  mike@smith.net.au
\\  The race is long, and in the  \\  msmith@freebsd.org
\\  end it's only with yourself.  \\  msmith@cdrom.com



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?199901182217.OAA19112>