the kswapd 100% cpu load problem and classzone The early 2.4 VM, when low on memory, didn't kept track of the "used" classzones. It was trying to balance all the zones indipendently if the "used" classzones were low on memory. This lead to kswapd running out of control and wasting tons of cpu, if for example the ZONE_DMA was getting all filled by unfreeable pages. This is been fixed with the classzone design, classzone keeps track of the classzones that we need to balance, and it doesn't waste cpu on mostly unused classzones even if they're unfreeable.