aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2005-01-07 21:51:58 -0800
committerLinus Torvalds <torvalds@evo.osdl.org>2005-01-07 21:51:58 -0800
commita9f3cca1b083d1396720cf7981332c73b02d7459 (patch)
tree62ef12efffca580e4b8b5c69f11d0a7535bd03d2 /mm
parent94017c753ff3d3ffaf5e246928621787497e0fa9 (diff)
downloadhistory-a9f3cca1b083d1396720cf7981332c73b02d7459.tar.gz
[PATCH] sched: mm: fix scheduling latencies in get_user_pages()
The attached patch fixes long scheduling latencies in get_user_pages(). Has been tested as part of the -VP patchset. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/memory.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/mm/memory.c b/mm/memory.c
index 9c168c91f281fc..24079123809fac 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -920,6 +920,8 @@ int get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
do {
struct page *map;
int lookup_write = write;
+
+ cond_resched_lock(&mm->page_table_lock);
while (!(map = follow_page(mm, start, lookup_write))) {
/*
* Shortcut for anonymous pages. We don't want