It's a well-known (?) bug in 2.4.17-pre VM. Anon allocations are
going onto the inactive list, so the inactive list is hugely larger
than the active list. So this expression in shrink_caches:
ratio = (unsigned long) nr_pages * nr_active_pages / ((nr_inactive_pages + 1) * 2);
Evaluates to sero all the time, so we never move any of the buffercache
pages onto the inactive list from where they can be freed.
It can be fixed with
if (ratio == 0)
ratio = nr_pages;
It can be fixed by putting anon pages onto the active list in
do_anonymous_page.
It can probably be fixed with Rik's remove-use-once patch. I
haven't tested that.
It is fixed in the latest -aa patch.
The remaining minor detail is that it isn't fixed in Linux :(
-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/