On Wed, Feb 22, 2017 at 10:58:08AM +0800, Jason Wang wrote:
Have you seen my prototype?
On 2017å02æ21æ 22:37, Michael S. Tsirkin wrote:
On Tue, Feb 21, 2017 at 04:46:28PM +0800, Jason Wang wrote:Yes, I think it's more tricky for the case of mergeable buffer:
This patch switch to use build_skb() for small buffer which can haveThanks!
better performance for both TCP and XDP (since we can work at page
before skb creation). It also remove lots of XDP codes since both
mergeable and small buffer use page frag during refill now.
Before | After
XDP_DROP(xdp1) 64B : 11.1Mpps | 14.4Mpps
Tested with xdp1/xdp2/xdp_ip_tx_tunnel and netperf.
Signed-off-by: Jason Wang<jasowang@xxxxxxxxxx>
I had a similar patch for mergeable too, though it's trickier there
as host has a lot of flexibility in sizing buffers.
Looks like a good intermediate step to me.
1) we need reserve NET_SKB_PAD + NET_IP_ALIGN for each buffer, this will
break rx frag coalescing
2) need tailroom for skb_shinfo, so it won't work for all size of packet
It works with qemu in practice,
just needs to cover a bunch of corner cases.
Acked-by: Michael S. Tsirkin<mst@xxxxxxxxxx>