sbrk(2) broken

David Taylor 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.

-- 
David Taylor


More information about the freebsd-current mailing list