• Eric Dumazet's avatar
    virtio_net: add gro capability · 0fbd050a
    Eric Dumazet authored
    Straightforward patch to add GRO processing to virtio_net.
    
    napi_complete_done() usage allows more aggressive aggregation,
    opted-in by setting /sys/class/net/xxx/gro_flush_timeout
    
    Tested:
    
    Setting /sys/class/net/xxx/gro_flush_timeout to 1000 nsec,
    Rick Jones reported following results.
    
    One VM of each on a pair of OpenStack compute nodes with E5-2650Lv3 CPUs
    and Intel 82599ES-based NICs. So, two "before" and two "after" VMs.
    The OpenStack compute nodes were running OpenStack Kilo, with VxLAN
    encapsulation being used through OVS so no GRO coming-up the host
    stack.  The compute nodes themselves were running a 3.14-based kernel.
    
    Single-stream netperf, CPU utilizations and thus service demands are
    based on intra-guest reported CPU.
    
    Throughput Mbit/s, bigger is better
            Min     Median  Average Max
    4.2.0-rc3+      1364    1686    1678    1938
    4.2.0-rc3+flush1k       1824    2269    2275    2647
    
    Send Service Demand, smaller is better
            Min     Median  Average Max
    4.2.0-rc3+      0.236   0.558   0.524   0.802
    4.2.0-rc3+flush1k       0.176   0.503   0.471   0.738
    
    Receive Service Demand, smaller is better.
            Min     Median  Average Max
    4.2.0-rc3+      1.906   2.188   2.191   2.531
    4.2.0-rc3+flush1k       0.448   0.529   0.533   0.692
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Tested-by: default avatarRick Jones <rick.jones2@hp.com>
    Cc: "Michael S. Tsirkin" <mst@redhat.com>
    Acked-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    0fbd050a
virtio_net.c 52 KB