|
@@ -1634,6 +1634,7 @@ static void __sched_fork(struct task_struct *p)
|
|
p->numa_migrate_seq = p->mm ? p->mm->numa_scan_seq - 1 : 0;
|
|
p->numa_migrate_seq = p->mm ? p->mm->numa_scan_seq - 1 : 0;
|
|
p->numa_scan_period = sysctl_numa_balancing_scan_delay;
|
|
p->numa_scan_period = sysctl_numa_balancing_scan_delay;
|
|
p->numa_work.next = &p->numa_work;
|
|
p->numa_work.next = &p->numa_work;
|
|
|
|
+ p->numa_faults = NULL;
|
|
#endif /* CONFIG_NUMA_BALANCING */
|
|
#endif /* CONFIG_NUMA_BALANCING */
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1892,6 +1893,8 @@ static void finish_task_switch(struct rq *rq, struct task_struct *prev)
|
|
if (mm)
|
|
if (mm)
|
|
mmdrop(mm);
|
|
mmdrop(mm);
|
|
if (unlikely(prev_state == TASK_DEAD)) {
|
|
if (unlikely(prev_state == TASK_DEAD)) {
|
|
|
|
+ task_numa_free(prev);
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* Remove function-return probe instances associated with this
|
|
* Remove function-return probe instances associated with this
|
|
* task and put them back on the free list.
|
|
* task and put them back on the free list.
|