cvs commit: src/sys/vm vm_kern.c

Bruce Evans bde at zeta.org.au
Tue Feb 17 01:05:25 PST 2004


On Mon, 16 Feb 2004, Maxime Henrion wrote:

> M. Warner Losh wrote:
> > In message: <20040216210503.GC35475 at elvis.mu.org>
> >             Maxime Henrion <mux at FreeBSD.org> writes:
> > : I find it very convenient to have a flag to tell malloc() to try as hard
> > : as it can to allocate the memory without crashing on us.  I suspect this
> > : could allow us to remove a fair number of kernel compile-time options.
> > :
> > : The patch can be found at http://www.mu.org/~mux/patches/malloc.patch.
> >
> > How would that be different than M_NOWAIT and then trying again a
> > couple of times?  Each time will fail if it is too big.  And that's
> > not meaningfully distinguishable from there not being enough memory
> > currently available to satisfy the request.
>
> Because if there is a memory shortage but it's possible to get the
> requested amount of memory later (because it's smaller than kmem_map),
> M_WAITOK | M_SAFE won't fail but wait while M_NOWAIT will fail right
> away.  Why trying again when we already have a flag for this?  What this
> patch does is allow to call malloc(verybignumber) without crashing to
> help in cases where it's hard to define what's a reasonable size.

I think malloc(verybignumber) shouldn't be encouraged, since it might
succeed and consume almost all malloc'able memory, and then other requests
for relatively small amounts of memory will fail.  Callers that want
lots of memory should be careful not to ask for more than they need and
can reasnbly expect to get.

Bruce


More information about the cvs-src mailing list