Date: Wed, 09 Jan 2008 01:30:22 +0100 From: Kris Kennaway <kris@FreeBSD.org> To: Bharma Ji <bharmaji@gmail.com> Cc: freebsd-hackers@freebsd.org Subject: Re: Graceful failure instead of panicking in kmem_malloc Message-ID: <4784159E.9040905@FreeBSD.org> In-Reply-To: <67beabb0801081555v4ca3b729x294322fa724afa09@mail.gmail.com> References: <67beabb0801081555v4ca3b729x294322fa724afa09@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Bharma Ji wrote: > In FreeBSD 6_2, if kmem_malloc is unable to find space it panics. The > relevant code is in vm_kern.c > if ((flags & M_NOWAIT) == 0) > panic("kmem_malloc(%ld): kmem_map too small: %ld > total allocated", > (long)size, (long)map->size); > > Is there any way to make the system log and then gracefully shut off instead > of panicking? Not really, because those actions require memory allocation. The real fix is to either a) avoid running out of memory in the first place by tuning vm.kmem_size b) perhaps trying harder to avoid panicking by first trying to more aggressively reclaim memory. You can try http://www.freebsd.org/~pjd/patches/vm_kern.c.2.patch which implements b) (patch against 7.0, but might apply to 6.2 unchanged). Kris
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4784159E.9040905>