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

From: Zhuo, Qiuxu
Date: Thu May 11 2023 - 23:20:33 EST


> From: Paul E. McKenney <paulmck@xxxxxxxxxx>
> ...
> > > 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.

Just had a good experiment with the "git blame -M" option:
- Used this option to prove a move-only commit quickly (no line tagged with that commit) (the fastest method to me).
- Then just only needed to quickly check the positions of the moved code chunk by myself (easy).

Thank you, Paul for sharing this. It's very useful to me.

> 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

Yup, this looks a bit painful for me too (need experiments to confirm hypotheses ...).

> 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