sched: numa: skip inaccessible VMAs
Inaccessible VMA should not be trapping NUMA hint faults. Skip them. Signed-off-by: Mel Gorman <mgorman@suse.de> Reviewed-by: Rik van Riel <riel@redhat.com> Cc: Alex Thorlton <athorlton@sgi.com> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
eb4489f69f
commit
3c67f47455
|
@ -1738,6 +1738,13 @@ void task_numa_work(struct callback_head *work)
|
||||||
(vma->vm_file && (vma->vm_flags & (VM_READ|VM_WRITE)) == (VM_READ)))
|
(vma->vm_file && (vma->vm_flags & (VM_READ|VM_WRITE)) == (VM_READ)))
|
||||||
continue;
|
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 {
|
do {
|
||||||
start = max(start, vma->vm_start);
|
start = max(start, vma->vm_start);
|
||||||
end = ALIGN(start + (pages << PAGE_SHIFT), HPAGE_SIZE);
|
end = ALIGN(start + (pages << PAGE_SHIFT), HPAGE_SIZE);
|
||||||
|
|
Loading…
Reference in New Issue