From: Davidlohr Bueso <[email protected]>
The changelog for Rik's "sched/numa: Stay on the same node if CLONE_VM" patch
serves well documented in the code.
Signed-off-by: Davidlohr Bueso <[email protected]>
---
kernel/sched/core.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 7f45fd5..a2d690c 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1743,10 +1743,16 @@ static void __sched_fork(unsigned long clone_flags, struct task_struct *p)
#ifdef CONFIG_NUMA_BALANCING
if (p->mm && atomic_read(&p->mm->mm_users) == 1) {
- p->mm->numa_next_scan = jiffies + msecs_to_jiffies(sysctl_numa_balancing_scan_delay);
p->mm->numa_scan_seq = 0;
+ p->mm->numa_next_scan = jiffies +
+ msecs_to_jiffies(sysctl_numa_balancing_scan_delay);
}
+ /*
+ * A newly spawned thread should stay on the same NUMA node as its
+ * parent. This prevents processes from being "torn" across multiple
+ * NUMA nodes every time they spawn a new thread.
+ */
if (clone_flags & CLONE_VM)
p->numa_preferred_nid = current->numa_preferred_nid;
else
--
1.8.1.4
On 01/15/2014 02:01 PM, Davidlohr Bueso wrote:
> From: Davidlohr Bueso <[email protected]>
>
> The changelog for Rik's "sched/numa: Stay on the same node if CLONE_VM" patch
> serves well documented in the code.
>
> Signed-off-by: Davidlohr Bueso <[email protected]>
Reviewed-by: Rik van Riel <[email protected]>
--
All rights reversed