Re: [PATCH] Make rcutorture more vicious: add stutter feature

From: Ingo Molnar
Date: Wed Jun 18 2008 - 09:12:58 EST



* Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx> wrote:

> Hello!
>
> This patch takes a step towards making rcutorture more brutal by
> allowing the test to be automatically periodically paused, with the
> default being to run the test for five seconds then pause for five
> seconds and repeat. This behavior can be controlled using a new
> "stutter" module parameter, so that "stutter=0" gives the old default
> behavior of running continuously.
>
> Starting and stopping rcutorture more heavily stresses RCU's
> interaction with the scheduler, as well as exercising more paths
> through the grace-period detection code.

cool! Applied to tip/core/rcu.

> Note that the default to "shuffle_interval" has also been adjusted
> from 5 seconds to 3 seconds to provide varying overlap with the
> "stutter" interval.
>
> I am still unable to provoke the failures that Alexey has been seeing,
> even with this patch, but will be doing a few additional things to
> beef up rcutorture.

neither am i able to see any rcu-preempt+rcu-torture failures in my
testing, despite having added the patch below to tip/core/rcu as well to
make any failures more apparent.

Ingo

------------------>
commit 5af970a48f3ba0dd96a036b196c79dc923f28231
Author: Ingo Molnar <mingo@xxxxxxx>
Date: Wed Jun 18 10:09:48 2008 +0200

rcutorture: WARN_ON_ONCE(1) when detecting an error

this makes it easier for automated tests to pick up such failures.

diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c
index 0334b6a..0ca7e9b 100644
--- a/kernel/rcutorture.c
+++ b/kernel/rcutorture.c
@@ -687,6 +687,7 @@ rcu_torture_printk(char *page)
if (i > 1) {
cnt += sprintf(&page[cnt], "!!! ");
atomic_inc(&n_rcu_torture_error);
+ WARN_ON_ONCE(1);
}
cnt += sprintf(&page[cnt], "Reader Pipe: ");
for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/