From: Mel Gorman Date: Tue, 7 Jan 2014 14:00:43 +0000 (+0000) Subject: sched: numa: skip inaccessible VMAs X-Git-Tag: v3.12.7~38 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cefeb27999f88f9348f1c55753339535ee9016aa;p=thirdparty%2Fkernel%2Fstable.git sched: numa: skip inaccessible VMAs commit 3c67f474558748b604e247d92b55dfe89654c81d upstream. Inaccessible VMA should not be trapping NUMA hint faults. Skip them. Signed-off-by: Mel Gorman Reviewed-by: Rik van Riel Cc: Alex Thorlton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman --- diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 513fc2fd51092..7765ad82736a7 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -974,6 +974,13 @@ void task_numa_work(struct callback_head *work) if (vma->vm_end - vma->vm_start < HPAGE_SIZE) continue; + /* + * Skip inaccessible VMAs to avoid any confusion between + * PROT_NONE and NUMA hinting ptes + */ + if (!(vma->vm_flags & (VM_READ | VM_EXEC | VM_WRITE))) + continue; + do { start = max(start, vma->vm_start); end = ALIGN(start + (pages << PAGE_SHIFT), HPAGE_SIZE);