All of lore.kernel.org
 help / color / mirror / Atom feed
* [net-next PATCH v1 0/9] Introduce NAPI queues support
@ 2023-07-29  0:46 Amritha Nambiar
  2023-07-29  0:46 ` [net-next PATCH v1 1/9] net: Introduce new fields for napi and queue associations Amritha Nambiar
                   ` (8 more replies)
  0 siblings, 9 replies; 27+ messages in thread
From: Amritha Nambiar @ 2023-07-29  0:46 UTC (permalink / raw)
  To: netdev, kuba, davem; +Cc: sridhar.samudrala, amritha.nambiar

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(-)

--

^ permalink raw reply	[flat|nested] 27+ messages in thread
* Re: [net-next PATCH v1 5/9] netdev-genl: Add netlink framework functions for napi
@ 2023-08-01 14:05 kernel test robot
  0 siblings, 0 replies; 27+ messages in thread
From: kernel test robot @ 2023-08-01 14:05 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <169059163779.3736.7602272507688648566.stgit@anambiarhost.jf.intel.com>
References: <169059163779.3736.7602272507688648566.stgit@anambiarhost.jf.intel.com>
TO: Amritha Nambiar <amritha.nambiar@intel.com>
TO: netdev@vger.kernel.org
TO: kuba@kernel.org
TO: davem@davemloft.net
CC: sridhar.samudrala@intel.com
CC: amritha.nambiar@intel.com

Hi Amritha,

kernel test robot noticed the following build warnings:

[auto build test WARNING on net-next/main]

url:    https://github.com/intel-lab-lkp/linux/commits/Amritha-Nambiar/net-Introduce-new-fields-for-napi-and-queue-associations/20230729-083646
base:   net-next/main
patch link:    https://lore.kernel.org/r/169059163779.3736.7602272507688648566.stgit%40anambiarhost.jf.intel.com
patch subject: [net-next PATCH v1 5/9] netdev-genl: Add netlink framework functions for napi
:::::: branch date: 4 days ago
:::::: commit date: 4 days ago
config: i386-randconfig-m021-20230730 (https://download.01.org/0day-ci/archive/20230801/202308012142.JralXUe0-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230801/202308012142.JralXUe0-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202308012142.JralXUe0-lkp@intel.com/

smatch warnings:
net/core/netdev-genl.c:369 netdev_nl_napi_get_dumpit() error: uninitialized symbol 'err'.

vim +/err +369 net/core/netdev-genl.c

1dd6a2baf41577 Amritha Nambiar 2023-07-28  332  
1dd6a2baf41577 Amritha Nambiar 2023-07-28  333  int netdev_nl_napi_get_dumpit(struct sk_buff *skb, struct netlink_callback *cb)
1dd6a2baf41577 Amritha Nambiar 2023-07-28  334  {
68813f1fd8bd2d Amritha Nambiar 2023-07-28  335  	struct netdev_nl_dump_ctx *ctx = netdev_dump_ctx(cb);
68813f1fd8bd2d Amritha Nambiar 2023-07-28  336  	struct net *net = sock_net(skb->sk);
68813f1fd8bd2d Amritha Nambiar 2023-07-28  337  	struct net_device *netdev;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  338  	int idx = 0, s_idx, n_idx;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  339  	int h, s_h;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  340  	int err;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  341  
68813f1fd8bd2d Amritha Nambiar 2023-07-28  342  	s_h = ctx->dev_entry_hash;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  343  	s_idx = ctx->dev_entry_idx;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  344  	n_idx = ctx->napi_idx;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  345  
68813f1fd8bd2d Amritha Nambiar 2023-07-28  346  	rtnl_lock();
68813f1fd8bd2d Amritha Nambiar 2023-07-28  347  
68813f1fd8bd2d Amritha Nambiar 2023-07-28  348  	for (h = s_h; h < NETDEV_HASHENTRIES; h++, s_idx = 0) {
68813f1fd8bd2d Amritha Nambiar 2023-07-28  349  		struct hlist_head *head;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  350  
68813f1fd8bd2d Amritha Nambiar 2023-07-28  351  		idx = 0;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  352  		head = &net->dev_index_head[h];
68813f1fd8bd2d Amritha Nambiar 2023-07-28  353  		hlist_for_each_entry(netdev, head, index_hlist) {
68813f1fd8bd2d Amritha Nambiar 2023-07-28  354  			if (idx < s_idx)
68813f1fd8bd2d Amritha Nambiar 2023-07-28  355  				goto cont;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  356  			err = netdev_nl_napi_dump_entry(netdev, skb, cb, &n_idx);
68813f1fd8bd2d Amritha Nambiar 2023-07-28  357  			if (err == -EMSGSIZE)
68813f1fd8bd2d Amritha Nambiar 2023-07-28  358  				goto out;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  359  			n_idx = 0;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  360  			if (err < 0)
68813f1fd8bd2d Amritha Nambiar 2023-07-28  361  				break;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  362  cont:
68813f1fd8bd2d Amritha Nambiar 2023-07-28  363  			idx++;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  364  		}
68813f1fd8bd2d Amritha Nambiar 2023-07-28  365  	}
68813f1fd8bd2d Amritha Nambiar 2023-07-28  366  
68813f1fd8bd2d Amritha Nambiar 2023-07-28  367  	rtnl_unlock();
68813f1fd8bd2d Amritha Nambiar 2023-07-28  368  
68813f1fd8bd2d Amritha Nambiar 2023-07-28 @369  	return err;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  370  
68813f1fd8bd2d Amritha Nambiar 2023-07-28  371  out:
68813f1fd8bd2d Amritha Nambiar 2023-07-28  372  	rtnl_unlock();
68813f1fd8bd2d Amritha Nambiar 2023-07-28  373  
68813f1fd8bd2d Amritha Nambiar 2023-07-28  374  	ctx->dev_entry_idx = idx;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  375  	ctx->dev_entry_hash = h;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  376  	ctx->napi_idx = n_idx;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  377  	cb->seq = net->dev_base_seq;
68813f1fd8bd2d Amritha Nambiar 2023-07-28  378  
68813f1fd8bd2d Amritha Nambiar 2023-07-28  379  	return skb->len;
1dd6a2baf41577 Amritha Nambiar 2023-07-28  380  }
1dd6a2baf41577 Amritha Nambiar 2023-07-28  381  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2023-08-09  2:45 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-29  0:46 [net-next PATCH v1 0/9] Introduce NAPI queues support Amritha Nambiar
2023-07-29  0:46 ` [net-next PATCH v1 1/9] net: Introduce new fields for napi and queue associations Amritha Nambiar
2023-07-29  9:55   ` kernel test robot
2023-07-30 17:10   ` Simon Horman
2023-07-31 22:57     ` Nambiar, Amritha
2023-07-29  0:47 ` [net-next PATCH v1 2/9] ice: Add support in the driver for associating napi with queue[s] Amritha Nambiar
2023-07-29  0:47 ` [net-next PATCH v1 3/9] netdev-genl: spec: Extend netdev netlink spec in YAML for NAPI Amritha Nambiar
2023-07-31 19:36   ` Jakub Kicinski
2023-07-31 23:12     ` Nambiar, Amritha
2023-08-01  0:13       ` Jakub Kicinski
2023-08-01  0:24         ` Nambiar, Amritha
2023-08-01  0:35           ` Jakub Kicinski
2023-08-09  0:17             ` Nambiar, Amritha
2023-08-09  2:45               ` Jakub Kicinski
2023-07-29  0:47 ` [net-next PATCH v1 4/9] net: Move kernel helpers for queue index outside sysfs Amritha Nambiar
2023-07-29  0:47 ` [net-next PATCH v1 5/9] netdev-genl: Add netlink framework functions for napi Amritha Nambiar
2023-07-30 17:15   ` Simon Horman
2023-07-31 23:00     ` Nambiar, Amritha
2023-07-31 19:37   ` Jakub Kicinski
2023-07-31 23:01     ` Nambiar, Amritha
2023-07-29  0:47 ` [net-next PATCH v1 6/9] netdev-genl: spec: Add irq in netdev netlink YAML spec Amritha Nambiar
2023-07-29  0:47 ` [net-next PATCH v1 7/9] net: Add NAPI IRQ support Amritha Nambiar
2023-07-29  4:05   ` Stephen Hemminger
2023-07-31 23:22     ` Nambiar, Amritha
2023-07-29  0:47 ` [net-next PATCH v1 8/9] netdev-genl: spec: Add PID in netdev netlink YAML spec Amritha Nambiar
2023-07-29  0:47 ` [net-next PATCH v1 9/9] netdev-genl: Add PID for the NAPI thread Amritha Nambiar
  -- strict thread matches above, loose matches on Subject: below --
2023-08-01 14:05 [net-next PATCH v1 5/9] netdev-genl: Add netlink framework functions for napi kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.