2021-01-11 11:50:07

by Neeraj Upadhyay

[permalink] [raw]
Subject: [PATCH] rcu: Correct cpu offline trace in rcutree_dying_cpu

Correctly trace whether the outgoing cpu blocks current gp in
rcutree_dying_cpu().

Signed-off-by: Neeraj Upadhyay <[email protected]>
---
kernel/rcu/tree.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 097990a..1f4bff4 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -2364,7 +2364,7 @@ int rcutree_dying_cpu(unsigned int cpu)

blkd = !!(rnp->qsmask & rdp->grpmask);
trace_rcu_grace_period(rcu_state.name, READ_ONCE(rnp->gp_seq),
- blkd ? TPS("cpuofl") : TPS("cpuofl-bgp"));
+ blkd ? TPS("cpuofl-bgp") : TPS("cpuofl"));
return 0;
}

--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project


2021-01-12 17:34:38

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [PATCH] rcu: Correct cpu offline trace in rcutree_dying_cpu

On Mon, Jan 11, 2021 at 05:15:58PM +0530, Neeraj Upadhyay wrote:
> Correctly trace whether the outgoing cpu blocks current gp in
> rcutree_dying_cpu().
>
> Signed-off-by: Neeraj Upadhyay <[email protected]>

Good catch, queued, thank you! Please see below for my usual
wordsmithing, and please lat me know if I messed something up.

Thanx, Paul

------------------------------------------------------------------------

commit ab6e7609e7590e1bb220ef6b0822a823dde46f6c
Author: Neeraj Upadhyay <[email protected]>
Date: Mon Jan 11 17:15:58 2021 +0530

rcu: Fix CPU-offline trace in rcutree_dying_cpu

The condition in the trace_rcu_grace_period() in rcutree_dying_cpu() is
backwards, so that it uses the string "cpuofl" when the offline CPU is
blocking the current grace period and "cpuofl-bgp" otherwise. Given that
the "-bgp" stands for "blocking grace period", this is at best misleading.
This commit therefore switches these strings in order to correctly trace
whether the outgoing cpu blocks the current grace period.

Signed-off-by: Neeraj Upadhyay <[email protected]>
Signed-off-by: Paul E. McKenney <[email protected]>

diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index cc6b6fc..63c6dba 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -2387,7 +2387,7 @@ int rcutree_dying_cpu(unsigned int cpu)

blkd = !!(rnp->qsmask & rdp->grpmask);
trace_rcu_grace_period(rcu_state.name, READ_ONCE(rnp->gp_seq),
- blkd ? TPS("cpuofl") : TPS("cpuofl-bgp"));
+ blkd ? TPS("cpuofl-bgp") : TPS("cpuofl"));
return 0;
}

2021-01-13 05:13:25

by Neeraj Upadhyay

[permalink] [raw]
Subject: Re: [PATCH] rcu: Correct cpu offline trace in rcutree_dying_cpu



On 1/12/2021 11:01 PM, Paul E. McKenney wrote:
> On Mon, Jan 11, 2021 at 05:15:58PM +0530, Neeraj Upadhyay wrote:
>> Correctly trace whether the outgoing cpu blocks current gp in
>> rcutree_dying_cpu().
>>
>> Signed-off-by: Neeraj Upadhyay <[email protected]>
>
> Good catch, queued, thank you! Please see below for my usual
> wordsmithing, and please lat me know if I messed something up.
>
> Thanx, Paul
>

Thanks Paul, looks good!


Thanks
Neeraj

> ------------------------------------------------------------------------
>
> commit ab6e7609e7590e1bb220ef6b0822a823dde46f6c
> Author: Neeraj Upadhyay <[email protected]>
> Date: Mon Jan 11 17:15:58 2021 +0530
>
> rcu: Fix CPU-offline trace in rcutree_dying_cpu
>
> The condition in the trace_rcu_grace_period() in rcutree_dying_cpu() is
> backwards, so that it uses the string "cpuofl" when the offline CPU is
> blocking the current grace period and "cpuofl-bgp" otherwise. Given that
> the "-bgp" stands for "blocking grace period", this is at best misleading.
> This commit therefore switches these strings in order to correctly trace
> whether the outgoing cpu blocks the current grace period.
>
> Signed-off-by: Neeraj Upadhyay <[email protected]>
> Signed-off-by: Paul E. McKenney <[email protected]>
>
> diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
> index cc6b6fc..63c6dba 100644
> --- a/kernel/rcu/tree.c
> +++ b/kernel/rcu/tree.c
> @@ -2387,7 +2387,7 @@ int rcutree_dying_cpu(unsigned int cpu)
>
> blkd = !!(rnp->qsmask & rdp->grpmask);
> trace_rcu_grace_period(rcu_state.name, READ_ONCE(rnp->gp_seq),
> - blkd ? TPS("cpuofl") : TPS("cpuofl-bgp"));
> + blkd ? TPS("cpuofl-bgp") : TPS("cpuofl"));
> return 0;
> }
>
>

--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a
member of the Code Aurora Forum, hosted by The Linux Foundation