diff options
author | 2016-06-30 14:45:36 +0800 | |
---|---|---|
committer | 2016-07-01 05:32:17 -0400 | |
commit | 1576d98605998fb59d121a39581129e134217182 (patch) | |
tree | 20949c1b4243a0e746570b3f08483b40c183ae57 /kernel/bpf/arraymap.c | |
parent | net: introduce NETDEV_CHANGE_TX_QUEUE_LEN (diff) | |
download | linux-rng-1576d98605998fb59d121a39581129e134217182.tar.xz linux-rng-1576d98605998fb59d121a39581129e134217182.zip |
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>
Diffstat (limited to 'kernel/bpf/arraymap.c')
0 files changed, 0 insertions, 0 deletions