[dpdk-dev] [PATCH v3 0/6] Enable VF RSS for Niantic

Vlad Zolotarov vladz at cloudius-systems.com
Wed Dec 24 11:49:12 CET 2014


On 12/24/14 07:22, Ouyang Changchun wrote:
> This patch enables VF RSS for Niantic, which allow each VF having at most 4 queues.
> The actual queue number per VF depends on the total number of pool, which is
> determined by the total number of VF at PF initialization stage and the number of
> queue specified in config:
> 1) If the number of VF is in the range from 1 to 32 and the number of rxq is 4('--rxq 4' in testpmd),
> then there is totally 32 pools(ETH_32_POOLS), and each VF have 4 queues;
>   
> 2)If the number of VF is in the range from 33 to 64 and the number of rxq is 2('--rxq 2' in testpmd),
> then there is totally 64 pools(ETH_64_POOLS), and each VF have 2 queues;
>   
> On host, to enable VF RSS functionality, rx mq mode should be set as ETH_MQ_RX_VMDQ_RSS
> or ETH_MQ_RX_RSS mode, and SRIOV mode should be activated(max_vfs >= 1).
> It also needs config VF RSS information like hash function, RSS key, RSS key length.
>   
> The limitation for Niantic VF RSS is:
> the hash and key are shared among PF and all VF, the RETA table with 128 entries are
> also shared among PF and all VF. So it is not good idea to query the hash and reta content per VF on
> guest, instead, it makes sense to query them on host(PF).
>   
> v3 change:
>    - More cleanup;

This series is still missing the appropriate patches in the 
rte_eth_dev_info_get() flow to return a reta_size for a VF device; and 
to rte_eth_dev_rss_reta_query() in the context of
a VF device (I haven't noticed the initialization of a 
dev->dev_ops->reta_query for the VF device in this series).

Without these code bits it's impossible to work with the VF devices in 
the RSS context the same way we work with the PF devices. It means that 
we'll have to do some special branching to handle the VF device and this 
voids the whole meaning of the framework which in turn is very unfortunate.

>
> v2 change:
>    - Update the description;
>    - Use receiving queue number('--rxq <q-num>') specified in config to determine the number of pool and
>      the number of queue per VF;
>   
> v1 change:
>    - Config VF RSS;
>
> Changchun Ouyang (6):
>    ixgbe: Code cleanup
>    ixgbe: Negotiate VF API version
>    ixgbe: Get VF queue number
>    ether: Check VMDq RSS mode
>    ixgbe: Config VF RSS
>    testpmd: Set Rx VMDq RSS mode
>
>   app/test-pmd/testpmd.c              |  10 +++
>   lib/librte_ether/rte_ethdev.c       |  39 +++++++++--
>   lib/librte_pmd_ixgbe/ixgbe_ethdev.h |   1 +
>   lib/librte_pmd_ixgbe/ixgbe_pf.c     |  75 ++++++++++++++++++++-
>   lib/librte_pmd_ixgbe/ixgbe_rxtx.c   | 127 ++++++++++++++++++++++++++++--------
>   5 files changed, 219 insertions(+), 33 deletions(-)
>



More information about the dev mailing list