Linux: Improving kswapd

“‘The current VM can get itself into trouble fairly easily on
systems with a small ZONE_HIGHMEM, which is common on i686
computers with 1GB of memory,’ Rik van Riel said explaining a small
patch to cmscan.c. He continued, ‘on one side, page_alloc() will
allocate down to zone->pages_low, while on the other side,
kswapd() and balance_pgdat() will try to free memory from every
zone, until every zone has more free pages than