diff options
author | Hugh Dickins <hugh.dickins@tiscali.co.uk> | 2009-11-09 10:58:23 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-11-09 12:55:44 -0500 |
commit | d178f27fc5150d680d9df865ea9dfe3269cf00a6 (patch) | |
tree | c2e87a755ce78765a8dd7752d7608c57ace29bec /mm/ksm.c | |
parent | b7b69c7e97bc0a6694e7052a200609fd48baafc2 (diff) |
ksm: cond_resched in unstable tree
KSM needs a cond_resched() for CONFIG_PREEMPT_NONE, in its unbounded
search of the unstable tree. The stable tree cases already have one,
and originally there was one down inside get_user_pages();
but I missed it when I converted to follow_page() instead.
Signed-off-by: Hugh Dickins <hugh.dickins@tiscali.co.uk>
Acked-by: Izik Eidus <ieidus@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/ksm.c')
-rw-r--r-- | mm/ksm.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -1012,6 +1012,7 @@ static struct rmap_item *unstable_tree_search_insert(struct page *page, | |||
1012 | struct rmap_item *tree_rmap_item; | 1012 | struct rmap_item *tree_rmap_item; |
1013 | int ret; | 1013 | int ret; |
1014 | 1014 | ||
1015 | cond_resched(); | ||
1015 | tree_rmap_item = rb_entry(*new, struct rmap_item, node); | 1016 | tree_rmap_item = rb_entry(*new, struct rmap_item, node); |
1016 | page2[0] = get_mergeable_page(tree_rmap_item); | 1017 | page2[0] = get_mergeable_page(tree_rmap_item); |
1017 | if (!page2[0]) | 1018 | if (!page2[0]) |