Re: [GIT PULL] RCU changes for v5.14

From: Paul E. McKenney
Date: Sun Jul 04 2021 - 17:13:08 EST


On Sun, Jul 04, 2021 at 01:44:02PM -0700, Linus Torvalds wrote:
> On Sun, Jul 4, 2021 at 1:32 PM Paul E. McKenney <paulmck@xxxxxxxxxx> wrote:
> >
> > Once again, please accept my apologies, and thank you for the explanation.
> > I should have sent something like the following, correct?
>
> Correct. That
>
> > I have done an example merge here:
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git merge-example-rcu
>
> makes it trivial for me to just do that "git fetch" and compare what
> you did with what I did.
>
> Of course, now I've already pushed out my resolution, so it's too late
> (and I've forgotten which files were involved, so I'm too lazy to go
> back and check). But hopefully it matches anyway.

Nothing that my compiler cares about or that would make any difference
in the code output.

So I have it queued the patch shown below for later, unless someone
else's compiler complains before then.

Thanx, Paul

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

commit 30363f26e6cc347a7cf6e80206139c2e95d6f7d8
Author: Paul E. McKenney <paulmck@xxxxxxxxxx>
Date: Sun Jul 4 13:59:35 2021 -0700

rcu: Fix pr_info() formats and values in show_rcu_gp_kthreads()

This commit changes from "%lx" to "%x" and from "0x1ffffL" to "0x1ffff"
to match the change in type between the old field ->state (unsigned long)
and the new field ->__state (unsigned int).

Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx>

diff --git a/kernel/rcu/tree_stall.h b/kernel/rcu/tree_stall.h
index 3f937b20814f..6c76988cc019 100644
--- a/kernel/rcu/tree_stall.h
+++ b/kernel/rcu/tree_stall.h
@@ -795,9 +795,9 @@ void show_rcu_gp_kthreads(void)
jr = j - data_race(rcu_state.gp_req_activity);
js = j - data_race(rcu_state.gp_start);
jw = j - data_race(rcu_state.gp_wake_time);
- pr_info("%s: wait state: %s(%d) ->state: %#lx ->rt_priority %u delta ->gp_start %lu ->gp_activity %lu ->gp_req_activity %lu ->gp_wake_time %lu ->gp_wake_seq %ld ->gp_seq %ld ->gp_seq_needed %ld ->gp_max %lu ->gp_flags %#x\n",
+ pr_info("%s: wait state: %s(%d) ->state: %#x ->rt_priority %u delta ->gp_start %lu ->gp_activity %lu ->gp_req_activity %lu ->gp_wake_time %lu ->gp_wake_seq %ld ->gp_seq %ld ->gp_seq_needed %ld ->gp_max %lu ->gp_flags %#x\n",
rcu_state.name, gp_state_getname(rcu_state.gp_state),
- rcu_state.gp_state, t ? t->__state : 0x1ffffL, t ? t->rt_priority : 0xffU,
+ rcu_state.gp_state, t ? t->__state : 0x1ffff, t ? t->rt_priority : 0xffU,
js, ja, jr, jw, (long)data_race(rcu_state.gp_wake_seq),
(long)data_race(rcu_state.gp_seq),
(long)data_race(rcu_get_root()->gp_seq_needed),