mbox series

[RFC,0/7] support SubFunction representor

Message ID 1608303356-13089-1-git-send-email-xuemingl@nvidia.com (mailing list archive)
Headers
Series support SubFunction representor |

Message

Xueming Li Dec. 18, 2020, 2:55 p.m. UTC
  SubFunction [1] is a portion of the PCI device, a SF netdev has its own
dedicated queues(txq, rxq). A SF netdev supports eswitch representation
offload similar to existing PF and VF representors. A SF shares PCI
level resources with other SFs and/or with its parent PCI function.

From SmartNIC perspective, when PCI device is shared for multi-host,
representors for host controller and host PF is required.

This patch set introduces new representor types in addtion to existing
VF representor. Syntax:

[[c#]pf#]vf#: VF port representor/s from controller/pf
[[c#]pf#]sf#: SF port representor/s from controller/pf
#: VF representor - for backwards compatibility

"#" is number instance, list or range, valid examples:
  1, [1,3,5], [0-3], [0,2-4,6]

For flexibility, this patch also introduces new netdev capability
to indicate the capability to support new representor types.

[1]:
https://lore.kernel.org/netdev/20201112192424.2742-1-parav@nvidia.com/



Xueming Li (7):
  ethdev: support sub function representor
  ethdev: support multi-host representor
  devarg: change reprsentor ID to bitmap
  ethdev: capability for new representor syntax
  kvargs: update parser for new representor syntax
  common/mlx5: update representor name parsing
  net/mlx5: support representor of sub function

 0000-cover-letter.patch                    |  44 ++++++
 config/rte_config.h                        |   1 +
 drivers/common/mlx5/linux/mlx5_common_os.c |  32 ++--
 drivers/common/mlx5/linux/mlx5_nl.c        |   2 +
 drivers/common/mlx5/mlx5_common.h          |   2 +
 drivers/net/mlx5/linux/mlx5_ethdev_os.c    |   5 +
 drivers/net/mlx5/linux/mlx5_os.c           |  69 ++++++++-
 drivers/net/mlx5/mlx5_ethdev.c             |   2 +
 lib/librte_ethdev/ethdev_private.c         | 164 ++++++++++++++-------
 lib/librte_ethdev/ethdev_private.h         |   3 -
 lib/librte_ethdev/rte_class_eth.c          |   7 +-
 lib/librte_ethdev/rte_ethdev.c             |   5 +-
 lib/librte_ethdev/rte_ethdev.h             |   2 +
 lib/librte_ethdev/rte_ethdev_driver.h      |  35 +++++
 lib/librte_kvargs/rte_kvargs.c             |  82 +++++++----
 15 files changed, 351 insertions(+), 104 deletions(-)
 create mode 100644 0000-cover-letter.patch
  

Comments

Andrew Rybchenko Dec. 28, 2020, 1:44 p.m. UTC | #1
On 12/18/20 5:55 PM, Xueming Li wrote:
> SubFunction [1] is a portion of the PCI device, a SF netdev has its own
> dedicated queues(txq, rxq). A SF netdev supports eswitch representation
> offload similar to existing PF and VF representors. A SF shares PCI
> level resources with other SFs and/or with its parent PCI function.
>
> >From SmartNIC perspective, when PCI device is shared for multi-host,
> representors for host controller and host PF is required.
>
> This patch set introduces new representor types in addtion to existing
> VF representor. Syntax:
>
> [[c#]pf#]vf#: VF port representor/s from controller/pf
> [[c#]pf#]sf#: SF port representor/s from controller/pf
> #: VF representor - for backwards compatibility
>
> "#" is number instance, list or range, valid examples:
>   1, [1,3,5], [0-3], [0,2-4,6]
>
> For flexibility, this patch also introduces new netdev capability
> to indicate the capability to support new representor types.

Many thanks for sharing the patchset. Looks very interesting.
I've already sent my comments and questions for individual patches.

> [1]:
> https://lore.kernel.org/netdev/20201112192424.2742-1-parav@nvidia.com/

[snip]
  
Xueming Li Dec. 30, 2020, 8:54 a.m. UTC | #2
Hi Andrew,

>-----Original Message-----
>From: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
>Sent: Monday, December 28, 2020 9:45 PM
>To: Xueming(Steven) Li <xuemingl@nvidia.com>; Slava Ovsiienko
><viacheslavo@nvidia.com>; NBU-Contact-Thomas Monjalon
><thomas@monjalon.net>; Ferruh Yigit <ferruh.yigit@intel.com>; Olivier Matz
><olivier.matz@6wind.com>; Matan Azrad <matan@nvidia.com>
>Cc: dev@dpdk.org; Asaf Penso <asafp@nvidia.com>
>Subject: Re: [RFC 0/7] support SubFunction representor
>
>On 12/18/20 5:55 PM, Xueming Li wrote:
>> SubFunction [1] is a portion of the PCI device, a SF netdev has its
>> own dedicated queues(txq, rxq). A SF netdev supports eswitch
>> representation offload similar to existing PF and VF representors. A
>> SF shares PCI level resources with other SFs and/or with its parent PCI
>function.
>>
>> >From SmartNIC perspective, when PCI device is shared for multi-host,
>> representors for host controller and host PF is required.
>>
>> This patch set introduces new representor types in addtion to existing
>> VF representor. Syntax:
>>
>> [[c#]pf#]vf#: VF port representor/s from controller/pf
>> [[c#]pf#]sf#: SF port representor/s from controller/pf
>> #: VF representor - for backwards compatibility
>>
>> "#" is number instance, list or range, valid examples:
>>   1, [1,3,5], [0-3], [0,2-4,6]
>>
>> For flexibility, this patch also introduces new netdev capability to
>> indicate the capability to support new representor types.
>
>Many thanks for sharing the patchset. Looks very interesting.
>I've already sent my comments and questions for individual patches.
Appreciate for the wonderful review, will address them next week.

>
>> [1]:
>> https://lore.kernel.org/netdev/20201112192424.2742-1-parav@nvidia.com/
>
>[snip]
  
Thomas Monjalon Dec. 30, 2020, 11:07 a.m. UTC | #3
30/12/2020 09:54, Xueming(Steven) Li:
> Hi Andrew,
> 
> From: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> >On 12/18/20 5:55 PM, Xueming Li wrote:
> >> SubFunction [1] is a portion of the PCI device, a SF netdev has its
> >> own dedicated queues(txq, rxq). A SF netdev supports eswitch
> >> representation offload similar to existing PF and VF representors. A
> >> SF shares PCI level resources with other SFs and/or with its parent PCI
> >function.
> >>
> >> >From SmartNIC perspective, when PCI device is shared for multi-host,
> >> representors for host controller and host PF is required.
> >>
> >> This patch set introduces new representor types in addtion to existing
> >> VF representor. Syntax:
> >>
> >> [[c#]pf#]vf#: VF port representor/s from controller/pf
> >> [[c#]pf#]sf#: SF port representor/s from controller/pf
> >> #: VF representor - for backwards compatibility
> >>
> >> "#" is number instance, list or range, valid examples:
> >>   1, [1,3,5], [0-3], [0,2-4,6]
> >>
> >> For flexibility, this patch also introduces new netdev capability to
> >> indicate the capability to support new representor types.
> >
> >Many thanks for sharing the patchset. Looks very interesting.
> >I've already sent my comments and questions for individual patches.
> 
> Appreciate for the wonderful review, will address them next week.

I agree, good review, thanks.
I am waiting for a v2.