vhost_net: stop polling socket during rx processing
authorJason Wang <jasowang@redhat.com>
Wed, 1 Jun 2016 05:56:33 +0000 (01:56 -0400)
committerDavid S. Miller <davem@davemloft.net>
Tue, 7 Jun 2016 21:46:11 +0000 (14:46 -0700)
commit8241a1e466cd56e6c10472cac9c1ad4e54bc65db
tree974e57de809b0262a7a131a9494a4d8dfec33b3e
parentaaa76724d7ece87eb5f66e02fac9da036dd20667
vhost_net: stop polling socket during rx processing

We don't stop rx polling socket during rx processing, this will lead
unnecessary wakeups from under layer net devices (E.g
sock_def_readable() form tun). Rx will be slowed down in this
way. This patch avoids this by stop polling socket during rx
processing. A small drawback is that this introduces some overheads in
light load case because of the extra start/stop polling, but single
netperf TCP_RR does not notice any change. In a super heavy load case,
e.g using pktgen to inject packet to guest, we get about ~8.8%
improvement on pps:

before: ~1240000 pkt/s
after:  ~1350000 pkt/s

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>
drivers/vhost/net.c