Re: [PATCH] free swap space when (re)activating page

From: Christoph Lameter
Date: Tue Feb 20 2007 - 14:42:32 EST


On Tue, 20 Feb 2007, Rik van Riel wrote:

> > Maybe the hunk does apply in a different location than I thought.
>
> I suspect that's the case ...

No that is not the case:

@@ -875,6 +878,11 @@ force_reclaim_mapped:
pagevec_strip(&pvec);
spin_lock_irq(&zone->lru_lock);
}
+ if (vm_swap_full()) {
+ spin_unlock_irq(&zone->lru_lock);
+ pagevec_swap_free(&pvec);
+ spin_lock_irq(&zone->lru_lock);
+ }

pgmoved = 0;
while (!list_empty(&l_active)) {

So you do the swap free on the pages leftover from moving to the inactive
list and not to the pages that will be moved to the active list. It does
not do what you wanted to be done.

You need to

1. Do the pagevec_swap_free in the loop over the active pages

2. At end of the loop over the active pages do something like the above.

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