Re: [PATCH v3 4/4] virtio_net: disable cb aggressively
From: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
Date: 2021-05-26 21:22:58
Also in:
lkml, netdev
On Wed, May 26, 2021 at 11:15 AM Eric Dumazet [off-list ref] wrote:
On 5/26/21 10:24 AM, Michael S. Tsirkin wrote:quoted
There are currently two cases where we poll TX vq not in response to a callback: start xmit and rx napi. We currently do this with callbacks enabled which can cause extra interrupts from the card. Used not to be a big issue as we run with interrupts disabled but that is no longer the case, and in some cases the rate of spurious interrupts is so high linux detects this and actually kills the interrupt.
Temporarily disabling interrupts during free_old_xmit_skbs in virtnet_poll_cleantx might reduce the spurious interrupt rate by avoiding an additional Tx interrupt from being scheduled during virtnet_poll_cleantx. It probably does not address all spurious interrupts, as virtnet_poll_cleantx might also run in between the scheduling of the Tx interrupt and the call to virtnet_poll_tx, right? The Tx and Rx interrupts racing. If I can reproduce the report, I can also test how much this helps in practice.
quoted
Fix up by disabling the callbacks before polling the tx vq.It is not clear why we want to poll TX completions from ndo_start_xmit() in napi mode ?
Yes, we can simply exclude that. The original napi-tx patch did not make that change, but not for any strong reason. _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization