[PATCH net-next V5 0/3] virtio_net: add per queue interrupt coalescing support

Gavin Li posted 3 patches 2 years, 1 month ago
drivers/net/virtio_net.c        | 187 ++++++++++++++++++++++++++++----
include/uapi/linux/virtio_net.h |  14 +++
2 files changed, 177 insertions(+), 24 deletions(-)
[PATCH net-next V5 0/3] virtio_net: add per queue interrupt coalescing support
Posted by Gavin Li 2 years, 1 month ago
Currently, coalescing parameters are grouped for all transmit and receive
virtqueues. This patch series add support to set or get the parameters for
a specified virtqueue.

When the traffic between virtqueues is unbalanced, for example, one virtqueue
is busy and another virtqueue is idle, then it will be very useful to
control coalescing parameters at the virtqueue granularity.

Example command:
$ ethtool -Q eth5 queue_mask 0x1 --coalesce tx-packets 10
Would set max_packets=10 to VQ 1.
$ ethtool -Q eth5 queue_mask 0x1 --coalesce rx-packets 10
Would set max_packets=10 to VQ 0.
$ ethtool -Q eth5 queue_mask 0x1 --show-coalesce
 Queue: 0
 Adaptive RX: off  TX: off
 stats-block-usecs: 0
 sample-interval: 0
 pkt-rate-low: 0
 pkt-rate-high: 0

 rx-usecs: 222
 rx-frames: 0
 rx-usecs-irq: 0
 rx-frames-irq: 256

 tx-usecs: 222
 tx-frames: 0
 tx-usecs-irq: 0
 tx-frames-irq: 256

 rx-usecs-low: 0
 rx-frame-low: 0
 tx-usecs-low: 0
 tx-frame-low: 0

 rx-usecs-high: 0
 rx-frame-high: 0
 tx-usecs-high: 0
 tx-frame-high: 0

Gavin Li (3):
  virtio_net: extract interrupt coalescing settings to a structure
  virtio_net: support per queue interrupt coalesce command
---
changelog:
v1->v2
- Addressed the comment from Xuan Zhuo
- Allocate memory from heap instead of using stack memory for control vq
	messages
v2->v3
- Addressed the comment from Heng Qi
- Use control_buf for control vq messages
v3->v4
- Addressed the comment from Michael S. Tsirkin
- Refactor set_coalesce of both per queue and global config that were
	littered with if/else branches
v4->v5
- Addressed the comment From Paolo Abeni
- Update comment for the range of queues to be updated according to
	current code
---
  virtio_net: enable per queue interrupt coalesce feature

 drivers/net/virtio_net.c        | 187 ++++++++++++++++++++++++++++----
 include/uapi/linux/virtio_net.h |  14 +++
 2 files changed, 177 insertions(+), 24 deletions(-)

-- 
2.39.1
Re: [PATCH net-next V5 0/3] virtio_net: add per queue interrupt coalescing support
Posted by patchwork-bot+netdevbpf@kernel.org 2 years, 1 month ago
Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Mon, 31 Jul 2023 10:06:53 +0300 you wrote:
> Currently, coalescing parameters are grouped for all transmit and receive
> virtqueues. This patch series add support to set or get the parameters for
> a specified virtqueue.
> 
> When the traffic between virtqueues is unbalanced, for example, one virtqueue
> is busy and another virtqueue is idle, then it will be very useful to
> control coalescing parameters at the virtqueue granularity.
> 
> [...]

Here is the summary with links:
  - [net-next,V5,1/3] virtio_net: extract interrupt coalescing settings to a structure
    https://git.kernel.org/netdev/net-next/c/308d7982dcdc
  - [net-next,V5,2/3] virtio_net: support per queue interrupt coalesce command
    https://git.kernel.org/netdev/net-next/c/394bd87764b6
  - [net-next,V5,3/3] virtio_net: enable per queue interrupt coalesce feature
    https://git.kernel.org/netdev/net-next/c/8af3bf668382

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html