mbox series

[net-next,v1,0/9] Introduce NAPI queues support

Message ID 169059098829.3736.381753570945338022.stgit@anambiarhost.jf.intel.com (mailing list archive)
Headers show
Series Introduce NAPI queues support | expand

Message

Nambiar, Amritha July 29, 2023, 12:46 a.m. UTC
Introduce support for associating NAPI instances with
corresponding RX and TX queue set. Add the capability
to export NAPI information supported by the device.
Extend the netdev_genl generic netlink family for netdev
with NAPI data. The NAPI fields exposed are:
- NAPI id
- queue/queue-set (both RX and TX) associated with each
  NAPI instance
- Interrupt number associated with the NAPI instance
- PID for the NAPI thread

This series only supports 'get' ability for retrieving
certain NAPI attributes. The 'set' ability for setting
queue[s] associated with a NAPI instance via netdev-genl
will be submitted as a separate patch series.

Previous discussion at:
https://lore.kernel.org/netdev/c8476530638a5f4381d64db0e024ed49c2db3b02.camel@gmail.com/T/#m00999652a8b4731fbdb7bf698d2e3666c65a60e7

$ ./cli.py --spec netdev.yaml  --do napi-get --json='{"ifindex": 6}'

[{'ifindex': 6},
 {'napi-info': [{'irq': 296,
                 'napi-id': 390,
                 'pid': 3475,
                 'rx-queues': [5],
                 'tx-queues': [5]},
                {'irq': 295,
                 'napi-id': 389,
                 'pid': 3474,
                 'rx-queues': [4],
                 'tx-queues': [4]},
                {'irq': 294,
                 'napi-id': 388,
                 'pid': 3473,
                 'rx-queues': [3],
                 'tx-queues': [3]},
                {'irq': 293,
                 'napi-id': 387,
                 'pid': 3472,
                 'rx-queues': [2],
                 'tx-queues': [2]},
                {'irq': 292,
                 'napi-id': 386,
                 'pid': 3471,
                 'rx-queues': [1],
                 'tx-queues': [1]},
                {'irq': 291,
                 'napi-id': 385,
                 'pid': 3470,
                 'rx-queues': [0],
                 'tx-queues': [0]}]}]
 
RFC -> v1
* Changed to separate 'napi_get' command
* Added support to expose interrupt and PID for the NAPI
* Used list of netdev queue structs
* Split patches further and fixed code style and errors

---

Amritha Nambiar (9):
      net: Introduce new fields for napi and queue associations
      ice: Add support in the driver for associating napi with queue[s]
      netdev-genl: spec: Extend netdev netlink spec in YAML for NAPI
      net: Move kernel helpers for queue index outside sysfs
      netdev-genl: Add netlink framework functions for napi
      netdev-genl: spec: Add irq in netdev netlink YAML spec
      net: Add NAPI IRQ support
      netdev-genl: spec: Add PID in netdev netlink YAML spec
      netdev-genl: Add PID for the NAPI thread


 Documentation/netlink/specs/netdev.yaml   |   54 ++++++
 drivers/net/ethernet/intel/ice/ice_lib.c  |   60 ++++++
 drivers/net/ethernet/intel/ice/ice_lib.h  |    4 
 drivers/net/ethernet/intel/ice/ice_main.c |    4 
 include/linux/netdevice.h                 |   41 ++++
 include/uapi/linux/netdev.h               |   20 ++
 net/core/dev.c                            |   53 ++++++
 net/core/net-sysfs.c                      |   11 -
 net/core/netdev-genl-gen.c                |   17 ++
 net/core/netdev-genl-gen.h                |    2 
 net/core/netdev-genl.c                    |  270 +++++++++++++++++++++++++++++
 tools/include/uapi/linux/netdev.h         |   20 ++
 tools/net/ynl/generated/netdev-user.c     |  232 +++++++++++++++++++++++++
 tools/net/ynl/generated/netdev-user.h     |   67 +++++++
 tools/net/ynl/ynl-gen-c.py                |    2 
 15 files changed, 841 insertions(+), 16 deletions(-)

--