mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-09 23:39:18 +00:00
virtio_net: exploit napi_complete_done() return value
Since commit 364b6055738b ("net: busy-poll: return busypolling status to drivers"), napi_complete_done() returns a boolean that can be used by drivers to conditionally rearm interrupts. This patch changes virtio_net to use this boolean to avoid a bit of overhead for busy-poll users. Jason reports about 1.1% improvement for 1 byte TCP_RR (burst 100). Signed-off-by: Eric Dumazet <edumazet@google.com> Acked-by: Jason Wang <jasowang@redhat.com> Cc: Michael S. Tsirkin <mst@redhat.com> Cc: Willem de Bruijn <willemb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a076d1bdc6
commit
4d6308aac3
@ -1012,11 +1012,12 @@ static int virtnet_poll(struct napi_struct *napi, int budget)
|
||||
/* Out of packets? */
|
||||
if (received < budget) {
|
||||
r = virtqueue_enable_cb_prepare(rq->vq);
|
||||
napi_complete_done(napi, received);
|
||||
if (unlikely(virtqueue_poll(rq->vq, r)) &&
|
||||
napi_schedule_prep(napi)) {
|
||||
virtqueue_disable_cb(rq->vq);
|
||||
__napi_schedule(napi);
|
||||
if (napi_complete_done(napi, received)) {
|
||||
if (unlikely(virtqueue_poll(rq->vq, r)) &&
|
||||
napi_schedule_prep(napi)) {
|
||||
virtqueue_disable_cb(rq->vq);
|
||||
__napi_schedule(napi);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user