Andrew Gallatin wrote:
I'm working on a driver for a 10GbE nic. I've just gotten to the point where I
am verifying that 802.1q vlans work without hardware vlan offload. It
seems like
the netdev features flags (NETIF_F_SG|NETIF_F_IP_CSUM|NETIF_F_TSO) are not
being inherited by the vlan device. This leads to very high CPU utilization,
especially when running applications which use sendfile, since it forces data
copies.
I have verified this is the problem by printing the vlan device's features from
the end of register_vlan_device(). If copy real_dev's features to new_dev,
then the performance problems disappear.
This seems logical to me. We might need some dynamic logic to deal
with vlans on top of bridge devices (I believe bridges adjust *their*
capabilities dynamically as devices are added to and removed from the bridge.)
This is especially confusing, since it appears ethtool's -K/-k commands
fall through to the real device. So it appears like the ethX.VLAN dev
has scatter-gather and checksum offload enabled, when actually it
does not.
Am I hitting a weird corner case in having a device which does
checksum/sg/tso and not vlan offload? Will this magically go away if I
implement some vlan hardware assist feature?
I doubt that will matter, but it's possible. DaveM and others know more about
the hardware assist path that I do...
Thanks,
Ben
--
Ben Greear <[EMAIL PROTECTED]>
Candela Technologies Inc http://www.candelatech.com
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html