Subject: Re: [RESEND PATCH V1 net-next] net: ena: fix broken interface between ENA driver and FW

From: Leon Romanovsky <[email-masked]>
Date: Thu, 5 Mar 2020 21:16:33 +0200

On Thu, Mar 05, 2020 at 02:28:33PM +0000, Kiyanovski, Arthur wrote:
> > -----Original Message-----
> > From: Leon Romanovsky <[email-masked]>
> > Sent: Sunday, March 1, 2020 3:50 PM
> > To: David Miller <[email-masked]>
> > Cc: Kiyanovski, Arthur <[email-masked]>; [email-masked];
> > Woodhouse, David <[email-masked]>; Machulsky, Zorik
> > <[email-masked]>; Matushevsky, Alexander <[email-masked]>;
> > Bshara, Saeed <[email-masked]>; Wilson, Matt <[email-masked]>;
> > Liguori, Anthony <[email-masked]>; Bshara, Nafea
> > <[email-masked]>; Tzalik, Guy <[email-masked]>; Belgazal, Netanel
> > <[email-masked]>; Saidi, Ali <[email-masked]>; Herrenschmidt,
> > Benjamin <[email-masked]>; Dagan, Noam <[email-masked]>;
> > Agroskin, Shay <[email-masked]>; Jubran, Samih
> > <[email-masked]>
> > Subject: Re: [RESEND PATCH V1 net-next] net: ena: fix broken interface between
> > ENA driver and FW
> >
> > On Wed, Feb 26, 2020 at 08:48:09PM -0800, David Miller wrote:
> > > From: <[email-masked]>
> > > Date: Wed, 26 Feb 2020 12:03:35 +0200
> > >
> > > > From: Arthur Kiyanovski <[email-masked]>
> > > >
> > > > In this commit we revert the part of commit 1a63443afd70
> > > > ("net/amazon: Ensure that driver version is aligned to the linux
> > > > kernel"), which breaks the interface between the ENA driver and FW.
> > > >
> > > > We also replace the use of DRIVER_VERSION with DRIVER_GENERATION
> > > > when we bring back the deleted constants that are used in interface
> > > > with ENA device FW.
> > > >
> > > > This commit does not change the driver version reported to the user
> > > > via ethtool, which remains the kernel version.
> > > >
> > > > Fixes: 1a63443afd70 ("net/amazon: Ensure that driver version is
> > > > aligned to the linux kernel")
> > > > Signed-off-by: Arthur Kiyanovski <[email-masked]>
> > >
> > > Applied.
> >
> > Dave,
> >
> > I see that I'm late here and my email sounds like old man grumbling, but I asked
> > from those guys to update their commit with request to put the following line:
> > "/* DO NOT CHANGE DRV_MODULE_GEN_* values in in-tree code */"
> > https://lore.kernel.org/netdev/20200224162649.GA4526@unreal/
> >
> > I also asked how those versions are transferred to FW and used there, but was
> > ignored.
> > https://lore.kernel.org/netdev/20200224094116.GD422704@unreal/
> >
> > BTW, It is also unclear why I wasn't CCed in this patch.
> >
> > Thanks
>
> Leon,
>  Sorry for not responding earlier to your inquiries, they are exactly touching the
>  points that we would like to discuss.
>  Up until now, we in AWS, have been monitoring the drivers in the datacenter using the
>  driver version, and actively suggesting driver updates to our customers
>  whenever a critical bug was fixed, or a new important feature was added.
>  Removing the driver version and not allowing to maintain our own internal
>  version negatively impacts our effort to give our customers the best possible cloud
>  experience. We therefore prefer to maintain using our internal driver version.
>
>  Are there any other recommended ways to achieve our goal without a driver
>  version?

Of course, drivers are supposed to behave like any other user visible API.
They need to ensure backward compatibility, so new code will work with
old HW/FW. This is normally done by capability masks, see how it is done
in Mellanox drivers and I think in Intel too.

So your update policy based on driver version string is nonsense and
broken by design.

Original thread with Linus is here [1].

[1] https://lore.kernel.org/ksummit-discuss/CA+55aFx9A=5cc0QZ7CySC4F2K7eYaEfzkdYEc9JaNgCcV25=[email-masked]/

Thanks

>  Thanks!