Andrei Martynov wrote:
> 
> I'm using kernel 2.6.24 with uClinux and ARM NOMMU patches. When one
> application starts reading from disk kernel uses all available memory
> for caching and other applications fail to start (not enough memory).
> It takes kernel up to 10 seconds to release memory after the first
> application exits.

Yes, this is the reason we had mm/page_alloc2.c in Linux 2.4.  That
allocator is slow but reduces fragmentation, which is part of the
problem you're seeing.

There's no direct equivalent to page_alloc2.c in Linux 2.6, although
there are other fragmentation reduction measures.

2.6.24 is quite old.
You might get better results using 2.6.28 or 2.6.29, or maybe not.

> Is there any way to limit disk cache size?

There was a patch posted a few weeks ago I think, to limit page cache usage.

The problem you have isn't really that it uses all memory for disk
cache - that's a good thing - but that unreclaimable pages are
sprinkled randomly around, and reclaimable contiguous regions hard to
create, so memory is too fragmented for high-order allocations, which
prevents new applications from starting.

If you just limit disk cache usage, there's still a fair chance that
the (limited) disk cache pages will be sprinkled all over memory,
preventing apps from starting.  It is worth a try, though.

Unfortunately finding and keeping large reclaimable contiguous regions
is not solved yet.

-- Jamie
_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to