• Tonghao Zhang's avatar
    net: vhost: add rx busy polling in tx path · 441abde4
    Tonghao Zhang authored
    This patch improves the guest receive performance.
    On the handle_tx side, we poll the sock receive queue at the
    same time. handle_rx do that in the same way.
    
    We set the poll-us=100us and use the netperf to test throughput
    and mean latency. When running the tests, the vhost-net kthread
    of that VM, is alway 100% CPU. The commands are shown as below.
    
    Rx performance is greatly improved by this patch. There is not
    notable performance change on tx with this series though. This
    patch is useful for bi-directional traffic.
    
    netperf -H IP -t TCP_STREAM -l 20 -- -O "THROUGHPUT, THROUGHPUT_UNITS, MEAN_LATENCY"
    
    Topology:
    [Host] ->linux bridge -> tap vhost-net ->[Guest]
    
    TCP_STREAM:
    * Without the patch:  19842.95 Mbps, 6.50 us mean latency
    * With the patch:     37598.20 Mbps, 3.43 us mean latency
    Signed-off-by: default avatarTonghao Zhang <xiangxia.m.yue@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    441abde4
net.c 43.4 KB