netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 00/13] resource management using devlink reload
@ 2022-11-14 12:57 Michal Swiatkowski
  2022-11-14 12:57 ` [PATCH net-next 01/13] ice: move RDMA init to ice_idc.c Michal Swiatkowski
                   ` (13 more replies)
  0 siblings, 14 replies; 49+ messages in thread
From: Michal Swiatkowski @ 2022-11-14 12:57 UTC (permalink / raw)
  To: netdev, davem, kuba, pabeni, edumazet
  Cc: intel-wired-lan, jiri, anthony.l.nguyen, alexandr.lobakin,
	sridhar.samudrala, wojciech.drewek, lukasz.czapnik,
	shiraz.saleem, jesse.brandeburg, mustafa.ismail,
	przemyslaw.kitszel, piotr.raczynski, jacob.e.keller,
	david.m.ertman, leszek.kaliszczuk, Michal Swiatkowski

Currently the default value for number of PF vectors is number of CPUs.
Because of that there are cases when all vectors are used for PF
and user can't create more VFs. It is hard to set default number of
CPUs right for all different use cases. Instead allow user to choose
how many vectors should be used for various features. After implementing
subdevices this mechanism will be also used to set number of vectors
for subfunctions.

The idea is to set vectors for eth or VFs using devlink resource API.
New value of vectors will be used after devlink reinit. Example
commands:
$ sudo devlink resource set pci/0000:31:00.0 path msix/msix_eth size 16
$ sudo devlink dev reload pci/0000:31:00.0
After reload driver will work with 16 vectors used for eth instead of
num_cpus.

The default number of queues is implicitly derived from interrupt
vectors and can be later changed by ethtool.
To decrease queues used on eth user can decrease vectors on eth.
The result will be the same. Still user can change number of queues
using ethtool:
$ sudo ethtool -L enp24s0f0 tx 72 rx 72
but maximum queues amount is equal to amount of vectors.

Most of this patchset is about implementing driver reload mechanism.
Part of code from probe and rebuild is used to not duplicate code.
To allow this reuse probe and rebuild path are split into smaller
functions.

Patch "ice: split ice_vsi_setup into smaller functions" changes
boolean variable in function call to integer and adds define
for it. Instead of having the function called with true/false now it
can be called with readable defines ICE_VSI_FLAG_INIT or
ICE_VSI_FLAG_NO_INIT. It was suggested by Jacob Keller and probably this
mechanism will be implemented across ice driver in follow up patchset.

Patch 1 - 10	-> cleanup code to reuse most of the already
                   implemented function in reload path
Patch 11	-> implement devlink reload API
Patch 12        -> prepare interrupts reservation, make irdma see
                   changeable vectors count
Patch 13        -> changing number of vectors


Jacob Keller (1):
  ice: stop hard coding the ICE_VSI_CTRL location

Michal Kubiak (1):
  devlink, ice: add MSIX vectors as devlink resource

Michal Swiatkowski (11):
  ice: move RDMA init to ice_idc.c
  ice: alloc id for RDMA using xa_array
  ice: cleanup in VSI config/deconfig code
  ice: split ice_vsi_setup into smaller functions
  ice: split probe into smaller functions
  ice: sync netdev filters after clearing VSI
  ice: move VSI delete outside deconfig
  ice: update VSI instead of init in some case
  ice: implement devlink reinit action
  ice: introduce eswitch capable flag
  ice, irdma: prepare reservation of MSI-X to reload

 .../networking/devlink/devlink-resource.rst   |   10 +
 drivers/infiniband/hw/irdma/main.c            |    2 +-
 drivers/net/ethernet/intel/ice/ice.h          |   23 +-
 drivers/net/ethernet/intel/ice/ice_common.c   |   11 +-
 drivers/net/ethernet/intel/ice/ice_devlink.c  |  263 +++-
 drivers/net/ethernet/intel/ice/ice_devlink.h  |    2 +
 drivers/net/ethernet/intel/ice/ice_eswitch.c  |    6 +
 drivers/net/ethernet/intel/ice/ice_ethtool.c  |    6 +-
 drivers/net/ethernet/intel/ice/ice_fltr.c     |    5 +
 drivers/net/ethernet/intel/ice/ice_idc.c      |   57 +-
 drivers/net/ethernet/intel/ice/ice_lib.c      |  789 +++++-----
 drivers/net/ethernet/intel/ice/ice_lib.h      |    8 +-
 drivers/net/ethernet/intel/ice/ice_main.c     | 1354 ++++++++++-------
 drivers/net/ethernet/intel/ice/ice_sriov.c    |    3 +-
 drivers/net/ethernet/intel/ice/ice_vf_lib.c   |    2 +-
 include/net/devlink.h                         |   14 +
 16 files changed, 1517 insertions(+), 1038 deletions(-)

-- 
2.36.1


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

end of thread, other threads:[~2022-11-20 22:24 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-14 12:57 [PATCH net-next 00/13] resource management using devlink reload Michal Swiatkowski
2022-11-14 12:57 ` [PATCH net-next 01/13] ice: move RDMA init to ice_idc.c Michal Swiatkowski
2022-11-14 12:57 ` [PATCH net-next 02/13] ice: alloc id for RDMA using xa_array Michal Swiatkowski
2022-11-14 12:57 ` [PATCH net-next 03/13] ice: cleanup in VSI config/deconfig code Michal Swiatkowski
2022-11-14 12:57 ` [PATCH net-next 04/13] ice: split ice_vsi_setup into smaller functions Michal Swiatkowski
2022-11-15  5:08   ` Jakub Kicinski
2022-11-15  6:49     ` Michal Swiatkowski
2022-11-14 12:57 ` [PATCH net-next 05/13] ice: stop hard coding the ICE_VSI_CTRL location Michal Swiatkowski
2022-11-14 12:57 ` [PATCH net-next 06/13] ice: split probe into smaller functions Michal Swiatkowski
2022-11-14 12:57 ` [PATCH net-next 07/13] ice: sync netdev filters after clearing VSI Michal Swiatkowski
2022-11-14 12:57 ` [PATCH net-next 08/13] ice: move VSI delete outside deconfig Michal Swiatkowski
2022-11-14 12:57 ` [PATCH net-next 09/13] ice: update VSI instead of init in some case Michal Swiatkowski
2022-11-14 12:57 ` [PATCH net-next 10/13] ice: implement devlink reinit action Michal Swiatkowski
2022-11-14 12:57 ` [PATCH net-next 11/13] ice: introduce eswitch capable flag Michal Swiatkowski
2022-11-14 12:57 ` [PATCH net-next 12/13] ice, irdma: prepare reservation of MSI-X to reload Michal Swiatkowski
2022-11-15  5:08   ` Jakub Kicinski
2022-11-15  6:49     ` Michal Swiatkowski
2022-11-14 12:57 ` [PATCH net-next 13/13] devlink, ice: add MSIX vectors as devlink resource Michal Swiatkowski
2022-11-14 15:28   ` Jiri Pirko
2022-11-14 16:03     ` Piotr Raczynski
2022-11-15  6:56       ` Michal Swiatkowski
2022-11-15 12:08       ` Jiri Pirko
2022-11-14 13:23 ` [PATCH net-next 00/13] resource management using devlink reload Leon Romanovsky
2022-11-14 15:31   ` Samudrala, Sridhar
2022-11-14 16:58     ` Keller, Jacob E
2022-11-14 17:09       ` Leon Romanovsky
2022-11-15  7:00         ` Michal Swiatkowski
2022-11-14 17:07     ` Leon Romanovsky
2022-11-15  7:12       ` Michal Swiatkowski
2022-11-15  8:11         ` Leon Romanovsky
2022-11-15  9:04           ` Michal Swiatkowski
2022-11-15  9:32             ` Leon Romanovsky
2022-11-15 10:16               ` Michal Swiatkowski
2022-11-15 12:12                 ` Leon Romanovsky
2022-11-15 14:02                   ` Michal Swiatkowski
2022-11-15 17:57                     ` Leon Romanovsky
2022-11-16  1:59                       ` Samudrala, Sridhar
2022-11-16  6:04                         ` Leon Romanovsky
2022-11-16 12:04                           ` Michal Swiatkowski
2022-11-16 17:59                             ` Leon Romanovsky
2022-11-17 11:10                               ` Michal Swiatkowski
2022-11-17 11:45                                 ` Leon Romanovsky
2022-11-17 13:39                                   ` Michal Swiatkowski
2022-11-17 17:38                                     ` Leon Romanovsky
2022-11-18  3:36                                       ` Jakub Kicinski
2022-11-18  6:20                                         ` Leon Romanovsky
2022-11-18 14:23                                           ` Saleem, Shiraz
2022-11-18 17:31                                             ` Leon Romanovsky
2022-11-20 22:24                                               ` Samudrala, Sridhar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).