Re: [patch] 2.2.15-pre3 kswapd fix

From: Andrea Arcangeli (andrea@suse.de)
Date: Thu Jan 20 2000 - 21:18:35 EST

  • Next message: Andrea Arcangeli: "Re: [PATCH] 2.2.1{3,4,5} VM fix"

    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@vger.rutgers.edu
    Please read the FAQ at http://www.tux.org/lkml/



    This archive was generated by hypermail 2b29 : Fri Jan 21 2000 - 14:32:01 EST