Thread (24 messages) 24 messages, 4 authors, 2025-01-27

Re: [RFC net-next v3 3/4] virtio_net: Map NAPIs to queues

From: Gerhard Engleder <hidden>
Date: 2025-01-21 20:14:00
Also in: lkml, virtualization

On 21.01.25 20:10, Joe Damato wrote:
Use netif_queue_set_napi to map NAPIs to queue IDs so that the mapping
can be accessed by user apps.

$ ethtool -i ens4 | grep driver
driver: virtio_net

$ sudo ethtool -L ens4 combined 4

$ ./tools/net/ynl/pyynl/cli.py \
        --spec Documentation/netlink/specs/netdev.yaml \
        --dump queue-get --json='{"ifindex": 2}'
[{'id': 0, 'ifindex': 2, 'napi-id': 8289, 'type': 'rx'},
  {'id': 1, 'ifindex': 2, 'napi-id': 8290, 'type': 'rx'},
  {'id': 2, 'ifindex': 2, 'napi-id': 8291, 'type': 'rx'},
  {'id': 3, 'ifindex': 2, 'napi-id': 8292, 'type': 'rx'},
  {'id': 0, 'ifindex': 2, 'type': 'tx'},
  {'id': 1, 'ifindex': 2, 'type': 'tx'},
  {'id': 2, 'ifindex': 2, 'type': 'tx'},
  {'id': 3, 'ifindex': 2, 'type': 'tx'}]

Note that virtio_net has TX-only NAPIs which do not have NAPI IDs, so
the lack of 'napi-id' in the above output is expected.

Signed-off-by: Joe Damato <redacted>
---
  rfcv3:
    - Eliminated XDP checks; NAPIs will always be mapped to RX queues, as
      Gerhard Engleder suggested.

  v2:
    - Eliminate RTNL code paths using the API Jakub introduced in patch 1
      of this v2.
    - Added virtnet_napi_disable to reduce code duplication as
      suggested by Jason Wang.

  drivers/net/virtio_net.c | 23 +++++++++++++++++++----
  1 file changed, 19 insertions(+), 4 deletions(-)
Looks good to me. I hope I didn't get you on the wrong track!

Reviewed-by: Gerhard Engleder <redacted>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help