LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: Alexander Duyck <alexander.duyck@gmail.com> To: Lennart Sorensen <lsorense@csclub.uwaterloo.ca> Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>, LKML <linux-kernel@vger.kernel.org>, Netdev <netdev@vger.kernel.org>, intel-wired-lan <intel-wired-lan@lists.osuosl.org>, e1000-devel@lists.sourceforge.net Subject: Re: [Intel-wired-lan] i40e X722 RSS problem with NAT-Traversal IPsec packets Date: Tue, 21 May 2019 16:22:17 -0700 [thread overview] Message-ID: <CAKgT0UcR3q1maBmJz7xj_i+_oux_6FQxua9DOjXQSZzyq6FhkQ@mail.gmail.com> (raw) In-Reply-To: <20190521175456.zlkiiov5hry2l4q2@csclub.uwaterloo.ca> [-- Attachment #1: Type: text/plain, Size: 3403 bytes --] On Tue, May 21, 2019 at 10:55 AM Lennart Sorensen <lsorense@csclub.uwaterloo.ca> wrote: > > On Tue, May 21, 2019 at 09:51:33AM -0700, Alexander Duyck wrote: > > I think we need to narrow this down a bit more. Let's try forcing the > > lookup table all to one value and see if traffic is still going to > > queue 0. > > > > Specifically what we need to is run the following command to try and > > force all RSS traffic to queue 8, you can verify the result with > > "ethtool -x": > > ethtool -X <iface> weight 0 0 0 0 0 0 0 0 1 > > > > If that works and the IPSec traffic goes to queue 8 then we are likely > > looking at some sort of input issue, either in the parsing or the > > population of things like the input mask that we can then debug > > further. > > > > If traffic still goes to queue 0 then that tells us the output of the > > RSS hash and lookup table are being ignored, this would imply either > > some other filter is rerouting the traffic or is directing us to limit > > the queue index to 0 bits. > > # ethtool -x eth2 > RX flow hash indirection table for eth2 with 12 RX ring(s): > 0: 7 7 7 7 7 7 7 7 > 8: 7 7 7 7 7 7 7 7 > 16: 7 7 7 7 7 7 7 7 > 24: 7 7 7 7 7 7 7 7 > 32: 7 7 7 7 7 7 7 7 > ... > 472: 7 7 7 7 7 7 7 7 > 480: 7 7 7 7 7 7 7 7 > 488: 7 7 7 7 7 7 7 7 > 496: 7 7 7 7 7 7 7 7 > 504: 7 7 7 7 7 7 7 7 > RSS hash key: > 0b:1f:ae:ed:60:04:7d:e5:8a:2b:43:3f:1d:ee:6c:99:89:29:94:b0:25:db:c7:4b:fa:da:4d:3f:e8:cc:bc:00:ad:32:01:d6:1c:30:3f:f8:79:3e:f4:48:04:1f:51:d2:5a:39:f0:90 > root@ECA:~# ethtool --show-priv-flags eth2 > Private flags for eth2: > MFP : off > LinkPolling : off > flow-director-atr: off > veb-stats : off > hw-atr-eviction : on > legacy-rx : off > > All ipsec packets are still hitting queue 0. > > Seems it is completely ignoring RSS for these packets. That is > impressively weird. > > -- > Len Sorensen So we are either using 0 bits of the LUT or we are just not performing hashing because this is somehow being parsed into a type that doesn't support it. I have attached 2 more patches we can test. The first enables hashing on what are called "OAM" packets, The thing is we shouldn't be identifying these packets as "OAM", Operations Administration & Management, as normally it would have to be recognized as a tunnel first and then have a specific flag set in either the GENEVE or VXLAN-GPE header. The second patch will dump the contents of the HREGION registers. They should all be 0, however I thought it best to dump the contents and verify that since I know that these registers can be used to change the traffic class of a given packet type and if we are encountering that it might be moving it to an uninitialized TC which would be using queue offset 0 with 0 bits of the LUT. These last 2 patches would pretty much eliminate the entire RSS subsystem. If we don't see HREGION values set and the OAM flags have no effect I can only assume there is something going on with the parser in the NIC since it isn't recognizing the packet type. Thanks. - Alex [-- Attachment #2: i40e-enable-oam-flag-tunnel.patch --] [-- Type: text/x-patch, Size: 1199 bytes --] i40e: Enable OAM flag tunnel hashing From: Alexander Duyck <alexander.h.duyck@linux.intel.com> Add support for hashing packet types 26 and 27 on X722 adapters. The default input set is supposed to be source outer UDP and VNI. For now all I care about is enabling hashing on this to see if we can get ESP traffic to not hit queue 0 for everything. --- drivers/net/ethernet/intel/i40e/i40e_txrx.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.h b/drivers/net/ethernet/intel/i40e/i40e_txrx.h index 100e92d2982f..ad3e16e8cd7a 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_txrx.h +++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.h @@ -95,7 +95,8 @@ enum i40e_dyn_idx_t { BIT_ULL(I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV4_UDP) | \ BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV6_TCP_SYN_NO_ACK) | \ BIT_ULL(I40E_FILTER_PCTYPE_NONF_UNICAST_IPV6_UDP) | \ - BIT_ULL(I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV6_UDP)) + BIT_ULL(I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV6_UDP) | \ + BIT_ULL(26) | BIT_ULL(27)) /* Added bits for tunnel OAM */ #define i40e_pf_get_default_rss_hena(pf) \ (((pf)->hw_features & I40E_HW_MULTIPLE_TCP_UDP_RSS_PCTYPE) ? \ [-- Attachment #3: i40e-dump-extra-hregion.patch --] [-- Type: text/x-patch, Size: 933 bytes --] i40e: Dump HREGION entries From: Alexander Duyck <alexander.h.duyck@linux.intel.com> --- drivers/net/ethernet/intel/i40e/i40e_main.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index 320562b39686..370f66df4e4f 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -11094,6 +11094,14 @@ static int i40e_pf_config_rss(struct i40e_pf *pf) u64 hena; int ret; + /* These should all be 0, dump them to verify they are */ + for (ret = 8; ret--;) { + reg_val = i40e_read_rx_ctl(hw, I40E_PFQF_HREGION(ret)); + + dev_info(&pf->pdev->dev, + "PFQF_HREGION[%d]: 0x%08x\n", ret, reg_val); + } + /* By default we enable TCP/UDP with IPv4/IPv6 ptypes */ hena = (u64)i40e_read_rx_ctl(hw, I40E_PFQF_HENA(0)) | ((u64)i40e_read_rx_ctl(hw, I40E_PFQF_HENA(1)) << 32);
next prev parent reply other threads:[~2019-05-21 23:22 UTC|newest] Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-05-01 20:52 i40e X722 RSS problem with NAT-Traversal IPsec packets Lennart Sorensen 2019-05-01 22:52 ` [Intel-wired-lan] " Alexander Duyck 2019-05-02 15:11 ` Lennart Sorensen 2019-05-02 17:03 ` Alexander Duyck 2019-05-02 17:16 ` Lennart Sorensen 2019-05-02 17:28 ` Alexander Duyck 2019-05-02 17:55 ` Lennart Sorensen 2019-05-02 18:52 ` Lennart Sorensen 2019-05-02 20:59 ` Alexander Duyck 2019-05-03 15:14 ` Lennart Sorensen 2019-05-03 17:19 ` Alexander Duyck 2019-05-03 20:59 ` Lennart Sorensen 2019-05-13 16:55 ` Lennart Sorensen 2019-05-13 19:04 ` Alexander Duyck 2019-05-14 16:34 ` Lennart Sorensen 2019-05-16 17:10 ` Alexander Duyck 2019-05-16 18:34 ` Lennart Sorensen 2019-05-16 18:37 ` Lennart Sorensen 2019-05-16 23:32 ` Alexander Duyck 2019-05-17 16:42 ` Alexander Duyck 2019-05-17 17:23 ` Lennart Sorensen 2019-05-17 22:20 ` Alexander Duyck 2019-05-21 15:15 ` Lennart Sorensen 2019-05-21 16:51 ` Alexander Duyck 2019-05-21 17:54 ` Lennart Sorensen 2019-05-21 23:22 ` Alexander Duyck [this message] 2019-05-22 14:39 ` Lennart Sorensen 2019-06-07 14:39 ` Lennart Sorensen 2019-06-07 19:32 ` Alexander Duyck 2019-06-07 20:49 ` [E1000-devel] " Hisashi T Fujinaka 2019-06-07 22:08 ` Fujinaka, Todd 2019-06-10 19:01 ` Lennart Sorensen 2020-02-07 21:51 ` Lennart Sorensen
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=CAKgT0UcR3q1maBmJz7xj_i+_oux_6FQxua9DOjXQSZzyq6FhkQ@mail.gmail.com \ --to=alexander.duyck@gmail.com \ --cc=e1000-devel@lists.sourceforge.net \ --cc=intel-wired-lan@lists.osuosl.org \ --cc=jeffrey.t.kirsher@intel.com \ --cc=linux-kernel@vger.kernel.org \ --cc=lsorense@csclub.uwaterloo.ca \ --cc=netdev@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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).