From: "Kok, Auke" <auke-jan.h.kok@intel.com>
To: Patrick McHardy <kaber@trash.net>
Cc: Auke Kok <auke-jan.h.kok@intel.com>,
jeff@garzik.org, netdev@vger.kernel.org,
e1000-devel@lists.sourceforge.net, "Waskiewicz Jr,
Peter P" <peter.p.waskiewicz.jr@intel.com>
Subject: Re: [PATCH 3/5] e1000e: Allow TSO to trickle down to VLAN device
Date: Thu, 17 Apr 2008 14:45:58 -0700 [thread overview]
Message-ID: <4807C516.90308@intel.com> (raw)
In-Reply-To: <4803903B.1020100@trash.net>
Patrick McHardy wrote:
> Auke Kok wrote:
>> Fix TSO over VLAN's by propagating settings to our VLAN devices.
>>
>
>> @@ -378,8 +381,21 @@ static int e1000_set_tso(struct net_device
>> *netdev, u32 data)
>> } else {
>> netdev->features &= ~NETIF_F_TSO;
>> netdev->features &= ~NETIF_F_TSO6;
>> + /* disable TSO on all VLANs if they're present */
>> + if (!adapter->vlgrp)
>> + goto tso_out;
>> + for (i = 0; i < VLAN_GROUP_ARRAY_LEN; i++) {
>> + v_netdev = vlan_group_get_device(adapter->vlgrp, i);
>> + if (!v_netdev)
>> + continue;
>> +
>> + v_netdev->features &= ~NETIF_F_TSO;
>> + v_netdev->features &= ~NETIF_F_TSO6;
>> + vlan_group_set_device(adapter->vlgrp, i, v_netdev);
>>
>
> What exactly is this supposed to fix? If this simply wants
> to propagate feature changes, I think it should use
> netdev_feat_change and handle that within the VLAN code.
I asked PJ and got this reply:
//
VLAN devices didn't get the parent's feature flags on creation. I went
to fix this in the kernel, people pushed back that some devices couldn't
support both VLAN tag insertion offload and TSO, so I didn't push the
issue. I worked around the issue by copying the flags in the driver.
The downside is when we turn off TSO using ethtool, we need to remove
TSO from all VLAN devices, since the hardware segmenter is no longer
available if the parent device doesn't have it enabled as a feature. We
were seeing stack-based panics with gso_segment(), which was corrected
by removing the TSO flag from all VLAN devices.
I can't seem to find netdev_feat_change anywhere in the kernel, or
variants of that name, so I'm not sure what Patrick is pointing us at.
-PJ
//
next prev parent reply other threads:[~2008-04-17 21:47 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-14 17:05 [PATCH 1/5] e1000e: cleanup several stats issues Auke Kok
2008-04-14 17:06 ` [PATCH 2/5] e1000e: Add interrupt moderation run-time ethtool interface Auke Kok
2008-04-14 19:24 ` Andi Kleen
2008-04-14 19:31 ` Rick Jones
2008-04-14 19:35 ` Jeff Garzik
2008-04-14 19:53 ` Andi Kleen
2008-04-14 20:09 ` Kok, Auke
2008-04-14 17:06 ` [PATCH 3/5] e1000e: Allow TSO to trickle down to VLAN device Auke Kok
2008-04-14 17:11 ` Patrick McHardy
2008-04-17 21:45 ` Kok, Auke [this message]
2008-04-21 14:24 ` Patrick McHardy
2008-04-22 7:46 ` Waskiewicz Jr, Peter P
2008-04-30 0:42 ` Waskiewicz Jr, Peter P
2008-04-30 6:54 ` Patrick McHardy
2008-04-30 6:56 ` Patrick McHardy
2008-04-14 17:06 ` [PATCH 4/5] e1000e: Fix HW Error on es2lan, ARP capture issue by BMC Auke Kok
2008-04-14 17:06 ` [PATCH 5/5] e1000e: lower ring minimum size to 64 Auke Kok
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=4807C516.90308@intel.com \
--to=auke-jan.h.kok@intel.com \
--cc=e1000-devel@lists.sourceforge.net \
--cc=jeff@garzik.org \
--cc=kaber@trash.net \
--cc=netdev@vger.kernel.org \
--cc=peter.p.waskiewicz.jr@intel.com \
/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).