diff options
author | Jason Wang <jasowang@redhat.com> | 2013-04-10 23:32:21 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-04-11 16:21:57 -0400 |
commit | 4fda830263c52a58bcbaedeb091cbcd421cf4858 (patch) | |
tree | 56f9ef22b39a004cffbbb1ccb802f02239c03b40 /drivers | |
parent | 727f957a3c24c97e228337e876c6c4b2733bdca3 (diff) | |
download | linux-stable-4fda830263c52a58bcbaedeb091cbcd421cf4858.tar.gz linux-stable-4fda830263c52a58bcbaedeb091cbcd421cf4858.tar.bz2 linux-stable-4fda830263c52a58bcbaedeb091cbcd421cf4858.zip |
virtio-net: initialize vlan_features
There's nothing that prevent passing the device features of virtio_net to its
vlan device. So this patch simply passes those to vlan device to benefit from
advanced features.
Netperf shows better sending performance for vlan device since TSO can work on
vlan now.
before:
netperf -H 192.168.5.2
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.5.2 ()
port 0 AF_INET : demo
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 16384 16384 10.00 4162.35
after:
netperf -H 192.168.5.2
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.5.2 ()
port 0 AF_INET : demo
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 16384 16384 10.00 9365.42
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/virtio_net.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index f7d67e8eb1aa..8fdfde6832ab 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -1511,6 +1511,8 @@ static int virtnet_probe(struct virtio_device *vdev) /* (!csum && gso) case will be fixed by register_netdev() */ } + dev->vlan_features = dev->features; + /* Configuration may specify what MAC to use. Otherwise random. */ if (virtio_config_val_len(vdev, VIRTIO_NET_F_MAC, offsetof(struct virtio_net_config, mac), |