Re: O_DIRECT question

From: Nick Piggin
Date: Thu Jan 11 2007 - 02:06:08 EST


Andrew Morton wrote:
On Thu, 11 Jan 2007 14:45:12 +0800
Aubrey <aubreylee@xxxxxxxxx> wrote:


In the interim you could do the old "echo 3 > /proc/sys/vm/drop_caches"
thing, but that's terribly crude - drop_caches is really only for debugging
and benchmarking.


Yes. This method can drop caches, but will fragment memory.


That's what page reclaim will do as well.

What you want is Mel's antifragmentation work, or lumpy reclaim.


This is
not what I want. I want cache is limited to a tunable value of the
whole memory. For example, if total memory is 128M, is there a way to
trigger reclaim when cache size > 16M?


If there was, it'd "fragment memory" as well.

You might get a little benefit from increasing /proc/sys/vm/min_free_kbytes,
but not much. Some page allocation tweaks would aid that.

But basically, to do this well, serious work is needed.

OTOH, the antifragmentation stuff can also break down eventually,
especially if higher order allocations are actually in common use.

What you _really_ want to do is avoid large mallocs after boot, or use
a CPU with an mmu. I don't think nommu linux was ever intended to be a
simple drop in replacement for a normal unix kernel.

--
SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com -
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/