Message ID | 20231024110929.19423-1-michal.swiatkowski@linux.intel.com (mailing list archive) |
---|---|
Headers | show |
Series | one by one port representors creation | expand |
Tue, Oct 24, 2023 at 01:09:14PM CEST, michal.swiatkowski@linux.intel.com wrote: >Hi, > >Currently ice supports creating port representors only for VFs. For that >use case they can be created and removed in one step. > >This patchset is refactoring current flow to support port representor >creation also for subfunctions and SIOV. In this case port representors >need to be createad and removed one by one. Also, they can be added and >removed while other port representors are running. > >To achieve that we need to change the switchdev configuration flow. >Three first patches are only cosmetic (renaming, removing not used code). >Next few ones are preparation for new flow. The most important one >is "add VF representor one by one". It fully implements new flow. > >New type of port representor (for subfunction) will be introduced in >follow up patchset. Examples please. Show new outputs of devlink commands. Thanks! > >Michal Swiatkowski (15): > ice: rename switchdev to eswitch > ice: remove redundant max_vsi_num variable > ice: remove unused control VSI parameter > ice: track q_id in representor > ice: use repr instead of vf->repr > ice: track port representors in xarray > ice: remove VF pointer reference in eswitch code > ice: make representor code generic > ice: return pointer to representor > ice: allow changing SWITCHDEV_CTRL VSI queues > ice: set Tx topology every time new repr is added > ice: realloc VSI stats arrays > ice: add VF representors one by one > ice: adjust switchdev rebuild path > ice: reserve number of CP queues > > drivers/net/ethernet/intel/ice/ice.h | 13 +- > drivers/net/ethernet/intel/ice/ice_devlink.c | 29 + > drivers/net/ethernet/intel/ice/ice_devlink.h | 1 + > drivers/net/ethernet/intel/ice/ice_eswitch.c | 562 ++++++++++-------- > drivers/net/ethernet/intel/ice/ice_eswitch.h | 22 +- > .../net/ethernet/intel/ice/ice_eswitch_br.c | 22 +- > drivers/net/ethernet/intel/ice/ice_lib.c | 81 ++- > drivers/net/ethernet/intel/ice/ice_main.c | 6 +- > drivers/net/ethernet/intel/ice/ice_repr.c | 195 +++--- > drivers/net/ethernet/intel/ice/ice_repr.h | 9 +- > drivers/net/ethernet/intel/ice/ice_sriov.c | 20 +- > drivers/net/ethernet/intel/ice/ice_tc_lib.c | 4 +- > drivers/net/ethernet/intel/ice/ice_vf_lib.c | 9 +- > drivers/net/ethernet/intel/ice/ice_vf_lib.h | 2 +- > 14 files changed, 553 insertions(+), 422 deletions(-) > >-- >2.41.0 > >
On Tue, Oct 24, 2023 at 01:50:16PM +0200, Jiri Pirko wrote: > Tue, Oct 24, 2023 at 01:09:14PM CEST, michal.swiatkowski@linux.intel.com wrote: > >Hi, > > > >Currently ice supports creating port representors only for VFs. For that > >use case they can be created and removed in one step. > > > >This patchset is refactoring current flow to support port representor > >creation also for subfunctions and SIOV. In this case port representors > >need to be createad and removed one by one. Also, they can be added and > >removed while other port representors are running. > > > >To achieve that we need to change the switchdev configuration flow. > >Three first patches are only cosmetic (renaming, removing not used code). > >Next few ones are preparation for new flow. The most important one > >is "add VF representor one by one". It fully implements new flow. > > > >New type of port representor (for subfunction) will be introduced in > >follow up patchset. > > Examples please. Show new outputs of devlink commands. > > Thanks! > If you mean outputs after refactor to one by one solution nothing has changed: # devlink port show (after creating 4 VFs in switchdev mode) pci/0000:18:00.0/0: type eth netdev ens785f0np0 flavour physical port 0 splittable true lanes 8 pci/0000:18:00.0/2: type eth netdev ens785f0np0_0 flavour pcivf controller 0 pfnum 0 vfnum 0 external false splittable false pci/0000:18:00.0/4: type eth netdev ens785f0np0_3 flavour pcivf controller 0 pfnum 0 vfnum 3 external false splittable false pci/0000:18:00.0/5: type eth netdev ens785f0np0_1 flavour pcivf controller 0 pfnum 0 vfnum 1 external false splittable false pci/0000:18:00.0/6: type eth netdev ens785f0np0_2 flavour pcivf controller 0 pfnum 0 vfnum 2 external false splittable false According subfunction, it will also be in cover latter for patchset that is implementing subfunction. Commands: # devlink dev eswitch set pci/0000:18:00.0 mode switchdev # devlink port add pci/0000:18:00.0 flavour pcisf pfnum 0 sfnum 1000 # devlink port function set pci/0000:18:00.0/3 state active Outputs: Don't have it saved, will send it here after rebasing subfunction of top of this one. Thanks, Michal > > > >Michal Swiatkowski (15): > > ice: rename switchdev to eswitch > > ice: remove redundant max_vsi_num variable > > ice: remove unused control VSI parameter > > ice: track q_id in representor > > ice: use repr instead of vf->repr > > ice: track port representors in xarray > > ice: remove VF pointer reference in eswitch code > > ice: make representor code generic > > ice: return pointer to representor > > ice: allow changing SWITCHDEV_CTRL VSI queues > > ice: set Tx topology every time new repr is added > > ice: realloc VSI stats arrays > > ice: add VF representors one by one > > ice: adjust switchdev rebuild path > > ice: reserve number of CP queues > > > > drivers/net/ethernet/intel/ice/ice.h | 13 +- > > drivers/net/ethernet/intel/ice/ice_devlink.c | 29 + > > drivers/net/ethernet/intel/ice/ice_devlink.h | 1 + > > drivers/net/ethernet/intel/ice/ice_eswitch.c | 562 ++++++++++-------- > > drivers/net/ethernet/intel/ice/ice_eswitch.h | 22 +- > > .../net/ethernet/intel/ice/ice_eswitch_br.c | 22 +- > > drivers/net/ethernet/intel/ice/ice_lib.c | 81 ++- > > drivers/net/ethernet/intel/ice/ice_main.c | 6 +- > > drivers/net/ethernet/intel/ice/ice_repr.c | 195 +++--- > > drivers/net/ethernet/intel/ice/ice_repr.h | 9 +- > > drivers/net/ethernet/intel/ice/ice_sriov.c | 20 +- > > drivers/net/ethernet/intel/ice/ice_tc_lib.c | 4 +- > > drivers/net/ethernet/intel/ice/ice_vf_lib.c | 9 +- > > drivers/net/ethernet/intel/ice/ice_vf_lib.h | 2 +- > > 14 files changed, 553 insertions(+), 422 deletions(-) > > > >-- > >2.41.0 > > > >
Tue, Oct 24, 2023 at 03:10:46PM CEST, michal.swiatkowski@linux.intel.com wrote: >On Tue, Oct 24, 2023 at 01:50:16PM +0200, Jiri Pirko wrote: >> Tue, Oct 24, 2023 at 01:09:14PM CEST, michal.swiatkowski@linux.intel.com wrote: >> >Hi, >> > >> >Currently ice supports creating port representors only for VFs. For that >> >use case they can be created and removed in one step. >> > >> >This patchset is refactoring current flow to support port representor >> >creation also for subfunctions and SIOV. In this case port representors >> >need to be createad and removed one by one. Also, they can be added and >> >removed while other port representors are running. >> > >> >To achieve that we need to change the switchdev configuration flow. >> >Three first patches are only cosmetic (renaming, removing not used code). >> >Next few ones are preparation for new flow. The most important one >> >is "add VF representor one by one". It fully implements new flow. >> > >> >New type of port representor (for subfunction) will be introduced in >> >follow up patchset. >> >> Examples please. Show new outputs of devlink commands. >> >> Thanks! >> > >If you mean outputs after refactor to one by one solution nothing >has changed: > ># devlink port show (after creating 4 VFs in switchdev mode) >pci/0000:18:00.0/0: type eth netdev ens785f0np0 flavour physical port 0 splittable true lanes 8 >pci/0000:18:00.0/2: type eth netdev ens785f0np0_0 flavour pcivf controller 0 pfnum 0 vfnum 0 external false splittable false >pci/0000:18:00.0/4: type eth netdev ens785f0np0_3 flavour pcivf controller 0 pfnum 0 vfnum 3 external false splittable false >pci/0000:18:00.0/5: type eth netdev ens785f0np0_1 flavour pcivf controller 0 pfnum 0 vfnum 1 external false splittable false >pci/0000:18:00.0/6: type eth netdev ens785f0np0_2 flavour pcivf controller 0 pfnum 0 vfnum 2 external false splittable false > >According subfunction, it will also be in cover latter for patchset that >is implementing subfunction. > >Commands: ># devlink dev eswitch set pci/0000:18:00.0 mode switchdev ># devlink port add pci/0000:18:00.0 flavour pcisf pfnum 0 sfnum 1000 ># devlink port function set pci/0000:18:00.0/3 state active > >Outputs: >Don't have it saved, will send it here after rebasing subfunction of top >of this one. Ah, I was under impression it is part of this set. Sorry. > >Thanks, >Michal > >> > >> >Michal Swiatkowski (15): >> > ice: rename switchdev to eswitch >> > ice: remove redundant max_vsi_num variable >> > ice: remove unused control VSI parameter >> > ice: track q_id in representor >> > ice: use repr instead of vf->repr >> > ice: track port representors in xarray >> > ice: remove VF pointer reference in eswitch code >> > ice: make representor code generic >> > ice: return pointer to representor >> > ice: allow changing SWITCHDEV_CTRL VSI queues >> > ice: set Tx topology every time new repr is added >> > ice: realloc VSI stats arrays >> > ice: add VF representors one by one >> > ice: adjust switchdev rebuild path >> > ice: reserve number of CP queues >> > >> > drivers/net/ethernet/intel/ice/ice.h | 13 +- >> > drivers/net/ethernet/intel/ice/ice_devlink.c | 29 + >> > drivers/net/ethernet/intel/ice/ice_devlink.h | 1 + >> > drivers/net/ethernet/intel/ice/ice_eswitch.c | 562 ++++++++++-------- >> > drivers/net/ethernet/intel/ice/ice_eswitch.h | 22 +- >> > .../net/ethernet/intel/ice/ice_eswitch_br.c | 22 +- >> > drivers/net/ethernet/intel/ice/ice_lib.c | 81 ++- >> > drivers/net/ethernet/intel/ice/ice_main.c | 6 +- >> > drivers/net/ethernet/intel/ice/ice_repr.c | 195 +++--- >> > drivers/net/ethernet/intel/ice/ice_repr.h | 9 +- >> > drivers/net/ethernet/intel/ice/ice_sriov.c | 20 +- >> > drivers/net/ethernet/intel/ice/ice_tc_lib.c | 4 +- >> > drivers/net/ethernet/intel/ice/ice_vf_lib.c | 9 +- >> > drivers/net/ethernet/intel/ice/ice_vf_lib.h | 2 +- >> > 14 files changed, 553 insertions(+), 422 deletions(-) >> > >> >-- >> >2.41.0 >> > >> >