>-----Original Message----- >From: Ferruh Yigit <ferruh.yi...@intel.com> >Sent: Tuesday, March 9, 2021 12:44 AM >To: Xueming(Steven) Li <xuemi...@nvidia.com>; Andrew Rybchenko ><andrew.rybche...@oktetlabs.ru> >Cc: dev@dpdk.org; Slava Ovsiienko <viachesl...@nvidia.com>; Asaf Penso ><as...@nvidia.com> >Subject: Re: [dpdk-dev] [PATCH v8 0/9] ethdev: support SubFunction representor > >On 3/4/2021 2:30 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 E-Switch >> 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 backward compatibility, this patch also introduces new netdev >> capability to indicate the capability of supportting SF representor. >> >> Version history: >> RFC: >> initial version [2] >> V2: >> - separate patch for represnetor infrastructure, controller, pf and >> sf. >> - replace representor ID macro with functions: >> rte_eth_representor_id_encode() >> rte_eth_representor_id_parse() >> - new patch to allow devargs with same PCI BDF but different >> representors. >> - other minor code updates according to comments, thanks Andrew! >> - update document >> V3: >> - improve probing of allowed devargs with same name. >> - parse single word of kvargs as key. >> - update kvargs test cases. >> V4: >> - split first representor refactor patch into >> 1: add representor type >> 2: refector representor list parsing >> - push the patch supporting multi-devargs for same device. >> V5: >> - add comments for parsing functions >> - update switch_representation.rst - Thanks Ajit >> V6: >> - split representor types into different patches, move to >> rte_ethdev.h >> - improvements of rte_eth_devargs_process_list() according to >> Andrew's suggestion >> - fixed PF probe failure for Intel i40e >> - replace ethdev SF capability with rte_eth_representor_info_get() >> - add new ethdev ops api to get representor info from PMD >> - replace representor ID encode/decode with conversion from >> representor info >> - change ethdev representor iterator to use new ID encoding >> V7: >> - error on duplicated representor argument: >> DBDF,representor=a,representor=b >> - fix pf representor type parsing >> - other small fixes suggested by Andrew. >> V8: >> - remove the "ignore" hint from pmd representor info >> - changed representor_id type in representor info to u32 >> - rename rte_eth_representor_id_convert() to ..._get() >> - other small fixes suggested by Andrew >> >> >> >> [1] SubFunction in kernel: >> https://lore.kernel.org/netdev/20201112192424.2742-1-pa...@nvidia.com/ >> >> [2] RFC: >> http://patchwork.dpdk.org/project/dpdk/list/?series=14376 >> >> [3] V2: >> http://patchwork.dpdk.org/project/dpdk/list/?series=14559 >> >> [4] V3: >> 1 http://patchwork.dpdk.org/patch/86460/ >> 2 http://patchwork.dpdk.org/patch/86461/ >> 3 http://patchwork.dpdk.org/patch/86462/ >> 4 http://patchwork.dpdk.org/patch/86463/ >> 5 http://patchwork.dpdk.org/patch/86464/ >> 6 http://patchwork.dpdk.org/patch/86465/ >> 7 http://patchwork.dpdk.org/patch/86467/ >> 8 http://patchwork.dpdk.org/patch/86466/ >> 9 http://patchwork.dpdk.org/patch/86468/ >> >> [5] V4: >> http://patchwork.dpdk.org/project/dpdk/list/?series=14809 >> >> [6] V5: >> http://patchwork.dpdk.org/project/dpdk/list/?series=14834 >> >> [7] V6: >> http://patchwork.dpdk.org/project/dpdk/list/?series=15258 >> >> [8] v7: >> http://patchwork.dpdk.org/project/dpdk/list/?series=15441 >> >> Xueming Li (9): >> ethdev: introduce representor type >> ethdev: support representor port list >> ethdev: support new VF representor syntax >> ethdev: support sub function representor >> ethdev: support PF index in representor >> ethdev: support multi-host in representor >> ethdev: new API to get representor info >> ethdev: representor iterator compare complete info >> kvargs: update parser to support lists >> >> app/test/test_kvargs.c | 46 ++++- >> config/rte_config.h | 1 + >> doc/guides/prog_guide/poll_mode_drv.rst | 18 +- >> .../prog_guide/switch_representation.rst | 35 ++-- >> drivers/net/bnxt/bnxt_ethdev.c | 7 + >> drivers/net/enic/enic_ethdev.c | 6 + >> drivers/net/i40e/i40e_ethdev.c | 7 + >> drivers/net/ixgbe/ixgbe_ethdev.c | 7 + >> drivers/net/mlx5/linux/mlx5_os.c | 11 ++ >> lib/librte_ethdev/ethdev_driver.h | 50 +++++- >> lib/librte_ethdev/ethdev_private.c | 169 ++++++++++++------ >> lib/librte_ethdev/ethdev_private.h | 3 - >> lib/librte_ethdev/rte_class_eth.c | 40 +++-- >> lib/librte_ethdev/rte_ethdev.c | 113 +++++++++++- >> lib/librte_ethdev/rte_ethdev.h | 61 +++++++ >> lib/librte_ethdev/version.map | 4 + >> lib/librte_kvargs/rte_kvargs.c | 101 ++++++++--- >> 17 files changed, 554 insertions(+), 125 deletions(-) >> > >Btw, can you also update the release notes for the feature, if there will be >more versions it is OK to hold the update to prevent the >release notes rebases on each version, but please include it as the patchset >matures.
Got it, thanks!