Messages in this thread | | | Date | Wed, 16 Nov 2016 08:59:30 -0500 | From | Steven Rostedt <> | Subject | Re: [PATCH] rcu: Avoid unnecessary contention of rcu node lock |
| |
On Wed, 16 Nov 2016 13:49:31 +0900 Byungchul Park <byungchul.park@lge.com> wrote:
> On Wed, Nov 09, 2016 at 05:57:13PM +0900, Byungchul Park wrote: > > It's unnecessary to try to print stacks of blocked tasks in the case > > that ndetected == 0. Furthermore, calling rcu_print_detail_task_stall() > > causes to acquire rnp locks as many times as the number of leaf nodes > > plus one for root node. It's unnecessary at all in the case. > > Hello, > > I have two questions. Could you answer them? > > 1. What do you think about this patch? > 2. Is there a tree where patches about rcu are pulled into, before > being pulled into mainline tree? > For example, tip tree in case of scheduler patches.
I believe Paul sends to the tip tree too.
> > It would be appriciated if you answer them. > > Thank you in advance, > Byungchul > > > > > Signed-off-by: Byungchul Park <byungchul.park@lge.com> > > --- > > kernel/rcu/tree.c | 6 +++--- > > 1 file changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > > index 287f468..ab2f743 100644 > > --- a/kernel/rcu/tree.c > > +++ b/kernel/rcu/tree.c > > @@ -1374,6 +1374,9 @@ static void print_other_cpu_stall(struct rcu_state *rsp, unsigned long gpnum) > > (long)rsp->gpnum, (long)rsp->completed, totqlen); > > if (ndetected) { > > rcu_dump_cpu_stacks(rsp); > > + > > + /* Complain about tasks blocking the grace period. */ > > + rcu_print_detail_task_stall(rsp); > > } else { > > if (READ_ONCE(rsp->gpnum) != gpnum || > > READ_ONCE(rsp->completed) == gpnum) { > > @@ -1390,9 +1393,6 @@ static void print_other_cpu_stall(struct rcu_state *rsp, unsigned long gpnum) > > }
What about showing it in else statement of the above if as well?
sched_show_task(current); rcu_print_detail_task_stall(rsp);
-- Steve
> > } > > > > - /* Complain about tasks blocking the grace period. */ > > - rcu_print_detail_task_stall(rsp); > > - > > rcu_check_gp_kthread_starvation(rsp); > > > > panic_on_rcu_stall(); > > -- > > 1.9.1
| |