Re: Break 2.4 VM in five easy steps

Andrew Morton
2001-06-06T02:24:54Z

"Jeffrey W. Baker" wrote:
>
> Because the 2.4 VM is so broken, and
> because my machines are frequently deeply swapped,

The swapoff algorithms in 2.2 and 2.4 are basically identical.
The problem *appears* worse in 2.4 because it uses lots
more swap.

> they can sometimes take over 30 minutes to shutdown.

Yes. The sys_swapoff() system call can take many minutes
of CPU time. It basically does:

for (each page in swap device) {
for (each process) {
for (each page used by this process)
stuff

It's interesting that you've found a case where this
actually has an operational impact.

Haven't looked at it closely, but I think the algorithm
could become something like:

for (each process) {
for (each page in this process) {
if (page is on target swap device)
get_it_off()
}
}

for (each page in swap device) {
if (it is busy)
complain()
}

That's 10^4 to 10^6 times faster.

-