* [dpdk-users] vmxnet3 RSS implementation
@ 2018-06-21 14:03 Jay Miller
2018-08-21 17:57 ` [dpdk-users] Support for more RSS hash types in vmxnet3 Jay Miller
0 siblings, 1 reply; 7+ messages in thread
From: Jay Miller @ 2018-06-21 14:03 UTC (permalink / raw)
To: users
Greetings Programs,
We're having trouble getting RSS distribution working on vmxnet3. It
appears that no matter what we do from the hypervisor side that load
balancing in vmxnet3 is only via mac address. We're not able to get
distribution across queues based on the 5-tuple hash.
Certainly we don't see this limitation on KVM. But we did notice that
DPDK documentation seems to imply this:
>
> 36.2. Features and Limitations of VMXNET3 PMD
>
> In release 1.6.0, the VMXNET3 PMD provides the basic functionality of
> packet reception and transmission. There are several options available
> for filtering packets at VMXNET3 device level including:
>
> 1. *MAC Address based filtering*:
> * Unicast, Broadcast, All Multicast modes - SUPPORTED BY DEFAULT
> * Multicast with Multicast Filter table - NOT SUPPORTED
> * Promiscuous mode - SUPPORTED
> * *RSS based load balancing between queues - SUPPORTED*
>
Is this an expected limitation? One could argue that it's not true RSS
support if this is the case.
Thanks,
Jay Miller
--
Jay Miller | Tech Lead | Mobile: +1.781.258.7446
Oracle Communications Global Business Unit
100 Crosby Drive | Bedford, MA 01730
^ permalink raw reply [flat|nested] 7+ messages in thread
* [dpdk-users] Support for more RSS hash types in vmxnet3 2018-06-21 14:03 [dpdk-users] vmxnet3 RSS implementation Jay Miller @ 2018-08-21 17:57 ` Jay Miller 2018-08-21 18:22 ` Stephen Hemminger 2018-08-22 9:55 ` Ferruh Yigit 0 siblings, 2 replies; 7+ messages in thread From: Jay Miller @ 2018-08-21 17:57 UTC (permalink / raw) To: users It's clear that the vmxnet3 driver (even as of 18.08) supports just a subset of RSS hash types: #define VMXNET3_RSS_OFFLOAD_ALL ( \ ETH_RSS_IPV4 | \ ETH_RSS_NONFRAG_IPV4_TCP | \ ETH_RSS_IPV6 | \ ETH_RSS_NONFRAG_IPV6_TCP) Are there plans to add support for other hash types (like ETH_RSS_NONFRAG_IPV4_UDP), or is this an architectural limitation of vmxnet3? The documentation could be more explicit about these limitations: >> >> 36.2. Features and Limitations of VMXNET3 PMD >> >> In release 1.6.0, the VMXNET3 PMD provides the basic functionality of >> packet reception and transmission. There are several options >> available for filtering packets at VMXNET3 device level including: >> >> 1. *MAC Address based filtering*: >> * Unicast, Broadcast, All Multicast modes - SUPPORTED BY DEFAULT >> * Multicast with Multicast Filter table - NOT SUPPORTED >> * Promiscuous mode - SUPPORTED >> * *RSS based load balancing between queues - SUPPORTED* >> > Thanks, J -- Jay Miller | Mobile: +1.781.258.7446 Oracle Communications Global Business Unit 100 Crosby Drive | Bedford, MA 01730 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-users] Support for more RSS hash types in vmxnet3 2018-08-21 17:57 ` [dpdk-users] Support for more RSS hash types in vmxnet3 Jay Miller @ 2018-08-21 18:22 ` Stephen Hemminger 2018-08-22 9:55 ` Ferruh Yigit 1 sibling, 0 replies; 7+ messages in thread From: Stephen Hemminger @ 2018-08-21 18:22 UTC (permalink / raw) To: Jay Miller; +Cc: users On Tue, 21 Aug 2018 13:57:08 -0400 Jay Miller <jay.miller@oracle.com> wrote: > It's clear that the vmxnet3 driver (even as of 18.08) supports just a > subset of RSS hash types: > > #define VMXNET3_RSS_OFFLOAD_ALL ( \ > ETH_RSS_IPV4 | \ > ETH_RSS_NONFRAG_IPV4_TCP | \ > ETH_RSS_IPV6 | \ > ETH_RSS_NONFRAG_IPV6_TCP) > > Are there plans to add support for other hash types (like > ETH_RSS_NONFRAG_IPV4_UDP), or is this an architectural limitation of > vmxnet3? Did you test, I suspect that VMWare supports that already. The values in the API to the host are: /* value of RxCompDesc.rssType */ enum { VMXNET3_RCD_RSS_TYPE_NONE = 0, VMXNET3_RCD_RSS_TYPE_IPV4 = 1, VMXNET3_RCD_RSS_TYPE_TCPIPV4 = 2, VMXNET3_RCD_RSS_TYPE_IPV6 = 3, VMXNET3_RCD_RSS_TYPE_TCPIPV6 = 4, }; > The documentation could be more explicit about these limitations: > > >> > >> 36.2. Features and Limitations of VMXNET3 PMD > >> > >> In release 1.6.0, the VMXNET3 PMD provides the basic functionality of > >> packet reception and transmission. There are several options > >> available for filtering packets at VMXNET3 device level including: > >> > >> 1. *MAC Address based filtering*: > >> * Unicast, Broadcast, All Multicast modes - SUPPORTED BY DEFAULT > >> * Multicast with Multicast Filter table - NOT SUPPORTED > >> * Promiscuous mode - SUPPORTED > >> * *RSS based load balancing between queues - SUPPORTED* > >> > > > > Thanks, > J > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-users] Support for more RSS hash types in vmxnet3 2018-08-21 17:57 ` [dpdk-users] Support for more RSS hash types in vmxnet3 Jay Miller 2018-08-21 18:22 ` Stephen Hemminger @ 2018-08-22 9:55 ` Ferruh Yigit 2018-09-13 22:44 ` Yong Wang 1 sibling, 1 reply; 7+ messages in thread From: Ferruh Yigit @ 2018-08-22 9:55 UTC (permalink / raw) To: Jay Miller, users, Yong Wang On 8/21/2018 6:57 PM, Jay Miller wrote: > It's clear that the vmxnet3 driver (even as of 18.08) supports just a > subset of RSS hash types: > > #define VMXNET3_RSS_OFFLOAD_ALL ( \ > ETH_RSS_IPV4 | \ > ETH_RSS_NONFRAG_IPV4_TCP | \ > ETH_RSS_IPV6 | \ > ETH_RSS_NONFRAG_IPV6_TCP) > > Are there plans to add support for other hash types (like > ETH_RSS_NONFRAG_IPV4_UDP), or is this an architectural limitation of > vmxnet3? Hi Yong, Can you please double check if the driver reports all supported hash functions correctly. On v18.08, the RSS hf request from application changed from best effort to strict requirement, meaning if an application request a hash function but driver doesn't report it as supported API will return an error, that is why it is important for PMD to report supported hf properly. Thanks, ferruh > > The documentation could be more explicit about these limitations: > >>> >>> 36.2. Features and Limitations of VMXNET3 PMD >>> >>> In release 1.6.0, the VMXNET3 PMD provides the basic functionality of >>> packet reception and transmission. There are several options >>> available for filtering packets at VMXNET3 device level including: >>> >>> 1. *MAC Address based filtering*: >>> * Unicast, Broadcast, All Multicast modes - SUPPORTED BY DEFAULT >>> * Multicast with Multicast Filter table - NOT SUPPORTED >>> * Promiscuous mode - SUPPORTED >>> * *RSS based load balancing between queues - SUPPORTED* >>> >> > > Thanks, > J > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-users] Support for more RSS hash types in vmxnet3 2018-08-22 9:55 ` Ferruh Yigit @ 2018-09-13 22:44 ` Yong Wang 2019-03-18 13:58 ` Iain Barker 0 siblings, 1 reply; 7+ messages in thread From: Yong Wang @ 2018-09-13 22:44 UTC (permalink / raw) To: Ferruh Yigit, Jay Miller, users -----Original Message----- From: Ferruh Yigit <ferruh.yigit@intel.com> Date: Wednesday, August 22, 2018 at 2:55 AM To: Jay Miller <jay.miller@oracle.com>, "users@dpdk.org" <users@dpdk.org>, Yong Wang <yongwang@vmware.com> Subject: Re: [dpdk-users] Support for more RSS hash types in vmxnet3 > On 8/21/2018 6:57 PM, Jay Miller wrote: >> It's clear that the vmxnet3 driver (even as of 18.08) supports just a >> subset of RSS hash types: >> >> #define VMXNET3_RSS_OFFLOAD_ALL ( \ >> ETH_RSS_IPV4 | \ >> ETH_RSS_NONFRAG_IPV4_TCP | \ >> ETH_RSS_IPV6 | \ >> ETH_RSS_NONFRAG_IPV6_TCP) >> >> Are there plans to add support for other hash types (like >> ETH_RSS_NONFRAG_IPV4_UDP), or is this an architectural limitation of >> vmxnet3? > Hi Yong, > Can you please double check if the driver reports all supported hash functions > correctly. > On v18.08, the RSS hf request from application changed from best effort to > strict requirement, meaning if an application request a hash function but driver > doesn't report it as supported API will return an error, that is why it is > important for PMD to report supported hf properly. > Thanks, > ferruh That's pretty much all the hash types supported by vmxnet3 by default up to version 3. With version 4, UDP RSS will be supported but it's only supported on certain version of ESX. Since v4 driver is not out yet, current VMXNET3_RSS_OFFLOAD_ALL should be good. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-users] Support for more RSS hash types in vmxnet3 2018-09-13 22:44 ` Yong Wang @ 2019-03-18 13:58 ` Iain Barker 2019-03-18 20:09 ` Yong Wang 0 siblings, 1 reply; 7+ messages in thread From: Iain Barker @ 2019-03-18 13:58 UTC (permalink / raw) To: Yong Wang, Ferruh Yigit, Jay Miller, users On 8/21/2018 6:57 PM, Jay Miller wrote: > It's clear that the vmxnet3 driver (even as of 18.08) supports just a > subset of RSS hash types: > > #define VMXNET3_RSS_OFFLOAD_ALL ( \ > ETH_RSS_IPV4 | \ > ETH_RSS_NONFRAG_IPV4_TCP | \ > ETH_RSS_IPV6 | \ > ETH_RSS_NONFRAG_IPV6_TCP) > > Are there plans to add support for other hash types (like > ETH_RSS_NONFRAG_IPV4_UDP), or is this an architectural limitation of > vmxnet3? On August 22, 2018 at 2:55 AM, Ferruh Yigit wrote: > Hi Yong, > > Can you please double check if the driver reports all supported hash functions > correctly. > > On v18.08, the RSS hf request from application changed from best effort to > strict requirement, meaning if an application request a hash function but driver > doesn't report it as supported API will return an error, that is why it is > important for PMD to report supported hf properly. > > Thanks, > ferruh On September 13, 2018 6:44 PM, Yong Wang wrote: > That's pretty much all the hash types supported by vmxnet3 by default up to version 3. > With version 4, UDP RSS will be supported but it's only supported on certain version of ESX. > Since v4 driver is not out yet, current VMXNET3_RSS_OFFLOAD_ALL should be good. Ferruh/Yong, I notice that ESXi 6.7 has been released for some months now with support for VMXNET3 version 4 including with RSS for UDP https://docs.vmware.com/en/vSphere/6.7/solutions/vSphere-6.7.2cd6d2a77980cc623caa6062f3c89362/GUID-C500585C0560D28B71180A40A4767C57.html I'm surprised this wasn't already present in DPDK 19.02 given how long 6.7 has been available already. Is it just a matter of changing the definition of VMXNET3_RSS_OFFLOAD_ALL in the PMD to support this, or are other changes required? thanks. Iain ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-users] Support for more RSS hash types in vmxnet3 2019-03-18 13:58 ` Iain Barker @ 2019-03-18 20:09 ` Yong Wang 0 siblings, 0 replies; 7+ messages in thread From: Yong Wang @ 2019-03-18 20:09 UTC (permalink / raw) To: Iain Barker, Ferruh Yigit, Jay Miller, users -----Original Message----- From: Iain Barker <iain.barker@oracle.com> on behalf of Iain Barker <iain.barker@oracle.com> Date: Monday, March 18, 2019 at 6:58 AM To: Yong Wang <yongwang@vmware.com>, Ferruh Yigit <ferruh.yigit@intel.com>, Jay Miller <jay.miller@oracle.com>, "users@dpdk.org" <users@dpdk.org> Subject: RE: [dpdk-users] Support for more RSS hash types in vmxnet3 On 8/21/2018 6:57 PM, Jay Miller wrote: > It's clear that the vmxnet3 driver (even as of 18.08) supports just a > subset of RSS hash types: > > #define VMXNET3_RSS_OFFLOAD_ALL ( \ > ETH_RSS_IPV4 | \ > ETH_RSS_NONFRAG_IPV4_TCP | \ > ETH_RSS_IPV6 | \ > ETH_RSS_NONFRAG_IPV6_TCP) > > Are there plans to add support for other hash types (like > ETH_RSS_NONFRAG_IPV4_UDP), or is this an architectural limitation of > vmxnet3? On August 22, 2018 at 2:55 AM, Ferruh Yigit wrote: > Hi Yong, > > Can you please double check if the driver reports all supported hash functions > correctly. > > On v18.08, the RSS hf request from application changed from best effort to > strict requirement, meaning if an application request a hash function but driver > doesn't report it as supported API will return an error, that is why it is > important for PMD to report supported hf properly. > > Thanks, > ferruh On September 13, 2018 6:44 PM, Yong Wang wrote: > That's pretty much all the hash types supported by vmxnet3 by default up to version 3. > With version 4, UDP RSS will be supported but it's only supported on certain version of ESX. > Since v4 driver is not out yet, current VMXNET3_RSS_OFFLOAD_ALL should be good. Ferruh/Yong, I notice that ESXi 6.7 has been released for some months now with support for VMXNET3 version 4 including with RSS for UDP https://docs.vmware.com/en/vSphere/6.7/solutions/vSphere-6.7.2cd6d2a77980cc623caa6062f3c89362/GUID-C500585C0560D28B71180A40A4767C57.html I'm surprised this wasn't already present in DPDK 19.02 given how long 6.7 has been available already. Is it just a matter of changing the definition of VMXNET3_RSS_OFFLOAD_ALL in the PMD to support this, or are other changes required? thanks. Iain Iain, We do plan to upstream the change to support the new RSS types in the near future. Currently it's still under internal testing. Thanks, Yong ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-03-18 20:10 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-06-21 14:03 [dpdk-users] vmxnet3 RSS implementation Jay Miller 2018-08-21 17:57 ` [dpdk-users] Support for more RSS hash types in vmxnet3 Jay Miller 2018-08-21 18:22 ` Stephen Hemminger 2018-08-22 9:55 ` Ferruh Yigit 2018-09-13 22:44 ` Yong Wang 2019-03-18 13:58 ` Iain Barker 2019-03-18 20:09 ` Yong Wang
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).