diff options
author | Thomas Graf <tgraf@suug.ch> | 2015-07-17 10:52:48 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-07-21 00:10:08 -0700 |
commit | 685a015e44dcd4db50ada60a9a2806659c165d9e (patch) | |
tree | 123243eb11c6d6476b7590deb16587e912e4236b | |
parent | f61687c01917946d2274dd8736bb8f9e2691ee5b (diff) | |
download | lwn-685a015e44dcd4db50ada60a9a2806659c165d9e.tar.gz lwn-685a015e44dcd4db50ada60a9a2806659c165d9e.zip |
rhashtable: Allow other tasks to be scheduled in large lookup loops
Depending on system speed, the large lookup/insert/delete loops of the testsuite can
take a considerable amount of time to complete causing watchdog warnings to appear.
Allow other tasks to be scheduled throughout the loops.
Reported-by: Meelis Roos <mroos@linux.ee>
Signed-off-by: Thomas Graf <tgraf@suug.ch>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | lib/test_rhashtable.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/test_rhashtable.c b/lib/test_rhashtable.c index c90777eae1f8..9af7cefb195d 100644 --- a/lib/test_rhashtable.c +++ b/lib/test_rhashtable.c @@ -20,6 +20,7 @@ #include <linux/rcupdate.h> #include <linux/rhashtable.h> #include <linux/slab.h> +#include <linux/sched.h> #define MAX_ENTRIES 1000000 #define TEST_INSERT_FAIL INT_MAX @@ -87,6 +88,8 @@ static int __init test_rht_lookup(struct rhashtable *ht) return -EINVAL; } } + + cond_resched_rcu(); } return 0; @@ -160,6 +163,8 @@ static s64 __init test_rhashtable(struct rhashtable *ht) } else if (err) { return err; } + + cond_resched(); } if (insert_fails) @@ -183,6 +188,8 @@ static s64 __init test_rhashtable(struct rhashtable *ht) rhashtable_remove_fast(ht, &obj->node, test_rht_params); } + + cond_resched(); } end = ktime_get_ns(); |