On 4/5/06, Ben Greear [EMAIL PROTECTED] wrote:
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.)
So you are sayiing that you'd be willing to copy real_dev's
features flags when creating a vlan? Great! Unfortunately,
I know nothing about bridges. How would this dynamic logic
work?
We would also need to catch ethtool updates to
real_dev's features flags, so that ethtook -K would work as expected
on vlan devices. Or perhaps the dynamic logic to deal with
vlans on top of bridges would be able to deal with it.
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...
Yes, I think you are correct, and it should not matter. i was just grasping
at straws.
Thank you,
Drew
-
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