RE: [PATCH v5 2/2] platform/mellanox/mlxbf-bootctl: Add the ABI definitions

From: Liming Sun
Date: Mon May 20 2019 - 11:22:36 EST


Please see response inline.

> -----Original Message-----
> From: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Sent: Saturday, May 18, 2019 2:35 AM
> To: Liming Sun <lsun@xxxxxxxxxxxx>
> Cc: Andy Shevchenko <andy@xxxxxxxxxxxxx>; Darren Hart <dvhart@xxxxxxxxxxxxx>; Vadim Pasternak <vadimp@xxxxxxxxxxxx>; David
> Woods <dwoods@xxxxxxxxxxxx>; platform-driver-x86@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; David S. Miller
> <davem@xxxxxxxxxxxxx>; Mauro Carvalho Chehab <mchehab+samsung@xxxxxxxxxx>; Jonathan Cameron
> <Jonathan.Cameron@xxxxxxxxxx>; Nicolas Ferre <nicolas.ferre@xxxxxxxxxxxxx>; Paul E. McKenney <paulmck@xxxxxxxxxxxxx>
> Subject: Re: [PATCH v5 2/2] platform/mellanox/mlxbf-bootctl: Add the ABI definitions
>
> On Fri, May 17, 2019 at 08:36:53PM +0000, Liming Sun wrote:
> > Thanks Greg for the comments! Please see my response inline.
> >
> > Regards,
> > - Liming
> >
> > > -----Original Message-----
> > > From: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> > > Sent: Friday, May 17, 2019 1:59 PM
> > > To: Liming Sun <lsun@xxxxxxxxxxxx>
> > > Cc: Andy Shevchenko <andy@xxxxxxxxxxxxx>; Darren Hart <dvhart@xxxxxxxxxxxxx>; Vadim Pasternak <vadimp@xxxxxxxxxxxx>;
> David
> > > Woods <dwoods@xxxxxxxxxxxx>; platform-driver-x86@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; David S. Miller
> > > <davem@xxxxxxxxxxxxx>; Mauro Carvalho Chehab <mchehab+samsung@xxxxxxxxxx>; Jonathan Cameron
> > > <Jonathan.Cameron@xxxxxxxxxx>; Nicolas Ferre <nicolas.ferre@xxxxxxxxxxxxx>; Paul E. McKenney <paulmck@xxxxxxxxxxxxx>
> > > Subject: Re: [PATCH v5 2/2] platform/mellanox/mlxbf-bootctl: Add the ABI definitions
> > >
> > > On Fri, May 17, 2019 at 01:49:05PM -0400, Liming Sun wrote:
> > > > This commit adds the ABI definitions exposed to userspace for
> > > > the platform/mellanox/mlxbf-bootctl driver.
> > > >
> > > > Reviewed-by: Vadim Pasternak <vadimp@xxxxxxxxxxxx>
> > > > Signed-off-by: Liming Sun <lsun@xxxxxxxxxxxx>
> > > > ---
> > > > .../ABI/testing/sysfs-platform-mellanox-bootctl | 58 ++++++++++++++++++++++
> > > > MAINTAINERS | 1 +
> > > > 2 files changed, 59 insertions(+)
> > > > create mode 100644 Documentation/ABI/testing/sysfs-platform-mellanox-bootctl
> > > >
> > > > diff --git a/Documentation/ABI/testing/sysfs-platform-mellanox-bootctl b/Documentation/ABI/testing/sysfs-platform-mellanox-
> > > bootctl
> > > > new file mode 100644
> > > > index 0000000..19a14db
> > > > --- /dev/null
> > > > +++ b/Documentation/ABI/testing/sysfs-platform-mellanox-bootctl
> > > > @@ -0,0 +1,58 @@
> > > > +What: /sys/bus/platform/drivers/mlxbf-bootctl/lifecycle_state
> > > > +Date: May 2019
> > > > +KernelVersion: 5.3
> > > > +Contact: "Liming Sun <lsun@xxxxxxxxxxxx>"
> > > > +Description:
> > > > + The Life-cycle state of the SoC, which could be one of the
> > > > + following values.
> > > > + Production - Production state and can be updated to secure
> > > > + GA Secured - Secure chip and not able to change state
> > > > + GA Non-Secured - Non-Secure chip and not able to change state
> > > > + RMA - Return Merchandise Authorization
> > >
> > > A "driver" does not have a lifecycle state, a "device" does.
> > >
> > > You are putting all of these attributes in the wrong place. Put them on
> > > your device please, not the driver. driver-specific attributes are
> > > _VERY_ rare, and only for things that can modify/show for all devices
> > > attached to that driver.
> >
> > This driver is running on the ARM processor of the SoC. The 'device' is
> > the SoC itself. That's to say, there is only one device here attached to
> > the driver and the driver state will also be the device state.
>
> That might be true today, but maybe not tomorrow :)
>
> Anyway, again, this is device state, not driver state.

Yes, I agree. I discussed with the team and will move these attributes
under device (since they could be all considered as device state).

>
> > This interface has been used by user-space applications for a couple of
> > releases. It'll be great if it could stay in such way for compatibility. Please
> > advise if this is strongly preferred to move them under devices.
>
> So this is code that is already in the tree, and is just now being
> documented? What .c file(s) is this referring to?

This code is not in the kernel tree yet. It has been in Mellanox BlueField
SW packages for a couple of releases and is trying to be up-streamed now.

>
> As for "comptability", sysfs is made such that if a file is not present,
> userspace should be able to survive, that is why it is
> one-value-per-file. What tool is using this, and where is the source
> for it?

The latest 2.0 code can be found at link
https://github.com/Mellanox/mlxbf-bootctl/tree/2.0

In file mlxbf-bootctl.c, currently it uses the 'drivers' path as sysfs path.
#define SYS_PATH "/sys/bus/platform/drivers/mlx-bootctl". We could
update it to support both paths.

>
> thanks,
>
> greg k-h