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>