diff mbox

[RFC,tip/core/rcu,13/41] rcu: Make rcutorture flag online/offline failures

Message ID 1328125319-5205-13-git-send-email-paulmck@linux.vnet.ibm.com
State Superseded
Headers show

Commit Message

Paul E. McKenney Feb. 1, 2012, 7:41 p.m. UTC
From: "Paul E. McKenney" <paul.mckenney@linaro.org>

Make rcutorture check for CPU-hotplug failures and complain if there
were any.

Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---
 kernel/rcutorture.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

Comments

Josh Triplett Feb. 2, 2012, 1:46 a.m. UTC | #1
On Wed, Feb 01, 2012 at 11:41:31AM -0800, Paul E. McKenney wrote:
> From: "Paul E. McKenney" <paul.mckenney@linaro.org>
> 
> Make rcutorture check for CPU-hotplug failures and complain if there
> were any.
> 
> Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> ---
>  kernel/rcutorture.c |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
> 
> diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c
> index 88f17b8..a94eaef 100644
> --- a/kernel/rcutorture.c
> +++ b/kernel/rcutorture.c
> @@ -1602,6 +1602,10 @@ rcu_torture_cleanup(void)
>  		cur_ops->cleanup();
>  	if (atomic_read(&n_rcu_torture_error))
>  		rcu_torture_print_module_parms(cur_ops, "End of test: FAILURE");
> +	else if (n_online_successes != n_online_attempts ||
> +		 n_offline_successes != n_offline_attempts)
> +		rcu_torture_print_module_parms(cur_ops,
> +					       "End of test: RCU_HOTPLUG");
>  	else
>  		rcu_torture_print_module_parms(cur_ops, "End of test: SUCCESS");

OK, I must admit that when I saw the addition of RCU_HOTPLUG to the
existing cases of FAILURE and SUCCESS, my mind went to
http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx .

More seriously, though, shouldn't this just say FAILURE, perhaps with
further explanation attached?

- Josh Triplett
Paul E. McKenney Feb. 2, 2012, 5:08 p.m. UTC | #2
On Wed, Feb 01, 2012 at 05:46:56PM -0800, Josh Triplett wrote:
> On Wed, Feb 01, 2012 at 11:41:31AM -0800, Paul E. McKenney wrote:
> > From: "Paul E. McKenney" <paul.mckenney@linaro.org>
> > 
> > Make rcutorture check for CPU-hotplug failures and complain if there
> > were any.
> > 
> > Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
> > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> > ---
> >  kernel/rcutorture.c |    4 ++++
> >  1 files changed, 4 insertions(+), 0 deletions(-)
> > 
> > diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c
> > index 88f17b8..a94eaef 100644
> > --- a/kernel/rcutorture.c
> > +++ b/kernel/rcutorture.c
> > @@ -1602,6 +1602,10 @@ rcu_torture_cleanup(void)
> >  		cur_ops->cleanup();
> >  	if (atomic_read(&n_rcu_torture_error))
> >  		rcu_torture_print_module_parms(cur_ops, "End of test: FAILURE");
> > +	else if (n_online_successes != n_online_attempts ||
> > +		 n_offline_successes != n_offline_attempts)
> > +		rcu_torture_print_module_parms(cur_ops,
> > +					       "End of test: RCU_HOTPLUG");
> >  	else
> >  		rcu_torture_print_module_parms(cur_ops, "End of test: SUCCESS");
> 
> OK, I must admit that when I saw the addition of RCU_HOTPLUG to the
> existing cases of FAILURE and SUCCESS, my mind went to
> http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx .

;-) ;-) ;-)

> More seriously, though, shouldn't this just say FAILURE, perhaps with
> further explanation attached?

I see a big difference between an occasional instance of a CPU refusing
to go offline and RCU grace periods being too short.  The former can
be annoying, but if you retry, it will likely succeed the second time.
The latter is fatal.

							Thanx, Paul
diff mbox

Patch

diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c
index 88f17b8..a94eaef 100644
--- a/kernel/rcutorture.c
+++ b/kernel/rcutorture.c
@@ -1602,6 +1602,10 @@  rcu_torture_cleanup(void)
 		cur_ops->cleanup();
 	if (atomic_read(&n_rcu_torture_error))
 		rcu_torture_print_module_parms(cur_ops, "End of test: FAILURE");
+	else if (n_online_successes != n_online_attempts ||
+		 n_offline_successes != n_offline_attempts)
+		rcu_torture_print_module_parms(cur_ops,
+					       "End of test: RCU_HOTPLUG");
 	else
 		rcu_torture_print_module_parms(cur_ops, "End of test: SUCCESS");
 }