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