Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Dec 2000 17:11:53 +0100 (CET)
From:      Remy Nonnenmacher <remy@boostworks.com>
To:        freebsd-hackers@freebsd.org
Subject:   free() not freing pagedirs pages.
Message-ID:  <200012061612.RAA30340@luxren2.boostworks.com>

next in thread | raw e-mail | index | archive | help
Hello,

I'm encountering a problem with the stardard libc malloc/free library.
if a program allocates a huge (and temporary) amount of memory with
small structures then free it, the library gives back only a few pages
to the system.

From the /usr/src/lib/libc/stdlib/malloc.c sources, it seems that this
is due to not shrinking/relocating pagedir pages (free_pages(), comment
around line 940). This means that returning pages stop at first
allocated pagedir.

It seems to be a problem also in some other Unixes, anyway, but i would
like to know if:

1) This is historical and must not be fixed.
2) This can be easily fixed.
3) Fixing it would lead to enormous problems. Better keep it like this.

Thanks.

RN.
IhM




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?200012061612.RAA30340>