lkml.org 
[lkml]   [2013]   [Sep]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 16/63] sched: numa: Initialise numa_next_scan properly
    Date
    Scan delay logic and resets are currently initialised to start scanning
    immediately instead of delaying properly. Initialise them properly at
    fork time and catch when a new mm has been allocated.

    Signed-off-by: Mel Gorman <mgorman@suse.de>
    ---
    kernel/sched/core.c | 4 ++--
    kernel/sched/fair.c | 7 +++++++
    2 files changed, 9 insertions(+), 2 deletions(-)

    diff --git a/kernel/sched/core.c b/kernel/sched/core.c
    index f307c2c..9d7a33a 100644
    --- a/kernel/sched/core.c
    +++ b/kernel/sched/core.c
    @@ -1634,8 +1634,8 @@ static void __sched_fork(struct task_struct *p)

    #ifdef CONFIG_NUMA_BALANCING
    if (p->mm && atomic_read(&p->mm->mm_users) == 1) {
    - p->mm->numa_next_scan = jiffies;
    - p->mm->numa_next_reset = jiffies;
    + p->mm->numa_next_scan = jiffies + msecs_to_jiffies(sysctl_numa_balancing_scan_delay);
    + p->mm->numa_next_reset = jiffies + msecs_to_jiffies(sysctl_numa_balancing_scan_period_reset);
    p->mm->numa_scan_seq = 0;
    }

    diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
    index 8510633..6edac70 100644
    --- a/kernel/sched/fair.c
    +++ b/kernel/sched/fair.c
    @@ -900,6 +900,13 @@ void task_numa_work(struct callback_head *work)
    if (p->flags & PF_EXITING)
    return;

    + if (!mm->numa_next_reset || !mm->numa_next_scan) {
    + mm->numa_next_scan = now +
    + msecs_to_jiffies(sysctl_numa_balancing_scan_delay);
    + mm->numa_next_reset = now +
    + msecs_to_jiffies(sysctl_numa_balancing_scan_period_reset);
    + }
    +
    /*
    * Reset the scan period if enough time has gone by. Objective is that
    * scanning will be reduced if pages are properly placed. As tasks
    --
    1.8.1.4


    \
     
     \ /
      Last update: 2013-09-27 17:21    [W:4.165 / U:0.124 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site