Skip to content

RFC CART Implementation

[email protected] linux-mm 1 version In review

Get series with b4
b4 am 20050827215756.726585000@twins

Versions newest first

  1. v1 RFC Latest6 patches 5 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/6CART Implementationinclude/linux/swap.h init/main.c mm/Makefile +1 more+295 -10 replies
2/6CART Implementationfs/proc/proc_misc.c mm/nonresident.c+86 -03 replies
3/6CART Implementationinclude/linux/mm_inline.h include/linux/mmzone.h include/linux/page-flags.h +4 more+297 -60 replies
4/6CART Implementationfs/proc/proc_misc.c mm/cart.c+101 -00 replies
5/6CART Implementationmm/filemap.c mm/shmem.c mm/swap.c +2 more+6 -630 replies
6/6CART Implementationfs/exec.c include/linux/swap.h mm/memory.c +3 more+33 -2400 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [RFC][PATCH 0/6] CART Implementation

Hi All,

(now split as per request)

After another day of hard work I feel I have this CART implementation complete.

It survives a pounding and the stats seem pretty stable.

The things that need more work:
1) the hash function seems pretty lousy
2) __cart_remember() called from shrink_list() needs zone->lru_lock

The whole non-resident code is based on the idea that the hash function gives an even spread so that:

B1_j B1
------ ~ ----
B2_j B2

However after a pounding the variance in (B1_j - B2_j) as given by the std. deviation: sqrt(<x^2> - <x>^2) is around 10. And this for a bucket with 57 slots.

The other issue is that __cart_remember() needs the zone->lru_lock. This function is called from shrink_list() where the lock is explicitly avoided, so this seems like an issue. Alternatives would be atomic_t for zone->nr_q or a per cpu counter delta. Suggestions?

Also I made quite some changes in swap.c and vmscan.c without being an expert on the code. Did I foul up too bad?

Then ofcourse I need to benchmark, suggestions?

Some of this code is shamelessly copied from Rik van Riel, other parts are inspired by code from Rahul Iyer.

Any comments appreciated.

Kind regards,

Peter Zijlstra
--
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>