aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched/core.c1
-rw-r--r--kernel/sched/fair.c18
-rw-r--r--kernel/sysctl.c7
3 files changed, 1 insertions, 25 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 8cfd51f62241..89c5ae836f66 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1721,7 +1721,6 @@ static void __sched_fork(unsigned long clone_flags, struct task_struct *p)
1721#ifdef CONFIG_NUMA_BALANCING 1721#ifdef CONFIG_NUMA_BALANCING
1722 if (p->mm && atomic_read(&p->mm->mm_users) == 1) { 1722 if (p->mm && atomic_read(&p->mm->mm_users) == 1) {
1723 p->mm->numa_next_scan = jiffies + msecs_to_jiffies(sysctl_numa_balancing_scan_delay); 1723 p->mm->numa_next_scan = jiffies + msecs_to_jiffies(sysctl_numa_balancing_scan_delay);
1724 p->mm->numa_next_reset = jiffies + msecs_to_jiffies(sysctl_numa_balancing_scan_period_reset);
1725 p->mm->numa_scan_seq = 0; 1724 p->mm->numa_scan_seq = 0;
1726 } 1725 }
1727 1726
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 66237ff8b01e..da6fa22be000 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -826,7 +826,6 @@ update_stats_curr_start(struct cfs_rq *cfs_rq, struct sched_entity *se)
826 */ 826 */
827unsigned int sysctl_numa_balancing_scan_period_min = 1000; 827unsigned int sysctl_numa_balancing_scan_period_min = 1000;
828unsigned int sysctl_numa_balancing_scan_period_max = 60000; 828unsigned int sysctl_numa_balancing_scan_period_max = 60000;
829unsigned int sysctl_numa_balancing_scan_period_reset = 60000;
830 829
831/* Portion of address space to scan in MB */ 830/* Portion of address space to scan in MB */
832unsigned int sysctl_numa_balancing_scan_size = 256; 831unsigned int sysctl_numa_balancing_scan_size = 256;
@@ -1685,24 +1684,9 @@ void task_numa_work(struct callback_head *work)
1685 if (p->flags & PF_EXITING) 1684 if (p->flags & PF_EXITING)
1686 return; 1685 return;
1687 1686
1688 if (!mm->numa_next_reset || !mm->numa_next_scan) { 1687 if (!mm->numa_next_scan) {
1689 mm->numa_next_scan = now + 1688 mm->numa_next_scan = now +
1690 msecs_to_jiffies(sysctl_numa_balancing_scan_delay); 1689 msecs_to_jiffies(sysctl_numa_balancing_scan_delay);
1691 mm->numa_next_reset = now +
1692 msecs_to_jiffies(sysctl_numa_balancing_scan_period_reset);
1693 }
1694
1695 /*
1696 * Reset the scan period if enough time has gone by. Objective is that
1697 * scanning will be reduced if pages are properly placed. As tasks
1698 * can enter different phases this needs to be re-examined. Lacking
1699 * proper tracking of reference behaviour, this blunt hammer is used.
1700 */
1701 migrate = mm->numa_next_reset;
1702 if (time_after(now, migrate)) {
1703 p->numa_scan_period = task_scan_min(p);
1704 next_scan = now + msecs_to_jiffies(sysctl_numa_balancing_scan_period_reset);
1705 xchg(&mm->numa_next_reset, next_scan);
1706 } 1690 }
1707 1691
1708 /* 1692 /*
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 42f616a74f40..e509b90a8002 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -371,13 +371,6 @@ static struct ctl_table kern_table[] = {
371 .proc_handler = proc_dointvec, 371 .proc_handler = proc_dointvec,
372 }, 372 },
373 { 373 {
374 .procname = "numa_balancing_scan_period_reset",
375 .data = &sysctl_numa_balancing_scan_period_reset,
376 .maxlen = sizeof(unsigned int),
377 .mode = 0644,
378 .proc_handler = proc_dointvec,
379 },
380 {
381 .procname = "numa_balancing_scan_period_max_ms", 374 .procname = "numa_balancing_scan_period_max_ms",
382 .data = &sysctl_numa_balancing_scan_period_max, 375 .data = &sysctl_numa_balancing_scan_period_max,
383 .maxlen = sizeof(unsigned int), 376 .maxlen = sizeof(unsigned int),