Re: 2.6.24-rc7: memory leak?

From: Peter Zijlstra
Date: Thu Jan 17 2008 - 07:22:01 EST



On Thu, 2008-01-17 at 23:14 +1100, CaT wrote:
> On Thu, Jan 17, 2008 at 01:07:12PM +0100, Peter Zijlstra wrote:
> > On Thu, 2008-01-17 at 22:40 +1100, CaT wrote:
> > > > How much memory does:
> > > >
> > > > echo 3 > /proc/sys/vm/drop_caches
> > > >
> > > > gain you?
> > >
> > > 56M used now.
> >
> > Good :-)
>
> Indeed. :)
>
> > > Should all this cache usage not be counted towards the
> > > 'Cached' entry in meminfo rather then getting counted as part of used
> > > ram.
> >
> > Cached is only the page-cache, not all the other caches we have..
> > This someones confuses people, but one gets used to it. slabinfo allows
> > one to easily view others.
>
> So what would I have to do to find out the real amount of memory free?
> Would that be the MemFree field in /proc/meminfo plus, from
> /proc/slabinfo, *_cache and size-*?

MemFree is the actual amount of free memory. Page reclaim and such
might, on memory pressure, free memory from cached, buffered and some
slabs that have shrinkers.

> If that's the case it would seem to be somewhat of a pain to get and
> kind of out of left field as I'd say most people would expect MemFree to
> indicate the amount of memory that's no longer freely available
> (ignoring swapping it out for simplicities sake).

I'm somewhat confused as to what you're saying. How would anyone expect
MemFree to be memory that is _not_ freely available?

Or are you asking how to compute the amount of freeable memory, that is
memory that isn't currently free, but could be freed up under pressure?

If that is indeed your question, then yes, thats rather hard as slabinfo
and the like don't indicate which buckets have shrinkers (but even if
they would have shrinkers there is no guarantee they'd be able to shrink
100%)


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/