netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Duyck <alexander.duyck@gmail.com>
To: Hisashi T Fujinaka <htodd@twofifty.com>
Cc: Alexander Duyck <alexander.h.duyck@redhat.com>,
	intel-wired-lan@lists.osuosl.org, jeffrey.t.kirsher@intel.com,
	netdev@vger.kernel.org, mike@cchtml.com
Subject: Re: [PATCH] e1000e: Cleanup handling of VLAN_HLEN as a part of max frame size
Date: Wed, 08 Apr 2015 16:13:46 -0700	[thread overview]
Message-ID: <5525B62A.1050601@gmail.com> (raw)
In-Reply-To: <alpine.NEB.2.11.1504081602260.3388@chris.i8u.org>

On 04/08/2015 04:05 PM, Hisashi T Fujinaka wrote:
> On Wed, 8 Apr 2015, Alexander Duyck wrote:
>
>> On 04/08/2015 02:15 PM, Hisashi T Fujinaka wrote:
>>> On Wed, 8 Apr 2015, Alexander Duyck wrote:
>>>
>>>> Fixes: c751a3d58cf2d ("e1000e: Correctly include VLAN_HLEN when
>>>> changing interface MTU")
>>>> Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com>
>>>> ---
>>>>
>>>> I have only build tested this though I am 99% sure the fixes here are
>>>> correct.  This patch should fix issues on 82573 and ich8 w/ setting
>>>> an MTU
>>>> of 1500, and for the PCH series w/ setting an MTU of 9000.
>>>
>>> Since the original fix was something submitted by Red Hat, can you
>>> check
>>> that you're not re-breaking whatever it was that Red Hat thought they
>>> were fixing?
>>
>> The original issue is referenced in the patch that this fixes.  The
>> problem was that the VLAN header wasn't being considered when computing
>> the Rx buffer size, so you could change the MTU to 1504 and the if
>> statement at the end of e1000_change_mtu was still using a 1522 Rx
>> buffer size and max frame even though we had technically just configured
>> things for 1526.
>>
>> The updated logic is correctly taking the VLAN header into account so if
>> you bump the MTU 1504 it will switch over to jumbo frames mode w/ 2K
>> buffers.
>>
>> The bit I am fixing is that there were several spots including the
>> backend value for max_hw_frame_size that didn't take VLAN header length
>> into account.  There were cases where 1500 MTU was being treated as a
>> jumbo frame, or we were coming up 4 bytes shy as in the pch2, ich8, and
>> 82573 e1000_info structures.
>
> The max_hw_frame_size should still be limited to 9018.

It is but it isn't.  If you look in e1000_change_mtu you will find the
node about "Jumbo frame workaround on 82579 and newer requires CRC be
stripped".  With that being the case I'm wondering if the 9018 doesn't
include CRC but instead includes VLAN header.  So as a result the actual
hardware is processing frames that are 9022 in size, but the buffer only
ever receives at most 9018 since the CRC is stripped.

I suspect that is why the Windows driver has had no issues reporting
support for a size of 9014 (excluding VLAN and CRC) on these parts and
hasn't had any issues.

- Alex

  reply	other threads:[~2015-04-08 23:13 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-06 16:38 e1000e max frame calculation Michael Cronenworth
2015-04-06 18:38 ` Alexander Duyck
2015-04-06 21:45 ` Michael Cronenworth
2015-04-06 23:17   ` Alexander Duyck
2015-04-07  3:47     ` Hisashi T Fujinaka
2015-04-08 17:17       ` Alexander Duyck
2015-04-08 17:25         ` Hisashi T Fujinaka
2015-04-08 21:02           ` [PATCH] e1000e: Cleanup handling of VLAN_HLEN as a part of max frame size Alexander Duyck
2015-04-08 21:15             ` Hisashi T Fujinaka
2015-04-08 22:58               ` Alexander Duyck
2015-04-08 23:05                 ` Hisashi T Fujinaka
2015-04-08 23:13                   ` Alexander Duyck [this message]
2015-04-09  0:10                     ` Hisashi T Fujinaka
2015-04-09  0:26                       ` Hisashi T Fujinaka
2015-04-09  1:19                         ` Alexander Duyck
2015-04-09  6:17                           ` [Intel-wired-lan] " Templeman, Chaim
2015-04-09 15:51                             ` Alexander Duyck
2015-04-13 18:26                               ` Templeman, Chaim
2015-04-09  0:01             ` Jeff Kirsher
2015-04-09  4:48             ` Michael Cronenworth
2015-04-21  2:38             ` [Intel-wired-lan] " Brown, Aaron F

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=5525B62A.1050601@gmail.com \
    --to=alexander.duyck@gmail.com \
    --cc=alexander.h.duyck@redhat.com \
    --cc=htodd@twofifty.com \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=jeffrey.t.kirsher@intel.com \
    --cc=mike@cchtml.com \
    --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: link
Be 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).