Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Dec 1998 03:08:18 -0500 (EST)
From:      "John S. Dyson" <dyson@iquest.net>
To:        dillon@apollo.backplane.com (Matthew Dillon)
Cc:        hackers@FreeBSD.ORG
Subject:   Re: M_KERNEL in sys/malloc.h ???
Message-ID:  <199812240808.DAA46738@y.dyson.net>
In-Reply-To: <199812230019.QAA08154@apollo.backplane.com> from Matthew Dillon at "Dec 22, 98 04:19:43 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
Matthew Dillon said:
>     Does anyone know what M_KERNEL is sys/malloc.h is supposed to do?  It
>     is used in precisely two places in the code as far as I can tell:
> 
>     vm/default_pager.c:     if (swap_pager_swp_alloc(object, M_KERNEL) != 0) {
>     vm/default_pager.c:     if (swap_pager_swp_alloc(object, M_KERNEL) != 0) {
>     vm/swap_pager.c:                spc->spc_bp = malloc(sizeof(*bp), M_TEMP, M_KERNEL);
> 
>     But kern/kern_malloc.c doesn't appear to really use it.  On the otherhand
>     I do see lots of absolute comparison of the malloc 'flags' to M_WAITOK
>     (0) or M_NOWAIT which the use of M_KERNEL would interfere with.  I can't
>     tell if the side effects are something that are expected, or if the
>     side effects are a bug.
> 
>     Anybody know?
> 
As I remember, M_KERNEL means that it really needs memory.  waiting
for memory is bad, and dip deeply into the page reserves.  Normally, the
malloc (in vm_kern) code will only dip into the interrupt accessible
free pages.  The M_KERNEL allows it to dip into all of the pages.

-- 
John                  | Never try to teach a pig to sing,
dyson@iquest.net      | it makes one look stupid
jdyson@nc.com         | and it irritates the pig.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199812240808.DAA46738>