[lkml]   [2001]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Please test: workaround to help swapoff behaviour

>This is for the people who has been experiencing the lockups while running
>Please test. (against 2.4.6-pre1)
>--- linux.orig/mm/swapfile.c Wed Jun 6 18:16:45 2001
>+++ linux/mm/swapfile.c Thu Jun 7 16:06:11 2001
>@@ -345,6 +345,8 @@
> /*
> * Find a swap page in use and read it in.
> */
>+ if (current->need_resched)
>+ schedule();
> swap_device_lock(si);
> for (i = 1; i < si->max ; i++) {
> if (si->swap_map[i] > 0 && si->swap_map[i] != SWAP_MAP_BAD)

I tested your patch against 2.4.5. It works. No more lockups. Without
patch it took 14 minutes 51 seconds to complete swapoff (this is to recover
1.5GB of
swap space). During this time the system was frozen. No keyboard, no
screen, etc. Practically locked-up.

With the patch there are no more lockups. Swapoff kept running in the
This is a winner.

But here is the caveat: swapoff keeps burning 100% of the cycles until it
This is not going to be a big deal during shutdowns. Only when you enter
swapoff from
the command line it is going to be a problem.

I looked at try_to_unuse in swapfile.c. I believe that the algorithm is
For each and every swap entry it is walking the entire process list
(for_each_task(p)). It is also grabbing a whole bunch of locks
for each swap entry. It might be worthwhile processing swap entries in
batches instead of one entry at a time.

In any case, I think having this patch is worthwhile as a quick and dirty

Bulent Abali

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 12:55    [W:0.040 / U:1.620 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site