]> git.baikalelectronics.ru Git - kernel.git/commit
net: vhost: add rx busy polling in tx path
authorTonghao Zhang <xiangxia.m.yue@gmail.com>
Tue, 25 Sep 2018 12:36:52 +0000 (05:36 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 27 Sep 2018 03:25:55 +0000 (20:25 -0700)
commitce84e0fb6f3fadad418be227eece3ab46b21f64d
tree9dac39ae1089553757efab644f8a43315cf7bab3
parent97c1ed9e37a5c281366309eb59fc1c115d65d90d
net: vhost: add rx busy polling in tx path

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: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/vhost/net.c