[patch] 2.2.15-pre3 kswapd fix

Andrea Arcangeli andrea en suse.de
Vie Ene 21 13:43:16 CST 2000


On Fri, 21 Jan 2000, Rik van Riel wrote:

>About Andrea's freepages.low vs. freepages.min problem,

It's not a problem. It's just that low is unused and you are now making
min unused. You are simply increasing the min value.

>I propose we chose .low here since it's value is higher
>and we're trying to solve a reliability problem here.

So just increase freepages.min as somebody does with sysctl.

>+++ linux-2.2.15-pre3/mm/vmscan.c	Fri Jan 21 02:46:42 2000
>@@ -485,18 +485,16 @@
> 		 * the processes needing more memory will wake us
> 		 * up on a more timely basis.
> 		 */
>-		interruptible_sleep_on_timeout(&kswapd_wait, HZ);
> 		while (nr_free_pages < freepages.high)
> 		{
>-			if (do_try_to_free_pages(GFP_KSWAPD))
>-			{
>-				if (tsk->need_resched)
>-					schedule();
>-				continue;
>-			}
>-			tsk->state = TASK_INTERRUPTIBLE;
>-			schedule_timeout(10*HZ);
>+			if (!do_try_to_free_pages(GFP_KSWAPD))
>+				break;
>+			if (tsk->need_resched)
>+				schedule();
> 		}
>+		run_task_queue(&tq_disk);
>+		tsk->state = TASK_INTERRUPTIBLE;
>+		schedule_timeout(HZ);

How do you get a wakeup now? :) now it's pure too slow polling.

> 	wake_up_interruptible(&kswapd_wait);
>-	if (gfp_mask & __GFP_WAIT)
>+	if ((gfp_mask & __GFP_WAIT) && (nr_free_pages < (freepages.low - 4)))

Again treshing_mem heuristic broken...

Andrea


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



Más información sobre la lista de distribución Ayuda