Return to BSD News archive
Newsgroups: comp.unix.bsd
Path: sserve!manuel!munnari.oz.au!uunet!mcsun!sunic!ugle.unit.no!aun.uninett.no!barsoom!barsoom!tih
From: tih@barsoom.nhh.no (Tom Ivar Helbekkmo)
Subject: Re: 386BSD: buffer space allocation -- a small bugfix.
Message-ID: <tih.714989648@barsoom>
Sender: news@barsoom.nhh.no (USENET News System)
Organization: Norwegian School of Economics
References: <tih.714982908@barsoom>
Date: Fri, 28 Aug 1992 08:14:08 GMT
Lines: 39
I wrote:
>Well, I guess it's my turn! :-) I'm now seeing the "kmem_map too
>small" panic here, when I try to copy a large file (a 1.44Mb floppy
>image) from an NFS-mounted device to a local hard disk. I've tried
>making the changes that have been suggested, but that didn't help.
>(Sanity check in machdep.c, 500 to 1000 increase in vm_map.h.)
I've been looking at this stuff a bit more, and I've found something
that I don't really understand -- but which looks like a bug to me.
The function kmem_malloc() in /sys/vm/vm_kern.c has a parameter called
canwait, which the comment at the top indicates is set to non-zero
when kmem_malloc() is called from interrupt level, and the allocation
thus cannot be allowed to block. Sounds reasonable to me, and also
sounds like a reason to panic if this happens. However, I'm looking
at the following bit of code in kmem_malloc():
if (vm_map_find(map, NULL, (vm_offset_t)0,
&addr, size, TRUE) != KERN_SUCCESS) {
if (canwait)
panic("kmem_malloc: kmem_map too small");
return(0);
}
I confess I don't understand this virtual memory stuff too well, but
shouldn't that test be "if (!canwait)", though? The way I read this,
if the caller says "I'd like to get this memory, but hey, I can wait,
so don't worry if I can't have it now", and we can't satisfy the
request at the moment, we panic. If on the other hand, the request
was "Give me this memory, I've *gotta* have it right now!" we just
quietly fail.
Am I missing something important here?
-tih
--
Tom Ivar Helbekkmo, NHH, Bergen, Norway. Telephone: +47-5-959205
Postmaster for domain nhh.no. Internet mail: tih@barsoom.nhh.no