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.
-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/