Paolo Abeni
2016-Mar-17 14:44 UTC
[PATCH net-next] virtio_net: replace netdev_alloc_skb_ip_align() with napi_alloc_skb()
This gives small but noticeable rx performance improvement (2-3%) and will allow exploiting future napi improvement. Signed-off-by: Paolo Abeni <pabeni at redhat.com> --- drivers/net/virtio_net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index fb0eae4..49d84e5 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -260,7 +260,7 @@ static struct sk_buff *page_to_skb(struct virtnet_info *vi, p = page_address(page) + offset; /* copy small packet so we can reuse these pages for small data */ - skb = netdev_alloc_skb_ip_align(vi->dev, GOOD_COPY_LEN); + skb = napi_alloc_skb(&rq->napi, GOOD_COPY_LEN); if (unlikely(!skb)) return NULL; -- 1.8.3.1
Venkatesh Srinivas
2016-Mar-18 01:00 UTC
[PATCH net-next] virtio_net: replace netdev_alloc_skb_ip_align() with napi_alloc_skb()
On Thu, Mar 17, 2016 at 7:44 AM, Paolo Abeni <pabeni at redhat.com> wrote:> This gives small but noticeable rx performance improvement (2-3%) > and will allow exploiting future napi improvement. > > Signed-off-by: Paolo Abeni <pabeni at redhat.com> >Worked in my tests, though the performance win was in the noise (+0.6% - +1% bandwidth). What tests did you see a 2-3% win on? Do you think its worth modifying add_recvbuf_small() to use napi_alloc_skb() when called from Rx NAPI (virtnet_receive)? Tested-by: Venkatesh Srinivas <venkateshs at google.com> Thanks, -- vs; -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.linuxfoundation.org/pipermail/virtualization/attachments/20160317/0f394f02/attachment.html>
Venkatesh Srinivas
2016-Mar-18 01:01 UTC
[PATCH net-next] virtio_net: replace netdev_alloc_skb_ip_align() with napi_alloc_skb()
On Thu, Mar 17, 2016 at 7:44 AM, Paolo Abeni <pabeni at redhat.com> wrote:> > This gives small but noticeable rx performance improvement (2-3%) > and will allow exploiting future napi improvement. > > Signed-off-by: Paolo Abeni <pabeni at redhat.com> > ---Worked in my tests, though the performance win was in the noise (+0.6% - +1% bandwidth). What tests did you see a 2-3% win on? Do you think its worth modifying add_recvbuf_small() to use napi_alloc_skb() when called from Rx NAPI (virtnet_receive)? Tested-by: Venkatesh Srinivas <venkateshs at google.com> Thanks, -- vs;
Paolo Abeni
2016-Mar-18 08:21 UTC
[PATCH net-next] virtio_net: replace netdev_alloc_skb_ip_align() with napi_alloc_skb()
On Thu, 2016-03-17 at 18:01 -0700, Venkatesh Srinivas wrote:> On Thu, Mar 17, 2016 at 7:44 AM, Paolo Abeni <pabeni at redhat.com> wrote: > > > > This gives small but noticeable rx performance improvement (2-3%) > > and will allow exploiting future napi improvement. > > > > Signed-off-by: Paolo Abeni <pabeni at redhat.com> > > --- > > Worked in my tests, though the performance win was in the noise (+0.6% > - +1% bandwidth). > What tests did you see a 2-3% win on?I'm doing net2VM tests (i.e. the traffic generator is on a different host) with guest tuned a bit for performance. i.e. cpu pinning, no iptables, no dhclient (yes, that makes a big difference: http://lists.openwall.net/netdev/2013/10/29/5)> Do you think its worth modifying add_recvbuf_small() to use > napi_alloc_skb() when called from > Rx NAPI (virtnet_receive)?Oops, I missed that invocation. Probably that path is not hit in my test. I think it should be really worthy. I'll send a v2. The important thing, more than the current improvement, is allowing the virtio_net driver to leverage future napi allocation improvement (i.e. bulk alloc: http://www.spinics.net/lists/netdev/msg367568.html) which should be a real win. Paolo
Apparently Analagous Threads
- [PATCH net-next] virtio_net: replace netdev_alloc_skb_ip_align() with napi_alloc_skb()
- [net-next v2] virtio_net: replace netdev_alloc_skb_ip_align() with napi_alloc_skb()
- [net-next v2] virtio_net: replace netdev_alloc_skb_ip_align() with napi_alloc_skb()
- [PATCH net-next] virtio_net: replace netdev_alloc_skb_ip_align() with napi_alloc_skb()
- [PATCH] vhost_net: use packet weight for rx handler, too