[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20221114125755.13659-1-michal.swiatkowski@linux.intel.com>
Date: Mon, 14 Nov 2022 13:57:42 +0100
From: Michal Swiatkowski <michal.swiatkowski@...ux.intel.com>
To: netdev@...r.kernel.org, davem@...emloft.net, kuba@...nel.org,
pabeni@...hat.com, edumazet@...gle.com
Cc: intel-wired-lan@...ts.osuosl.org, jiri@...dia.com,
anthony.l.nguyen@...el.com, alexandr.lobakin@...el.com,
sridhar.samudrala@...el.com, wojciech.drewek@...el.com,
lukasz.czapnik@...el.com, shiraz.saleem@...el.com,
jesse.brandeburg@...el.com, mustafa.ismail@...el.com,
przemyslaw.kitszel@...el.com, piotr.raczynski@...el.com,
jacob.e.keller@...el.com, david.m.ertman@...el.com,
leszek.kaliszczuk@...el.com,
Michal Swiatkowski <michal.swiatkowski@...ux.intel.com>
Subject: [PATCH net-next 00/13] resource management using devlink reload
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
Powered by blists - more mailing lists