home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.unix.bsd
- Path: sparky!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
-