> -----Original Message----- > From: Jiri Pirko <jiri@xxxxxxxxxxx> > Sent: Monday, November 11, 2019 8:18 AM > Sun, Nov 10, 2019 at 08:48:31PM CET, parav@xxxxxxxxxxxx wrote: > > > >> From: Jason Gunthorpe <jgg@xxxxxxxx> > >> Sent: Friday, November 8, 2019 6:57 PM > >> > We should be creating 3 different buses, instead of mdev bus being > >> > de- > >> multiplexer of that? > >> > > >> > Hence, depending the device flavour specified, create such device > >> > on right > >> bus? > >> > > >> > For example, > >> > $ devlink create subdev pci/0000:05:00.0 flavour virtio name foo > >> > subdev_id 1 $ devlink create subdev pci/0000:05:00.0 flavour mdev > >> > <uuid> subdev_id 2 $ devlink create subdev pci/0000:05:00.0 flavour > >> > mlx5 id 1 subdev_id 3 > >> > >> I like the idea of specifying what kind of interface you want at sub > >> device creation time. It fits the driver model pretty well and > >> doesn't require abusing the vfio mdev for binding to a netdev driver. > >> > >> > $ devlink subdev pci/0000:05:00.0/<subdev_id> config <params> $ > >> > echo <respective_device_id> <sysfs_path>/bind > >> > >> Is explicit binding really needed? > >No. > > > >> If you specify a vfio flavour why shouldn't the vfio driver autoload > >> and bind to it right away? That is kind of the point of the driver > >> model... > >> > >It some configuration is needed that cannot be passed at device creation > time, explicit bind later can be used. > > > >> (kind of related, but I don't get while all that GUID and lifecycle > >> stuff in mdev should apply for something like a SF) > >> > >GUID is just the name of the device. > >But lets park this aside for a moment. > > > >> > Implement power management callbacks also on all above 3 buses? > >> > Abstract out mlx5_bus into more generic virtual bus (vdev bus?) so > >> > that multiple vendors can reuse? > >> > >> In this specific case, why does the SF in mlx5 mode even need a bus? > >> Is it only because of devlink? That would be unfortunate > >> > >Devlink is one part due to identifying using bus/dev. > >How do we refer to its devlink instance of SF without bus/device? > > Question is, why to have devlink instance for SF itself. Same as VF, you don't mlx5_core has devlink instance for PF and VF for long time now. Health report, txq/rxq dumps etc all anchored to this devlink instance even for VF. (similar to PF). And so, SF same framework should work for SF. > need devlink instance. You only need devlink_port (or > devlink_subdev) instance on the PF devlink parent for it. > Devlink_port or devlink_subdev are still on eswitch or mgmt side. They are not present on the side where devlink instance exist on side where txq/rxq/eq etc exist.