kernel - Fix swap-full process killer
* Previously once swap became full the kernel could enter a dead zone where
no new pagouts are possible but there is just barely sufficient memory for
the system to run. That is, the minimum free page target is met but the
pageout target cannot be met.
This caused a 2+ second stall in the VM system followed by a 1 second
run (where the pageout demon stops trying for 1 second before trying again),
making the system unusable anyway.
* Replace that code. Now we start killing processes once swap becomes full
and we are unable to reach our paging target. That is, we require that the
pageout demon MUST be able to reach its paging target for free pages for
the system to run well, even if there are barely sufficient pages to run
the current steady state.
* Total anonymous (pageable) memory is still effectively RAM + SWAP. It's
just slightly less than it was before because it requires the free page
target to be met and not just the free page minimum.
Reported-by: marino