Posted Apr 30, 2009 4:54 UTC (Thu) by ncm (subscriber, #165)
Parent article: KSM tries again
I'll bet you can get almost equally good results much more cheaply by tracking pages that map to common disk blocks. I.e., instead of actually scanning the pages, you track where their contents came from. You can get a little better by similarly tracking writable pages that are read() into, marking them read-only until they're touched, if ever.
This gets you a long way toward zero-copy I/O (what the BSDs call UVM), although that's said to play poorly with multiple cores.