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> Subject: Re: [Intel-wired-lan] i40e X722 RSS problem with NAT-Traversal IPsec packets Date: Thu, 16 May 2019 10:10:55 -0700 [thread overview] Message-ID: <CAKgT0UdPDyCBsShQVwwE5C8fBKkMcfS6_S5m3T7JP-So9fzVgA@mail.gmail.com> (raw) In-Reply-To: <20190514163443.glfjva3ofqcy7lbg@csclub.uwaterloo.ca> [-- Attachment #1: Type: text/plain, Size: 4225 bytes --] On Tue, May 14, 2019 at 9:34 AM Lennart Sorensen <lsorense@csclub.uwaterloo.ca> wrote: > > On Mon, May 13, 2019 at 12:04:00PM -0700, Alexander Duyck wrote: > > So I recreated the first packet you listed via text2pcap, replayed it > > on my test system via tcpreplay, updated my configuration to 12 > > queues, and used the 2 hash keys you listed. I ended up seeing the > > traffic bounce between queues 4 and 8 with an X710 I had to test with > > when I was changing the key value. > > > > Unfortunately I don't have an X722 to test with. I'm suspecting that > > there may be some difference in the RSS setup, specifically it seems > > like values in the PFQF_HENA register were changed for the X722 part > > that may be causing the issues we are seeing. > > > > I will see if I can get someone from the networking division to take a > > look at this since I don't have access to the part in question nor a > > datasheet for it so I am not sure if I can help much more. > > Great. I hope someone can figure this out because it is working very > badly so far. > > -- > Len Sorensen So I was sent a link to the datasheet for the part and I have a working theory that what we may be seeing is a problem in the firmware for the part. Can you try applying the attached patch and send the output from the dmesg? Specifically I would want anything with the name "i40e" in it. What I am looking for is something like the following: [ 294.383416] i40e 0000:81:00.1: fw 5.0.40043 api 1.5 nvm 5.04 0x800024cd 0.0.0 [ 294.675039] i40e 0000:81:00.1: MAC address: 68:05:ca:37:c7:99 [ 294.685941] i40e 0000:81:00.1: flow_type: 63 input_mask:0x0000000000004000 [ 294.686056] i40e 0000:81:00.1: flow_type: 46 input_mask:0x0007fff800000000 [ 294.686170] i40e 0000:81:00.1: flow_type: 45 input_mask:0x0007fff800000000 [ 294.686284] i40e 0000:81:00.1: flow_type: 44 input_mask:0x0007ffff80000000 [ 294.686399] i40e 0000:81:00.1: flow_type: 43 input_mask:0x0007fffe00000000 [ 294.686513] i40e 0000:81:00.1: flow_type: 41 input_mask:0x0007fffe00000000 [ 294.686628] i40e 0000:81:00.1: flow_type: 36 input_mask:0x0001801800000000 [ 294.686743] i40e 0000:81:00.1: flow_type: 35 input_mask:0x0001801800000000 [ 294.686858] i40e 0000:81:00.1: flow_type: 34 input_mask:0x0001801f80000000 [ 294.686973] i40e 0000:81:00.1: flow_type: 33 input_mask:0x0001801e00000000 [ 294.687087] i40e 0000:81:00.1: flow_type: 31 input_mask:0x0001801e00000000 [ 294.691906] i40e 0000:81:00.1 ens5f1: renamed from eth0 [ 294.711173] i40e 0000:81:00.1 ens5f1: NIC Link is Up, 10 Gbps Full Duplex, Flow Control: None [ 294.759061] i40e 0000:81:00.1: PCI-Express: Speed 8.0GT/s Width x8 [ 294.863363] i40e 0000:81:00.1: Features: PF-id[1] VFs: 32 VSIs: 34 QP: 32 RSS FD_ATR FD_SB NTUPLE VxLAN Geneve PTP VEPA With that we can tell what flow types are enabled, and what input fields are enabled for each flow type. My suspicion is that we may see the two new types added to X722 for UDP, 29 and 30, may not match type 31 which is the current flow type supported on the X710. I have included a copy inline below in case the patch is stripped, however I suspect it will not apply cleanly as the mail client I am using usually ends up causing white space mangling by replacing tabs with spaces. diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index 65c2b9d2652b..0c93859f8184 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -10998,6 +10998,15 @@ static int i40e_pf_config_rss(struct i40e_pf *pf) ((u64)i40e_read_rx_ctl(hw, I40E_PFQF_HENA(1)) << 32); hena |= i40e_pf_get_default_rss_hena(pf); + for (ret = 64; ret--;) { + if (!(hena & (1ull << ret))) + continue; + dev_info(&pf->pdev->dev, "flow_type: %d input_mask:0x%08x%08x\n", + ret, + i40e_read_rx_ctl(hw, I40E_GLQF_HASH_INSET(1, ret)), + i40e_read_rx_ctl(hw, I40E_GLQF_HASH_INSET(0, ret))); + } + i40e_write_rx_ctl(hw, I40E_PFQF_HENA(0), (u32)hena); i40e_write_rx_ctl(hw, I40E_PFQF_HENA(1), (u32)(hena >> 32)); [-- Attachment #2: i40e-debug-hash-inputs.patch --] [-- Type: text/x-patch, Size: 999 bytes --] i40e: Debug hash inputs From: Alexander Duyck <alexander.h.duyck@linux.intel.com> --- drivers/net/ethernet/intel/i40e/i40e_main.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index 65c2b9d2652b..0c93859f8184 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -10998,6 +10998,15 @@ static int i40e_pf_config_rss(struct i40e_pf *pf) ((u64)i40e_read_rx_ctl(hw, I40E_PFQF_HENA(1)) << 32); hena |= i40e_pf_get_default_rss_hena(pf); + for (ret = 64; ret--;) { + if (!(hena & (1ull << ret))) + continue; + dev_info(&pf->pdev->dev, "flow_type: %d input_mask:0x%08x%08x\n", + ret, + i40e_read_rx_ctl(hw, I40E_GLQF_HASH_INSET(1, ret)), + i40e_read_rx_ctl(hw, I40E_GLQF_HASH_INSET(0, ret))); + } + i40e_write_rx_ctl(hw, I40E_PFQF_HENA(0), (u32)hena); i40e_write_rx_ctl(hw, I40E_PFQF_HENA(1), (u32)(hena >> 32));
next prev parent reply other threads:[~2019-05-16 17:11 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 [this message] 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 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=CAKgT0UdPDyCBsShQVwwE5C8fBKkMcfS6_S5m3T7JP-So9fzVgA@mail.gmail.com \ --to=alexander.duyck@gmail.com \ --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).