1
0
Fork 0
alistair23-linux/drivers/vhost
Jason Wang 1576d98605 tun: switch to use skb array for tx
We used to queue tx packets in sk_receive_queue, this is less
efficient since it requires spinlocks to synchronize between producer
and consumer.

This patch tries to address this by:

- switch from sk_receive_queue to a skb_array, and resize it when
  tx_queue_len was changed.
- introduce a new proto_ops peek_len which was used for peeking the
  skb length.
- implement a tun version of peek_len for vhost_net to use and convert
  vhost_net to use peek_len if possible.

Pktgen test shows about 15.3% improvement on guest receiving pps for small
buffers:

Before: ~1300000pps
After : ~1500000pps

Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-07-01 05:32:17 -04:00
..
Kconfig vhost: cross-endian support for legacy devices 2015-06-01 15:48:55 +02:00
Makefile vhost: Make vhost a separate module 2013-07-07 17:33:44 +03:00
net.c tun: switch to use skb array for tx 2016-07-01 05:32:17 -04:00
scsi.c target: make close_session optional 2016-05-10 01:19:26 -07:00
test.c vhost: rename vhost_init_used() 2016-03-02 17:02:04 +02:00
test.h vhost test module 2010-12-09 16:00:21 +02:00
vhost.c vhost_net: basic polling support 2016-03-11 02:18:53 +02:00
vhost.h vhost_net: basic polling support 2016-03-11 02:18:53 +02:00
vringh.c vringh: update for virtio 1.0 APIs 2014-12-15 23:49:28 +02:00