On Sun, 2005-09-11 at 22:25 +0200, a.p.zijlstra@chello.nl wrote: > Hi All, > > Here my latest efforts on implementing CART, an advanced page replacement > policy. > > It seems pretty stable, except for a spurious OOM. However it yet has to > run on something other than UML. > > A complete CART implementation should be present in cart-cart.patch. > The cart-cart-r.patch improves thereon by keeping a 3th adaptive parameter > which measures the amount of fresh pages (not in |T1| u |T2| u |B1| u |B2|). > When the amount of fresh pages drops below the number of longterm pages > we start to reclaim pages that have just been inserted. > > This works very well for a simple looped linear scan larger than the total > resident set. Also it doesn't seem to regress normal workloads. > Some numbers. All run in an UML with mem=64M and 128M of swapspace, sync ubd. linux-2.6.13-rc7 make -j4 real 107m15.351s user 24m4.820s sys 12m16.590s scan 60 16 real 3m39.432s user 0m4.990s sys 0m21.920s linux-2.6.13-rc7-cart make -j4 real 93m18.035s user 22m44.280s sys 9m20.220s scan 60 16 real 1m47.857s user 0m4.690s sys 0m11.690s -- Peter Zijlstra