Re: [PATCH rcu 3/6] rcu/rcuscale: Move rcu_scale_*() after kfree_scale_cleanup()

From: Paul E. McKenney
Date: Thu May 11 2023 - 09:57:01 EST


On Thu, May 11, 2023 at 07:01:59AM +0000, Zhuo, Qiuxu wrote:
> > From: Joel Fernandes <joel@xxxxxxxxxxxxxxxxx>
> > Sent: Thursday, May 11, 2023 1:23 PM
> > To: Paul E. McKenney <paulmck@xxxxxxxxxx>
> > Cc: rcu@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; kernel-
> > team@xxxxxxxx; rostedt@xxxxxxxxxxx; Zhuo, Qiuxu
> > <qiuxu.zhuo@xxxxxxxxx>
> > Subject: Re: [PATCH rcu 3/6] rcu/rcuscale: Move rcu_scale_*() after
> > kfree_scale_cleanup()
> >
> > On Wed, May 10, 2023 at 10:12 AM Paul E. McKenney <paulmck@xxxxxxxxxx>
> > wrote:
> > >
> > > From: Qiuxu Zhuo <qiuxu.zhuo@xxxxxxxxx>
> > >
> > > This code-movement-only commit moves the rcu_scale_cleanup() and
> > > rcu_scale_shutdown() functions to follow kfree_scale_cleanup().
> > > This is code movement is in preparation for a bug-fix patch that
> > > invokes
> > > kfree_scale_cleanup() from rcu_scale_cleanup().
> > >
> > > Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@xxxxxxxxx>
> > > Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx>
> > > ---
> > > kernel/rcu/rcuscale.c | 194
> > > +++++++++++++++++++++---------------------
> > > 1 file changed, 97 insertions(+), 97 deletions(-)
> >
> > I wish diff was better at showing what really changed. The meld tool can help
> > but its gui...
> >
> > Should I run meld later (I'm out at a conference so no access to meld-capable
> > machines) or are we sufficiently confident that the lines were moved as-is ? :)
> >
>
> Thank you, Joel for this concern. Good to know the meld diff GUI tool.
> I just run the command below and confirmed that the lines were moved
> as-is: rcu_scale_{cleanup,shutdown}() follows kfree_scale_cleanup().
> You may double check it ;-).
>
> meld --diff ./rcuscale.c.before ./rcuscale.c.after

Nice, thank you both!

Another option is to check out the commit corresponding to this patch,
then do "git blame -M kernel/rcu/rcuscale.c". Given a move-only commit,
there should be no line tagged with this commit's SHA-1.

They say that another option is to use "git diff --color-moved", which
colors the changes. That it does, but I am hard-pressed to work out
exactly what distinguishes a moved hunk from an added or removed hunk.
Fall colors vs. winter colors? Exterior vs. interior? Any particular
decade in the endless rush of changes to fashion? Perhaps someone with
normal color vision (to say nothing of better fashion sense) could try it.

On the other hand: "default: Is a synonym for zebra. This may change to
a more sensible mode in the future." So maybe it is not just me. ;-)

You can also apparently choose colors using "color.diff.newMoved" and
"color.diff.oldMoved" when using "--color-moved=plain".

But "git diff --color-moved=dimmed-zebra" might be more to the point for
someone like me. I would need to experiment with it more in order to
confirm my hypotheses about what it is doing. To say nothing of building
trust in it. Plus I have to open a color terminal to use it effectively.
So maybe "git blame -M" continues to be the tool for me?

Thanx, Paul