Message ID | 1339791195-26389-1-git-send-email-paulmck@linux.vnet.ibm.com |
---|---|
State | Superseded |
Headers | show |
On Fri, Jun 15, 2012 at 01:13:02PM -0700, Paul E. McKenney wrote: > From: "Paul E. McKenney" <paul.mckenney@linaro.org> > > The code that attempts to identify stalls that end just as we detect > them is broken by both flavors of initialization failure. This commit > therefore properly initializes and computes the count of the number > of reasons why the RCU grace period is stalled. > > Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org> > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> This approach definitely seems more robust against future code changes. Reviewed-by: Josh Triplett <josh@joshtriplett.org> > --- > kernel/rcutree.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/kernel/rcutree.c b/kernel/rcutree.c > index 0da7b88..0f04480 100644 > --- a/kernel/rcutree.c > +++ b/kernel/rcutree.c > @@ -732,7 +732,7 @@ static void print_other_cpu_stall(struct rcu_state *rsp) > int cpu; > long delta; > unsigned long flags; > - int ndetected; > + int ndetected = 0; > struct rcu_node *rnp = rcu_get_root(rsp); > > /* Only let one CPU complain about others per time interval. */ > @@ -773,7 +773,7 @@ static void print_other_cpu_stall(struct rcu_state *rsp) > */ > rnp = rcu_get_root(rsp); > raw_spin_lock_irqsave(&rnp->lock, flags); > - ndetected = rcu_print_task_stall(rnp); > + ndetected += rcu_print_task_stall(rnp); > raw_spin_unlock_irqrestore(&rnp->lock, flags); > > print_cpu_stall_info_end(); > -- > 1.7.8 >
diff --git a/kernel/rcutree.c b/kernel/rcutree.c index 0da7b88..0f04480 100644 --- a/kernel/rcutree.c +++ b/kernel/rcutree.c @@ -732,7 +732,7 @@ static void print_other_cpu_stall(struct rcu_state *rsp) int cpu; long delta; unsigned long flags; - int ndetected; + int ndetected = 0; struct rcu_node *rnp = rcu_get_root(rsp); /* Only let one CPU complain about others per time interval. */ @@ -773,7 +773,7 @@ static void print_other_cpu_stall(struct rcu_state *rsp) */ rnp = rcu_get_root(rsp); raw_spin_lock_irqsave(&rnp->lock, flags); - ndetected = rcu_print_task_stall(rnp); + ndetected += rcu_print_task_stall(rnp); raw_spin_unlock_irqrestore(&rnp->lock, flags); print_cpu_stall_info_end();