From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1B10DA0A03; Tue, 19 Jan 2021 10:36:04 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 91735140D4E; Tue, 19 Jan 2021 10:36:03 +0100 (CET) Received: from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113]) by mails.dpdk.org (Postfix) with ESMTP id A3087140D4D for ; Tue, 19 Jan 2021 10:36:02 +0100 (CET) Received: from [192.168.38.17] (aros.oktetlabs.ru [192.168.38.17]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by shelob.oktetlabs.ru (Postfix) with ESMTPSA id 4244F7F5A1; Tue, 19 Jan 2021 12:36:02 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru 4244F7F5A1 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=oktetlabs.ru; s=default; t=1611048962; bh=GGw3yipkmo5EJk4kcow523sVxGmV1j+o76eKuKKUbM0=; h=Subject:To:Cc:References:From:Date:In-Reply-To; b=Q8XocHeOkdQAImTcW49xghRjfXQacnwnHuZAL+r2pOSb/J5xrGXD5t5rVIUBtsuf4 bRvCOF9ukB/wXTn8jOv/W7BEsJesXCxwaMLDCHGjPimYseE+2oN298PcQk34P5oPo1 NuroRzcMmCdORTyB32MpfSKYDxnCBmRCmFX+meYI= To: "Xueming(Steven) Li" Cc: "dev@dpdk.org" , Slava Ovsiienko , Asaf Penso , NBU-Contact-Thomas Monjalon , Ferruh Yigit References: <1611040501-11666-1-git-send-email-xuemingl@nvidia.com> <1611040501-11666-5-git-send-email-xuemingl@nvidia.com> <5462d23b-40e3-4a22-d1ae-e84b28af83f5@oktetlabs.ru> From: Andrew Rybchenko Organization: OKTET Labs Message-ID: <31ab3271-132e-e1e9-986d-7c5d2e68dd2c@oktetlabs.ru> Date: Tue, 19 Jan 2021 12:36:02 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH v5 5/9] ethdev: support PF index in representor X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 1/19/21 12:30 PM, Xueming(Steven) Li wrote: > Hi Andrew, > >> -----Original Message----- >> From: Andrew Rybchenko >> Sent: Tuesday, January 19, 2021 4:01 PM >> To: Xueming(Steven) Li >> Cc: dev@dpdk.org; Slava Ovsiienko ; Asaf Penso >> ; NBU-Contact-Thomas Monjalon >> ; Ferruh Yigit >> Subject: Re: [PATCH v5 5/9] ethdev: support PF index in representor >> >> On 1/19/21 10:14 AM, Xueming Li wrote: >>> With Kernel bonding, multiple underlying PFs are bonded, VFs come from >>> different PF, need to identify representor of VFs unambiguously by >>> adding PF index. >>> >>> This patch introduces optional 'pf' section to representor devargs >>> syntax, examples: >>> representor=pf0vf0 - single VF representor >>> representor=pf[0-1]sf[0-1023] - SF representors from 2 PFs >> >> >> Don't we need >> representor=pf3 >> i.e. without VF or sub-function? > > Standalone PF not used by Mellnaox PMD, but should be supported. > Will update. >> >>> >>> >>> Signed-off-by: Xueming Li >>> Acked-by: Viacheslav Ovsiienko >>> Acked-by: Thomas Monjalon >>> --- >>> doc/guides/prog_guide/poll_mode_drv.rst | 2 ++ >>> lib/librte_ethdev/ethdev_private.c | 13 +++++++++++-- >>> 2 files changed, 13 insertions(+), 2 deletions(-) >>> >>> diff --git a/doc/guides/prog_guide/poll_mode_drv.rst >>> b/doc/guides/prog_guide/poll_mode_drv.rst >>> index 86e5867f1b..b2147aad30 100644 >>> --- a/doc/guides/prog_guide/poll_mode_drv.rst >>> +++ b/doc/guides/prog_guide/poll_mode_drv.rst >>> @@ -382,6 +382,8 @@ parameters to those ports. >>> -a DBDF,representor=sf[1,3,5] >>> -a DBDF,representor=sf[0-1023] >>> -a DBDF,representor=sf[0,2-4,7,9-11] >>> + -a DBDF,representor=pf1vf0 >>> + -a DBDF,representor=pf[0-1]sf[0-127] >>> >>> Note: PMDs are not required to support the standard device arguments >>> and users should consult the relevant PMD documentation to see support >> devargs. >>> diff --git a/lib/librte_ethdev/ethdev_private.c >>> b/lib/librte_ethdev/ethdev_private.c >>> index d513f035d0..b9fdbd0f72 100644 >>> --- a/lib/librte_ethdev/ethdev_private.c >>> +++ b/lib/librte_ethdev/ethdev_private.c >>> @@ -120,8 +120,8 @@ rte_eth_devargs_process_list(char *str, uint16_t >> *list, uint16_t *len_list, >>> * >>> * Representor format: >>> * #: range or single number of VF representor - legacy >>> - * vf#: VF port representor/s >>> - * sf#: SF port representor/s >>> + * [pf#]vf#: VF port representor/s >>> + * [pf#]sf#: SF port representor/s >>> * >>> * Examples of #: >>> * 2 - single >>> @@ -133,6 +133,14 @@ rte_eth_devargs_parse_representor_ports(char >>> *str, void *data) { >>> struct rte_eth_devargs *eth_da = data; >>> >>> + if (str[0] == 'p' && str[1] == 'f') { >>> + eth_da->type = RTE_ETH_REPRESENTOR_PF; >>> + str += 2; >>> + str = rte_eth_devargs_process_list(str, eth_da->ports, >>> + ð_da->nb_ports, RTE_MAX_ETHPORTS); >> >> May be RTE_MAX_ETHPORTS -> RTE_DIM(eth_da->ports) ? > > Same here, the dim could be different than MAX value. Hold on, just for my understanding. The maximum says how many entries could be added to the array. So, why? >> >>> + if (str == NULL) >>> + goto err; >> >> Below we should not allow legacy VF syntax without "vf" prefix. > > For backward compatibility, default numbers to "vf", otherwise some existing > app like OVS that working with VF will break. I mean if new syntax is used (i.e. we have pfX prefix), we must deny legacy syntax for VFs below. >> >>> + } >>> if (str[0] == 'v' && str[1] == 'f') { >>> eth_da->type = RTE_ETH_REPRESENTOR_VF; >>> str += 2; >>> @@ -144,6 +152,7 @@ rte_eth_devargs_parse_representor_ports(char *str, >> void *data) >>> } >>> str = rte_eth_devargs_process_list(str, eth_da->representor_ports, >>> ð_da->nb_representor_ports, RTE_MAX_ETHPORTS); >>> +err: >>> if (str == NULL) >>> RTE_LOG(ERR, EAL, "wrong representor format: %s\n", str); >>> return str == NULL ? -1 : 0; >>> >