On Fri, Feb 28, 2025 at 2:50 AM Joe Damato <jdam...@fastly.com> wrote: > > Use netif_queue_set_napi to map NAPIs to queue IDs so that the mapping > can be accessed by user apps. Note that the netif_queue_set_napi > currently requires RTNL, so care must be taken to ensure RTNL is held on > paths where this API might be reached. > > The paths in the driver where this API can be reached appear to be: > > - ndo_open, ndo_close, which hold RTNL so no driver change is needed. > - rx_pause, rx_resume, tx_pause, tx_resume are reached either via > an ethtool ioctl or via XSK - neither path requires a driver change. > - power management paths (which call open and close), which have been > updated to hold/release RTNL. > - refill_work, which has been updated to hold RTNL. > > $ 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 <jdam...@fastly.com> > ---
Acked-by: Jason Wang <jasow...@redhat.com> Thanks