Subject: Re: [PATCH v3 04/20] i40e: Register a virtbus device to provide RDMA

From: Greg KH <[email-masked]>
Date: Mon, 16 Dec 2019 09:58:52 +0100

On Mon, Dec 16, 2019 at 08:36:02AM +0000, Parav Pandit wrote:
> On 12/16/2019 12:45 PM, Greg KH wrote:
> > On Mon, Dec 16, 2019 at 03:48:05AM +0000, Parav Pandit wrote:
> [..]
> >>> I feel like the virtual bus code is getting better, but this use of the
> >>> code, um, no, not ok.
> >>>
> >>> Either way, this series is NOT ready to be merged anywhere, please do
> >>> not try to rush things.
> >>>
> >>> Also, what ever happened to my "YOU ALL MUST AGREE TO WORK TOGETHER"
> >>> requirement between this group, and the other group trying to do the
> >>> same thing?  I want to see signed-off-by from EVERYONE involved before
> >>> we are going to consider this thing.
> >>
> >> I am working on RFC where PCI device is sliced to create sub-functions.
> >> Each sub-function/slice is created dynamically by the user.
> >> User gives sf-number at creation time which will be used for plumbing by
> >> systemd/udev, devlink ports.
> > 
> > That sounds exactly what is wanted here as well, right?
> 
> Not exactly.
> Here, in i40 use case - there is a PCI function.
> This PCI function is used by two drivers:
> (1) vendor_foo_netdev.ko creating Netdevice (class net)
> (2) vendor_foo_rdma.ko creating RDMA device (class infiniband)
> 
> And both drivers are notified using matching service virtbus, which
> attempts to create to two virtbus_devices with different driver-id, one
> for each class of device.

Yes, that is fine.

> However, devices of both class (net, infiniband) will have parent device
> as PCI device.

That is fine.

> In case of sub-functions, created rdma and netdevice will have parent as
> the sub-function 'struct device'. This way those SFs gets their
> systemd/udev plumbing done rightly.

huh?  The rdma and netdevice will have as their parent device the
virtdevice that is on the virtbus.  Not the PCI device's 'struct
device'.

thanks,

greg k-h