This series implements VIRTIO_NET_F_NOTF_COAL (bit 53) for virtio-net,
enabling interrupt coalescing to reduce CPU overhead in high-throughput
workloads.
Patch 1 refactors TX path handling by introducing a unified dispatcher
that dynamically selects between timer-based and BH-based processing.
This is preparatory work with no functional changes.
Patch 2 implements the core notification coalescing feature, allowing
guests to configure RX/TX interrupt batching via ethtool -C using
time-based (microseconds) or count-based (packet) thresholds.
Patch 3 adds vDPA backend support, enabling coalescing state to be
restored during live migration when using Shadow VirtQueue.
Testing:
- Functional: ethtool -C configuration in guest with vDPA device
- Migration: VMState persistence across live migration
- Performance: 20% CPU overhead reduction, 30% fewer interrupts
- Compatibility: Feature disabled when tx=timer is configured
Changes in v11:
---------------
- Adds vDPA backend support for notification coalescing
- Resolved review comments
Koushik Dutta (3):
Introduce virtio_net_handle_tx_dispatch() to unify TX path handling.
This dispatcher dynamically selects between timer-based and BH-based
TX processing based on configuration.
virtio-net: Add VIRTIO_NET_F_NOTF_COAL support
vhost-vdpa: Add VIRTIO_NET_F_NOTF_COAL support for vDPA
hw/net/virtio-net.c | 241 ++++++++++++++++++++++++++++++---
include/hw/virtio/virtio-net.h | 11 ++
net/passt.c | 1 +
net/tap.c | 1 +
net/vhost-user.c | 1 +
net/vhost-vdpa.c | 58 ++++++++
6 files changed, 294 insertions(+), 19 deletions(-)
--
2.53.0