All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yunsheng Lin <linyunsheng@huawei.com>
To: Jakub Kicinski <kuba@kernel.org>
Cc: moyufeng <moyufeng@huawei.com>,
	Jakub Kicinski <jakub.kicinski@netronome.com>,
	Jiri Pirko <jiri@resnulli.us>, Parav Pandit <parav@mellanox.com>,
	Or Gerlitz <gerlitz.or@gmail.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"michal.lkml@markovi.net" <michal.lkml@markovi.net>,
	"davem@davemloft.net" <davem@davemloft.net>,
	"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
	Jiri Pirko <jiri@mellanox.com>,
	Salil Mehta <salil.mehta@huawei.com>,
	"lipeng (Y)" <lipeng321@huawei.com>,
	Guangbin Huang <huangguangbin2@huawei.com>,
	<shenjian15@huawei.com>,
	"chenhao (DY)" <chenhao288@hisilicon.com>,
	Jiaran Zhang <zhangjiaran@huawei.com>
Subject: Re: [RFC net-next 0/8] Introducing subdev bus and devlink extension
Date: Thu, 3 Jun 2021 11:46:43 +0800	[thread overview]
Message-ID: <857e7a19-1559-b929-fd15-05e8f38e9d45@huawei.com> (raw)
In-Reply-To: <20210602093440.15dc5713@kicinski-fedora-PC1C0HJN.hsd1.ca.comcast.net>

On 2021/6/3 0:34, Jakub Kicinski wrote:
> On Wed, 2 Jun 2021 10:24:11 +0800 Yunsheng Lin wrote:
>> On 2021/6/2 5:34, Jakub Kicinski wrote:
>>> On Tue, 1 Jun 2021 15:33:09 +0800 Yunsheng Lin wrote:  
>>>> Is there a reason why it didn't have to be solved yet?
>>>> Is it because the devices currently supporting devlink do not have
>>>> this kind of problem, like single-function ASIC or multi-function
>>>> ASIC without sharing common resource?  
>>>
>>> I'm not 100% sure, my guess is multi-function devices supporting
>>> devlink are simple enough for the problem not to matter all that much.
>>>   
>>>> Was there a discussion how to solved it in the past?  
>>>
>>> Not really, we floated an idea of creating aliases for devlink
>>> instances so a single devlink instance could answer to multiple 
>>> bus identifiers. But nothing concrete.  
>>
>> What does it mean by "answer to multiple bus identifiers"? I
>> suppose it means user provides the bus identifiers when setting or
>> getting something, and devlink instance uses that bus identifiers
>> to differentiate different PF in the same ASIC?
> 
> Correct.
> 
>> can devlink port be used to indicate different PF in the same ASIC,
>> which already has the bus identifiers in it? It seems we need a
>> extra identifier to indicate the ASIC?
>>
>> $ devlink port show
>> ...
>> pci/0000:03:00.0/61: type eth netdev sw1p1s0 split_group 0
> 
> Ports can obviously be used, but which PCI device will you use to
> register the devlink instance? Perhaps using just one doesn't matter 
> if there is only one NIC in the system, but may be confusing with
> multiple NICs, no?

Yes, it is confusing, how about using the controler_id to indicate
different NIC? we can make sure controler_id is unqiue in the same
host, a controler_id corresponds to a devlink instance, vendor info
or serial num for the devlink instance can further indicate more info
to the system user?

pci/controler_id/0000:03:00.0/61

> 
>>>> "same control domain" means if it is controlled by a single host, not
>>>> by multi hosts, right?
>>>>
>>>> If the PF is not passed through to a vm using VFIO and other PF is still
>>>> in the host, then I think we can say it is controlled by a single host.
>>>>
>>>> And each PF is trusted with each other right now, at least at the driver
>>>> level, but not between VF.  
>>>
>>> Right, the challenge AFAIU is how to match up multiple functions into 
>>> a single devlink instance, when driver has to probe them one by one.  
>>
>> Does it make sense if the PF first probed creates a auxiliary device,
>> and the auxiliary device driver creates the devlink instance? And
>> the PF probed later can connect/register to that devlink instance?
> 
> I would say no, that just adds another layer of complication and
> doesn't link the functions in any way.

How about:
The PF first probed creates the devlink instance? PF probed later can
connect/register to that devlink instance created by the PF first probed.
It seems some locking need to ensure the above happens as intended too.

About linking, the PF provide vendor info/serial number(or whatever is
unqiue between different vendor) of a controller it belong to, if the
controller does not exist yet, create one and connect/register to that
devlink instance, otherwise just do the connecting/registering.


  reply	other threads:[~2021-06-03  3:46 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-01  5:37 [RFC net-next 0/8] Introducing subdev bus and devlink extension Parav Pandit
2019-03-01  5:37 ` [RFC net-next 1/8] subdev: Introducing subdev bus Parav Pandit
2019-03-01  7:17   ` Greg KH
2019-03-01 16:35     ` Parav Pandit
2019-03-01 17:00       ` Greg KH
2019-03-26 11:48     ` Lorenzo Pieralisi
2019-03-01  5:37 ` [RFC net-next 2/8] subdev: Introduce pm callbacks Parav Pandit
2019-03-01  5:37 ` [RFC net-next 3/8] modpost: Add support for subdev device id table Parav Pandit
2019-03-01  5:37 ` [RFC net-next 4/8] devlink: Introduce and use devlink_init/cleanup() in alloc/free Parav Pandit
2019-03-01  5:37 ` [RFC net-next 5/8] devlink: Add variant of devlink_register/unregister Parav Pandit
2019-03-01  5:37 ` [RFC net-next 6/8] devlink: Add support for devlink subdev lifecycle Parav Pandit
2019-03-01  5:37 ` [RFC net-next 7/8] net/mlx5: Add devlink subdev life cycle command support Parav Pandit
2019-03-01  7:18   ` Greg KH
2019-03-01 16:04     ` Parav Pandit
2019-03-01  5:37 ` [RFC net-next 8/8] net/mlx5: Add subdev driver to bind to subdev devices Parav Pandit
2019-03-01  7:21   ` Greg KH
2019-03-01 17:21     ` Parav Pandit
2019-03-05  7:13       ` Greg KH
2019-03-05 17:57         ` Parav Pandit
2019-03-05 19:27           ` Greg KH
2019-03-05 21:37             ` Parav Pandit
2019-03-01 22:12   ` Saeed Mahameed
2019-03-04 16:45     ` Parav Pandit
2019-03-01 20:03 ` [RFC net-next 0/8] Introducing subdev bus and devlink extension Jakub Kicinski
2019-03-04  4:41   ` Parav Pandit
2019-03-05  1:35     ` Jakub Kicinski
2019-03-05 19:46       ` Parav Pandit
2019-03-05 22:39         ` Kirti Wankhede
2019-03-05 23:17           ` Parav Pandit
2019-03-05 23:44             ` Parav Pandit
2019-03-06  0:44               ` Parav Pandit
2019-03-06  3:51                 ` Kirti Wankhede
2019-03-06  5:42                   ` Parav Pandit
2019-03-07 19:04                     ` Kirti Wankhede
2019-03-07 20:27                       ` Parav Pandit
2019-03-07 20:53                         ` Kirti Wankhede
2019-03-07 21:02                           ` Parav Pandit
2019-03-07 21:07                             ` Kirti Wankhede
2019-03-07 21:21                               ` Parav Pandit
2019-03-07 22:01                                 ` Kirti Wankhede
2019-03-07 22:31                                   ` Parav Pandit
2019-03-08 12:19                                     ` Kirti Wankhede
2019-03-08 17:09                                       ` Parav Pandit
2019-03-05  1:45     ` Jakub Kicinski
2019-03-05 16:52       ` Parav Pandit
2021-05-31 10:36         ` moyufeng
2021-06-01  5:37           ` Jakub Kicinski
2021-06-01  7:33             ` Yunsheng Lin
2021-06-01 21:34               ` Jakub Kicinski
2021-06-02  2:24                 ` Yunsheng Lin
2021-06-02 16:34                   ` Jakub Kicinski
2021-06-03  3:46                     ` Yunsheng Lin [this message]
2021-06-03 17:53                       ` Jakub Kicinski
2021-06-04  1:18                         ` Yunsheng Lin
2021-06-04 18:41                           ` Jakub Kicinski
2021-06-07  1:36                             ` Yunsheng Lin
2021-06-07 19:46                               ` Jakub Kicinski
2021-06-08 12:10                                 ` Yunsheng Lin
2021-06-08 17:29                                   ` Jakub Kicinski
2021-06-09  9:16                                     ` Yunsheng Lin
2021-06-09  9:38                                       ` Parav Pandit
2021-06-09 11:05                                         ` Yunsheng Lin
2021-06-09 11:59                                           ` Parav Pandit
2021-06-09 12:30                                             ` Yunsheng Lin
2021-06-09 13:45                                               ` Parav Pandit
2021-06-10  7:04                                                 ` Yunsheng Lin
2021-06-10  7:17                                                   ` Parav Pandit
2021-06-09 16:40                                       ` Jakub Kicinski
2021-06-10  6:52                                         ` Yunsheng Lin
2021-06-09  9:52                                   ` Parav Pandit
2021-06-09 11:16                                     ` Yunsheng Lin
2021-06-09 12:00                                       ` Parav Pandit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=857e7a19-1559-b929-fd15-05e8f38e9d45@huawei.com \
    --to=linyunsheng@huawei.com \
    --cc=chenhao288@hisilicon.com \
    --cc=davem@davemloft.net \
    --cc=gerlitz.or@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=huangguangbin2@huawei.com \
    --cc=jakub.kicinski@netronome.com \
    --cc=jiri@mellanox.com \
    --cc=jiri@resnulli.us \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lipeng321@huawei.com \
    --cc=michal.lkml@markovi.net \
    --cc=moyufeng@huawei.com \
    --cc=netdev@vger.kernel.org \
    --cc=parav@mellanox.com \
    --cc=salil.mehta@huawei.com \
    --cc=shenjian15@huawei.com \
    --cc=zhangjiaran@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.