diff options
author | Ingo Molnar <mingo@kernel.org> | 2014-01-13 13:35:28 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2014-01-13 13:35:28 +0100 |
commit | 56b4811039174bba9cbd68318d0d8b1585b9eded (patch) | |
tree | f3e8f99e85e545662d82e18bef2a7009c2948852 /kernel/sched/fair.c | |
parent | e777b63bbd589248eb151a3191ee92331a701385 (diff) | |
parent | 9722c2dac708e9468cc0dc30218ef76946ffbc9d (diff) |
Merge branch 'sched/urgent' into sched/core
Pick up the latest fixes before applying new changes.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/sched/fair.c')
-rw-r--r-- | kernel/sched/fair.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 4316af287f60..b73f4ba62b24 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -1729,6 +1729,13 @@ void task_numa_work(struct callback_head *work) (vma->vm_file && (vma->vm_flags & (VM_READ|VM_WRITE)) == (VM_READ))) 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); @@ -3907,7 +3914,7 @@ static long effective_load(struct task_group *tg, int cpu, long wl, long wg) { struct sched_entity *se = tg->se[cpu]; - if (!tg->parent || !wl) /* the trivial, non-cgroup case */ + if (!tg->parent) /* the trivial, non-cgroup case */ return wl; for_each_sched_entity(se) { |