davidt at yadt.co.uk
Fri Jan 4 05:43:52 PST 2008
On Fri, 04 Jan 2008, Andrey Chernov wrote:
> On Fri, Jan 04, 2008 at 12:57:11PM +0000, Poul-Henning Kamp wrote:
> > There is address space allocated to the process (via sbrk/mmap)
> > A subset of this, is address space allocated by the program (via malloc)
> > ...and then there is memory actually in use, which is an entirely different
> > thing, of which we currently only have some kind of clue in the VM
> > system.
> Then, we need sysctl to fetch that "memory actually in use" from the
> kernel and compare that with getrlimit() which allows malloc() to return
> 0 when needed.
That won't help much -- malloc could have allocated some address space that
hasn't (yet) been touched by the process. Just returning 0 when the
amount of memory "in use" hits a limit wouldn't stop the process from
then touching all the memory it has previously been allocated and
exceeding the limit.
More information about the freebsd-current