Messages in this thread Patch in this message | | | Date | Fri, 21 Feb 2014 12:32:14 -0800 | From | tip-bot for Rik van Riel <> | Subject | [tip:sched/urgent] sched,numa: add cond_resched to task_numa_work |
| |
Commit-ID: 3cf1962cdbf6b3a9e3ef21116d215bbab350ea37 Gitweb: http://git.kernel.org/tip/3cf1962cdbf6b3a9e3ef21116d215bbab350ea37 Author: Rik van Riel <riel@redhat.com> AuthorDate: Tue, 18 Feb 2014 17:12:44 -0500 Committer: Thomas Gleixner <tglx@linutronix.de> CommitDate: Fri, 21 Feb 2014 21:27:10 +0100
sched,numa: add cond_resched to task_numa_work
Normally task_numa_work scans over a fairly small amount of memory, but it is possible to run into a large unpopulated part of virtual memory, with no pages mapped. In that case, task_numa_work can run for a while, and it may make sense to reschedule as required.
Cc: akpm@linux-foundation.org Cc: Andrea Arcangeli <aarcange@redhat.com> Signed-off-by: Rik van Riel <riel@redhat.com> Reported-by: Xing Gang <gang.xing@hp.com> Tested-by: Chegu Vinod <chegu_vinod@hp.com> Signed-off-by: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/1392761566-24834-2-git-send-email-riel@redhat.com Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- kernel/sched/fair.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 966cc2b..7815709 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -1757,6 +1757,8 @@ void task_numa_work(struct callback_head *work) start = end; if (pages <= 0) goto out; + + cond_resched(); } while (end != vma->vm_end); }
| |