[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b1242f0f-c34d-e6af-1731-fec9c947c478@mellanox.com>
Date: Mon, 16 Dec 2019 08:36:02 +0000
From: Parav Pandit <parav@...lanox.com>
To: Greg KH <gregkh@...uxfoundation.org>
CC: Jeff Kirsher <jeffrey.t.kirsher@...el.com>,
"davem@...emloft.net" <davem@...emloft.net>,
Shiraz Saleem <shiraz.saleem@...el.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-rdma@...r.kernel.org" <linux-rdma@...r.kernel.org>,
"nhorman@...hat.com" <nhorman@...hat.com>,
"sassmann@...hat.com" <sassmann@...hat.com>,
"jgg@...pe.ca" <jgg@...pe.ca>,
Mustafa Ismail <mustafa.ismail@...el.com>
Subject: Re: [PATCH v3 04/20] i40e: Register a virtbus device to provide RDMA
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.
However, devices of both class (net, infiniband) will have parent device
as PCI device.
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.
>
>> This sub-function will have sysfs attributes = sfnumber, irq vectors,
>> PCI BAR resource files.
>> sfnumber as sysfs file will be used by systemd/udev to have
>> deterministic names of netdev and rdma device created on top of
>> sub-function's 'struct device'.
>>
>> As opposed to that, matching service devices won't have such attributes.
>>
>> We stayed away from using mdev bus for such dual purpose in past.
>
> That is good.
>
>> Should we have virtbus that holds 'struct device' created for different
>> purpose and have different sysfs attributes? Is it ok?
>
> That's fine to do, I was expecting that to happen.
>
ok. Thanks a lot.
Lets understand above additional (non sysfs) difference as well on how
virtbus device is getting used differently between sub-functions and
matching service purposes.
Powered by blists - more mailing lists