Re: [PATCH 1/4] mdev: Introduce sha1 based mdev alias

From: Cornelia Huck
Date: Tue Aug 27 2019 - 07:24:15 EST


On Tue, 27 Aug 2019 11:12:23 +0000
Parav Pandit <parav@xxxxxxxxxxxx> wrote:

> > -----Original Message-----
> > From: Cornelia Huck <cohuck@xxxxxxxxxx>
> > Sent: Tuesday, August 27, 2019 3:54 PM
> > To: Parav Pandit <parav@xxxxxxxxxxxx>
> > Cc: alex.williamson@xxxxxxxxxx; Jiri Pirko <jiri@xxxxxxxxxxxx>;
> > kwankhede@xxxxxxxxxx; davem@xxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx; linux-
> > kernel@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx
> > Subject: Re: [PATCH 1/4] mdev: Introduce sha1 based mdev alias
> >
> > On Mon, 26 Aug 2019 15:41:16 -0500
> > Parav Pandit <parav@xxxxxxxxxxxx> wrote:
> >
> > > Whenever a parent requests to generate mdev alias, generate a mdev
> > > alias.
> > > It is an optional attribute that parent can request to generate for
> > > each of its child mdev.
> > > mdev alias is generated using sha1 from the mdev name.
> >
> > Maybe add some motivation here as well?
> >
> > "Some vendor drivers want an identifier for an mdev device that is shorter than
> > the uuid, due to length restrictions in the consumers of that identifier.
> >
> > Add a callback that allows a vendor driver to request an alias of a specified
> > length to be generated (via sha1) for an mdev device. If generated, that alias is
> > checked for collisions."
> >
> I did described the motivation in the cover letter with example and this design discussion thread.

Yes, but adding it to the patch description makes it available in the
git history.

> I will include above summary in v1.
>
> > What about:
> >
> > * @get_alias_length: optional callback to specify length of the alias to create
> > * Returns unsigned integer: length of the alias to be created,
> > * 0 to not create an alias
> >
> Ack.
>
> > I also think it might be beneficial to add a device parameter here now (rather
> > than later); that seems to be something that makes sense.
> >
> Without showing the use, it shouldn't be added.

It just feels like an omission: Why should the vendor driver only be
able to return one value here, without knowing which device it is for?
If a driver supports different devices, it may have different
requirements for them.

>
> > > * Parent device that support mediated device should be registered with
> > mdev
> > > * module with mdev_parent_ops structure.
> > > **/
> > > @@ -92,6 +95,7 @@ struct mdev_parent_ops {
> > > long (*ioctl)(struct mdev_device *mdev, unsigned int cmd,
> > > unsigned long arg);
> > > int (*mmap)(struct mdev_device *mdev, struct vm_area_struct
> > *vma);
> > > + unsigned int (*get_alias_length)(void);
> > > };
> > >
> > > /* interface for exporting mdev supported type attributes */
>