David Spain wrote:
> I forgot to add the obligatory:
> 
> uclinux-2.4.32-uc0 from the 20060803 drop.
> Compiled with the gcc 2.95.3 binutils.

page_alloc2.c is better for reducing fragmentation and also being less
sensitive to it, but it doesn't interact with kswapd's wakeup logic in
quite the way it's supposed to, as far as I can tell.  It seems to
make it work more often than necessary.

page_alloc.c is better for fast allocations, and for keeping more
memory free when there is a steady stream of allocations (e.g. when
streaming data from disk), but after many allocation-free cycles of
large blocks (e.g. when running executables), the system becomes very
fragmented.

(I was bitten by this in a different way: I'm using vendor-supplied
uclinux kernels, and they are configured to use page_alloc2.c.  The
added CPU usage caused the vendor to tweak things to reduce it, and
when streaming files from disk those tweaks caused kswapd to fail to
respond quickly enough, causing out of memory failures...  But the
unpatched uclinux code used too much CPU.  We found a compromise).

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

Reply via email to