Thread (1 message) flat view 1 message, 1 author, 2016-06-17

Re: [PATCH net-next V2] tun: introduce tx skb ring

From: David Miller <davem@davemloft.net>
Date: 2016-06-17 00:01:35
Also in: kvm, lkml, netdev

From: Jason Wang <redacted>
Date: Wed, 15 Jun 2016 16:38:17 +0800
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:

- introduce a new mode which will be only enabled with IFF_TX_ARRAY
  set and switch from sk_receive_queue to a fixed size of skb
  array with 256 entries in this mode.
- 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 18% improvement on guest receiving pps for small
buffers:

Before: ~1220000pps
After : ~1440000pps

The reason why I stick to new mode is because:

- though resize is supported by skb array, in multiqueue mode, it's
  not easy to recover from a partial success of queue resizing.
- tx_queue_len is a user visible feature.

Signed-off-by: Jason Wang <redacted>
Michael, can you please review this, especially as this is the first
user of your new infrastructure :-)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help