Load control code in BSD evolved from full process swapping.
Due to enormous memory sizes and slow disks, full process swapping is not feasible on today's systems.
The old BSD habit of freeing thread stacks would be hard to implement in Linux and would gain little memory (one or two pages per process).
Reduce the number of processes that fault pages in from swap simultaneously.
Allow the still running processes to finish their work faster, so the not currently running ones can get their jobs done faster too.
What suspending processes buys us:
It is not clear what measurements to use to detect a busy VM or near-thrashing situations:

