lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <169266003844.10199.10450480941022607696.stgit@anambiarhost.jf.intel.com>
Date: Mon, 21 Aug 2023 16:25:09 -0700
From: Amritha Nambiar <amritha.nambiar@...el.com>
To: netdev@...r.kernel.org, kuba@...nel.org, davem@...emloft.net
Cc: sridhar.samudrala@...el.com, amritha.nambiar@...el.com
Subject: [net-next PATCH v2 0/9] Introduce NAPI queues support

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
- NAPI device ifindex
- 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='{"napi-id": 385}'
{'ifindex': 12,
 'irq': 291,
 'napi-id': 385,
 'pid': 3614,
 'rx-queues': [0],
 'tx-queues': [0]}

$ ./cli.py --spec netdev.yaml --dump napi-get --json='{"ifindex": 12}'
[{'ifindex': 12,
  'irq': 294,
  'napi-id': 596,
  'pid': 12361,
  'rx-queues': [3],
  'tx-queues': [3]},
 {'ifindex': 12,
  'irq': 293,
  'napi-id': 595,
  'pid': 12360,
  'rx-queues': [2],
  'tx-queues': [2]},
 {'ifindex': 12,
  'irq': 292,
  'napi-id': 594,
  'pid': 12359,
  'rx-queues': [1],
  'tx-queues': [1]},
 {'ifindex': 12,
  'irq': 291,
  'napi-id': 593,
  'pid': 12358,
  'rx-queues': [0],
  'tx-queues': [0]}]

v2 -> v1
* Removed multi-attr nest for NAPI object
* Added support for flat/individual NAPI objects
* Changed 'do' command to take napi-id as argument
* Supported filtered 'dump' (dump with ifindex for a netdev and dump for
  all netdevs)

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   |   52 ++++++++
 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                 |   34 +++++
 include/net/netdev_rx_queue.h             |    7 +
 include/uapi/linux/netdev.h               |   13 ++
 net/core/dev.c                            |   53 ++++++++
 net/core/net-sysfs.c                      |   11 --
 net/core/netdev-genl-gen.c                |   24 ++++
 net/core/netdev-genl-gen.h                |    2 
 net/core/netdev-genl.c                    |  182 +++++++++++++++++++++++++++++
 tools/include/uapi/linux/netdev.h         |   13 ++
 tools/net/ynl/generated/netdev-user.c     |  177 ++++++++++++++++++++++++++++
 tools/net/ynl/generated/netdev-user.h     |   83 +++++++++++++
 tools/net/ynl/ynl-gen-c.py                |    2 
 16 files changed, 704 insertions(+), 17 deletions(-)

--

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ