Subject: Re: [PATCH net-next v2 0/2] net: create device lookup API with reference tracking

From: Jakub Kicinski <[email-masked]>
Date: Thu, 15 Jun 2023 13:17:47 -0700

On Thu, 15 Jun 2023 15:41:07 -0400 Konstantin Ryabitsev wrote:
> On Thu, Jun 15, 2023 at 10:00:21AM -0700, Jakub Kicinski wrote:
> > Any recent changes to the pw-bot in commit matching?
> > We don't do any editing when applying, AFAIK, and it's 3rd or 4th case
> > within a week we get a no-match.  
> 
> Did you, by chance, set your diff.algorithm to "histogram"? I noticed that the
> diffs in your submission are very different from what I get when I run "git
> show". E.g. notice this block in your email:
> 
>     --- a/net/core/dev.c
>     +++ b/net/core/dev.c
>     @@ -758,18 +758,7 @@  struct net_device *dev_get_by_name_rcu(struct net *net, const char *name)
>      }
>      EXPORT_SYMBOL(dev_get_by_name_rcu);
>      
>     -/**
>     - *	dev_get_by_name		- find a device by its name
>     - *	@net: the applicable net namespace
>     - *	@name: name to find
>     - *
>     - *	Find an interface by name. This can be called from any
>     - *	context and does its own locking. The returned handle has
>     - *	the usage count incremented and the caller must use dev_put() to
>     - *	release it when it is no longer needed. %NULL is returned if no
>     - *	matching device is found.
>     - */
>     -
>     +/* Deprecated for new users, call netdev_get_by_name() instead */
>      struct net_device *dev_get_by_name(struct net *net, const char *name)
>      {
>         struct net_device *dev;
> 
> When I run "git show 70f7457ad6d655e65f1b93cbba2a519e4b11c946", I get a very
> different looking diff:
> 
>     --- a/net/core/dev.c
>     +++ b/net/core/dev.c
>     @@ -758,29 +758,43 @@ struct net_device *dev_get_by_name_rcu(struct net *net, const char *name)
>      }
>      EXPORT_SYMBOL(dev_get_by_name_rcu);
> 
>     +/* Deprecated for new users, call netdev_get_by_name() instead */
>     +struct net_device *dev_get_by_name(struct net *net, const char *name)
>     +{
>     + struct net_device *dev;
>     +
>     + rcu_read_lock();
>     + dev = dev_get_by_name_rcu(net, name);
>     + dev_hold(dev);
>     + rcu_read_unlock();
>     ...
> 
> Unless I pass --histogram, in which case it starts to match yours. So, I'm
> wondering if you have diff.algorithm set to "histogram" and this generates
> patches that we can no longer match against commits, because we are generating
> the diffs using the default algorithm.

Oh, that could well be it, I did! Linus asked people to do that
recently, I think in the -rc4 email. One of the RC emails, anyway.
IDK how many people listened to Linus. Technically it only matters
for maintainers who may send PRs to him, otherwise he said his diffstat
will be different than the one in the PR.

But it's not just me:
https://lore.kernel.org/all/[email-masked]/
https://lore.kernel.org/all/[email-masked]/
(there's a third one but it's is also Matthieu so CBA to get the lore
link, we're just counting people.)

Could the bot try matching in histogram and non-histogram mode?