DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] buf->hash.rss always empty with i40e
       [not found] <1845201442.14836426.1485600385431.JavaMail.zimbra@ulg.ac.be>
@ 2017-01-28 10:48 ` tom.barbette
  2017-01-30 10:46   ` Bruce Richardson
  0 siblings, 1 reply; 9+ messages in thread
From: tom.barbette @ 2017-01-28 10:48 UTC (permalink / raw)
  To: dev

Hi all,

No matter the number of queues or the ETH_RSS_X parameter the mbuf->hash.rss field is empty using XL710 NICs. The exact same configuration gives me good hash value values with ixgbe/82599 cards.

Any idea? I checked it is the same problem on 2.2 and 16.11. FlowDirector is not used.

Thanks,
Tom

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] buf->hash.rss always empty with i40e
  2017-01-28 10:48 ` [dpdk-dev] buf->hash.rss always empty with i40e tom.barbette
@ 2017-01-30 10:46   ` Bruce Richardson
  2017-01-30 12:59     ` tom.barbette
  0 siblings, 1 reply; 9+ messages in thread
From: Bruce Richardson @ 2017-01-30 10:46 UTC (permalink / raw)
  To: tom.barbette; +Cc: dev

On Sat, Jan 28, 2017 at 11:48:36AM +0100, tom.barbette@ulg.ac.be wrote:
> Hi all,
> 
> No matter the number of queues or the ETH_RSS_X parameter the mbuf->hash.rss field is empty using XL710 NICs. The exact same configuration gives me good hash value values with ixgbe/82599 cards.
> 
> Any idea? I checked it is the same problem on 2.2 and 16.11. FlowDirector is not used.

It's hard to diagnose the exact problem without the full settings you
have tried, but one thing to watch out for that has caught me in the
past is that turning on RSS for IP packets, does not give an RSS value
if there is also TCP or UDP in the packets too. It only applies to IP
packets without TCP or UDP.

Here are settings that work for me with i40e driver:

        static const struct rte_eth_conf port_conf_default = {
                .rxmode = {
                        .mq_mode = ETH_MQ_RX_RSS,
                        .max_rx_pkt_len = ETHER_MAX_LEN
                },
                .rx_adv_conf = {
                        .rss_conf = {
                                .rss_hf = ETH_RSS_IP | ETH_RSS_TCP | ETH_RSS_UDP,
                        }
                }
        };


Regards,
/Bruce

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] buf->hash.rss always empty with i40e
  2017-01-30 10:46   ` Bruce Richardson
@ 2017-01-30 12:59     ` tom.barbette
  2017-02-06  9:25       ` tom.barbette
  0 siblings, 1 reply; 9+ messages in thread
From: tom.barbette @ 2017-01-30 12:59 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

That solved it ! Thanks.

However I think this should be documented somewhere, especially as the behaviour is different between i40e and ixgbe.

Tom


----- Mail original -----
De: "Bruce Richardson" <bruce.richardson@intel.com>
À: "tom barbette" <tom.barbette@ulg.ac.be>
Cc: dev@dpdk.org
Envoyé: Lundi 30 Janvier 2017 11:46:30
Objet: Re: [dpdk-dev] buf->hash.rss always empty with i40e

On Sat, Jan 28, 2017 at 11:48:36AM +0100, tom.barbette@ulg.ac.be wrote:
> Hi all,
> 
> No matter the number of queues or the ETH_RSS_X parameter the mbuf->hash.rss field is empty using XL710 NICs. The exact same configuration gives me good hash value values with ixgbe/82599 cards.
> 
> Any idea? I checked it is the same problem on 2.2 and 16.11. FlowDirector is not used.

It's hard to diagnose the exact problem without the full settings you
have tried, but one thing to watch out for that has caught me in the
past is that turning on RSS for IP packets, does not give an RSS value
if there is also TCP or UDP in the packets too. It only applies to IP
packets without TCP or UDP.

Here are settings that work for me with i40e driver:

        static const struct rte_eth_conf port_conf_default = {
                .rxmode = {
                        .mq_mode = ETH_MQ_RX_RSS,
                        .max_rx_pkt_len = ETHER_MAX_LEN
                },
                .rx_adv_conf = {
                        .rss_conf = {
                                .rss_hf = ETH_RSS_IP | ETH_RSS_TCP | ETH_RSS_UDP,
                        }
                }
        };


Regards,
/Bruce

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] buf->hash.rss always empty with i40e
  2017-01-30 12:59     ` tom.barbette
@ 2017-02-06  9:25       ` tom.barbette
  2017-02-06 12:25         ` Ananyev, Konstantin
  0 siblings, 1 reply; 9+ messages in thread
From: tom.barbette @ 2017-02-06  9:25 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

That also leave the question of how to HASH only on the IP tuple for TCP and UDP packets? The use case is that I want all packets from the same IP src/dst pair to be hashed to the same queue. This cannot be enforced with a complete hash on TCP/UDP fields.

Tom

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] buf->hash.rss always empty with i40e
  2017-02-06  9:25       ` tom.barbette
@ 2017-02-06 12:25         ` Ananyev, Konstantin
  2017-02-06 15:07           ` tom.barbette
  0 siblings, 1 reply; 9+ messages in thread
From: Ananyev, Konstantin @ 2017-02-06 12:25 UTC (permalink / raw)
  To: tom.barbette, Richardson, Bruce; +Cc: dev

Hi Tom,

> 
> That also leave the question of how to HASH only on the IP tuple for TCP and UDP packets? The use case is that I want all packets from the
> same IP src/dst pair to be hashed to the same queue. This cannot be enforced with a complete hash on TCP/UDP fields.
> 

That's for IPv4 only?
It was a while ago, when I looked at it, but as I remember you can achieve that by filling first 64 bits of RSS hash with some meaningful values,
and keeping remaining RSS bits as zeroes.
You probably can give it a quick try with testpmd.

There is a nice article about similar subject:
http://www.ndsl.kaist.edu/~kyoungsoo/papers/TR-symRSS.pdf

Konstantin


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] buf->hash.rss always empty with i40e
  2017-02-06 12:25         ` Ananyev, Konstantin
@ 2017-02-06 15:07           ` tom.barbette
  2017-02-07  1:59             ` Zhang, Helin
  2017-02-08  1:24             ` Wu, Jingjing
  0 siblings, 2 replies; 9+ messages in thread
From: tom.barbette @ 2017-02-06 15:07 UTC (permalink / raw)
  To: Konstantin Ananyev; +Cc: Bruce Richardson, dev, helin.zhang, jingjing.wu

Hi Konstantin,

It seems a little overkill to play with the key... The XL710 seems to be able to hash on IP fields only. It seems only a configuration issue, I'm adding i40e maintainers in CC so they can confirm? I think the i40e driver should configure XL710 to hash on IP fields for TCP and UDP when only ETH_RSS_IP is given instead of hashing to 0. That would mimic ixgbe behaviour btw.

Tom


----- Mail original -----
De: "Konstantin Ananyev" <konstantin.ananyev@intel.com>
À: "tom barbette" <tom.barbette@ulg.ac.be>, "Bruce Richardson" <bruce.richardson@intel.com>
Cc: dev@dpdk.org
Envoyé: Lundi 6 Février 2017 13:25:59
Objet: RE: buf->hash.rss always empty with i40e

Hi Tom,

> 
> That also leave the question of how to HASH only on the IP tuple for TCP and UDP packets? The use case is that I want all packets from the
> same IP src/dst pair to be hashed to the same queue. This cannot be enforced with a complete hash on TCP/UDP fields.
> 

That's for IPv4 only?
It was a while ago, when I looked at it, but as I remember you can achieve that by filling first 64 bits of RSS hash with some meaningful values,
and keeping remaining RSS bits as zeroes.
You probably can give it a quick try with testpmd.

There is a nice article about similar subject:
http://www.ndsl.kaist.edu/~kyoungsoo/papers/TR-symRSS.pdf

Konstantin

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] buf->hash.rss always empty with i40e
  2017-02-06 15:07           ` tom.barbette
@ 2017-02-07  1:59             ` Zhang, Helin
  2017-02-08  1:24             ` Wu, Jingjing
  1 sibling, 0 replies; 9+ messages in thread
From: Zhang, Helin @ 2017-02-07  1:59 UTC (permalink / raw)
  To: tom.barbette, Ananyev, Konstantin; +Cc: Richardson, Bruce, dev, Wu, Jingjing

Hi Tom

Sorry, by default, i40e HW is a bit different from ixgbe HW. It will not treat UDP as an IP packet, when setting hash enable flags.
But, a feature of configuring 'input set' can help to change the default HW behavior. Please refer to testpmd input set part to understand how to use that. Thanks!

Regards,
Helin

-----Original Message-----
From: tom.barbette@ulg.ac.be [mailto:tom.barbette@ulg.ac.be] 
Sent: Monday, February 6, 2017 11:08 PM
To: Ananyev, Konstantin <konstantin.ananyev@intel.com>
Cc: Richardson, Bruce <bruce.richardson@intel.com>; dev@dpdk.org; Zhang, Helin <helin.zhang@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>
Subject: Re: buf->hash.rss always empty with i40e

Hi Konstantin,

It seems a little overkill to play with the key... The XL710 seems to be able to hash on IP fields only. It seems only a configuration issue, I'm adding i40e maintainers in CC so they can confirm? I think the i40e driver should configure XL710 to hash on IP fields for TCP and UDP when only ETH_RSS_IP is given instead of hashing to 0. That would mimic ixgbe behaviour btw.

Tom


----- Mail original -----
De: "Konstantin Ananyev" <konstantin.ananyev@intel.com>
À: "tom barbette" <tom.barbette@ulg.ac.be>, "Bruce Richardson" <bruce.richardson@intel.com>
Cc: dev@dpdk.org
Envoyé: Lundi 6 Février 2017 13:25:59
Objet: RE: buf->hash.rss always empty with i40e

Hi Tom,

> 
> That also leave the question of how to HASH only on the IP tuple for 
> TCP and UDP packets? The use case is that I want all packets from the same IP src/dst pair to be hashed to the same queue. This cannot be enforced with a complete hash on TCP/UDP fields.
> 

That's for IPv4 only?
It was a while ago, when I looked at it, but as I remember you can achieve that by filling first 64 bits of RSS hash with some meaningful values, and keeping remaining RSS bits as zeroes.
You probably can give it a quick try with testpmd.

There is a nice article about similar subject:
http://www.ndsl.kaist.edu/~kyoungsoo/papers/TR-symRSS.pdf

Konstantin


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] buf->hash.rss always empty with i40e
  2017-02-06 15:07           ` tom.barbette
  2017-02-07  1:59             ` Zhang, Helin
@ 2017-02-08  1:24             ` Wu, Jingjing
  2017-02-08 14:19               ` Thomas Monjalon
  1 sibling, 1 reply; 9+ messages in thread
From: Wu, Jingjing @ 2017-02-08  1:24 UTC (permalink / raw)
  To: tom.barbette, Ananyev, Konstantin; +Cc: Richardson, Bruce, dev, Zhang, Helin



> -----Original Message-----
> From: tom.barbette@ulg.ac.be [mailto:tom.barbette@ulg.ac.be]
> Sent: Monday, February 6, 2017 11:08 PM
> To: Ananyev, Konstantin <konstantin.ananyev@intel.com>
> Cc: Richardson, Bruce <bruce.richardson@intel.com>; dev@dpdk.org; Zhang,
> Helin <helin.zhang@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>
> Subject: Re: buf->hash.rss always empty with i40e
> 
> Hi Konstantin,
> 
> It seems a little overkill to play with the key... The XL710 seems to be able to
> hash on IP fields only. It seems only a configuration issue, I'm adding i40e
> maintainers in CC so they can confirm? I think the i40e driver should
> configure XL710 to hash on IP fields for TCP and UDP when only ETH_RSS_IP
> is given instead of hashing to 0. That would mimic ixgbe behaviour btw.
> 
> Tom
> 
Yes, the behavior of XL710 is different from ixgbe on that.
If only enable ETH_RSS_IP, rss will not work on TCP and UDP packets. So you need
To set  ETH_RSS_IP | ETH_RSS_UDP |ETH_RSS_TCP

Thanks
Jingjing

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] buf->hash.rss always empty with i40e
  2017-02-08  1:24             ` Wu, Jingjing
@ 2017-02-08 14:19               ` Thomas Monjalon
  0 siblings, 0 replies; 9+ messages in thread
From: Thomas Monjalon @ 2017-02-08 14:19 UTC (permalink / raw)
  To: Wu, Jingjing
  Cc: dev, tom.barbette, Ananyev, Konstantin, Richardson, Bruce, Zhang, Helin

2017-02-08 01:24, Wu, Jingjing:
> Yes, the behavior of XL710 is different from ixgbe on that.
> If only enable ETH_RSS_IP, rss will not work on TCP and UDP packets. So you need
> To set  ETH_RSS_IP | ETH_RSS_UDP |ETH_RSS_TCP

Where is it documented?

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2017-02-08 14:20 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1845201442.14836426.1485600385431.JavaMail.zimbra@ulg.ac.be>
2017-01-28 10:48 ` [dpdk-dev] buf->hash.rss always empty with i40e tom.barbette
2017-01-30 10:46   ` Bruce Richardson
2017-01-30 12:59     ` tom.barbette
2017-02-06  9:25       ` tom.barbette
2017-02-06 12:25         ` Ananyev, Konstantin
2017-02-06 15:07           ` tom.barbette
2017-02-07  1:59             ` Zhang, Helin
2017-02-08  1:24             ` Wu, Jingjing
2017-02-08 14:19               ` Thomas Monjalon

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).