Message ID | 20240507114516.9765-1-michal.swiatkowski@linux.intel.com |
---|---|
Headers | show |
Series | ice: support devlink subfunction | expand |
Tue, May 07, 2024 at 01:45:01PM CEST, michal.swiatkowski@linux.intel.com wrote: >Hi, > >Currently ice driver does not allow creating more than one networking >device per physical function. The only way to have more hardware backed >netdev is to use SR-IOV. > >Following patchset adds support for devlink port API. For each new >pcisf type port, driver allocates new VSI, configures all resources >needed, including dynamically MSIX vectors, program rules and registers >new netdev. > >This series supports only one Tx/Rx queue pair per subfunction. > >Example commands: >devlink port add pci/0000:31:00.1 flavour pcisf pfnum 1 sfnum 1000 >devlink port function set pci/0000:31:00.1/1 hw_addr 00:00:00:00:03:14 >devlink port function set pci/0000:31:00.1/1 state active >devlink port function del pci/0000:31:00.1/1 > >Make the port representor and eswitch code generic to support >subfunction representor type. > >VSI configuration is slightly different between VF and SF. It needs to >be reflected in the code. > >Most recent previous patchset (not containing port representor for SF >support). [1] > >[1] https://lore.kernel.org/netdev/20240417142028.2171-1-michal.swiatkowski@linux.intel.com/ > I don't understand howcome the patchset is v1, yet there are patches that came through multiple iterations alread. Changelog is missing completely :/ >Michal Swiatkowski (7): > ice: treat subfunction VSI the same as PF VSI > ice: create port representor for SF > ice: don't set target VSI for subfunction > ice: check if SF is ready in ethtool ops > ice: netdevice ops for SF representor > ice: support subfunction devlink Tx topology > ice: basic support for VLAN in subfunctions > >Piotr Raczynski (7): > ice: add new VSI type for subfunctions > ice: export ice ndo_ops functions > ice: add basic devlink subfunctions support > ice: allocate devlink for subfunction > ice: base subfunction aux driver > ice: implement netdev for subfunction > ice: allow to activate and deactivate subfunction > > drivers/net/ethernet/intel/ice/Makefile | 2 + > .../net/ethernet/intel/ice/devlink/devlink.c | 48 ++ > .../net/ethernet/intel/ice/devlink/devlink.h | 1 + > .../ethernet/intel/ice/devlink/devlink_port.c | 516 ++++++++++++++++++ > .../ethernet/intel/ice/devlink/devlink_port.h | 43 ++ > drivers/net/ethernet/intel/ice/ice.h | 19 +- > drivers/net/ethernet/intel/ice/ice_base.c | 5 +- > drivers/net/ethernet/intel/ice/ice_dcb_lib.c | 1 + > drivers/net/ethernet/intel/ice/ice_eswitch.c | 85 ++- > drivers/net/ethernet/intel/ice/ice_eswitch.h | 22 +- > drivers/net/ethernet/intel/ice/ice_ethtool.c | 7 +- > drivers/net/ethernet/intel/ice/ice_lib.c | 52 +- > drivers/net/ethernet/intel/ice/ice_lib.h | 3 + > drivers/net/ethernet/intel/ice/ice_main.c | 66 ++- > drivers/net/ethernet/intel/ice/ice_repr.c | 195 +++++-- > drivers/net/ethernet/intel/ice/ice_repr.h | 22 +- > drivers/net/ethernet/intel/ice/ice_sf_eth.c | 329 +++++++++++ > drivers/net/ethernet/intel/ice/ice_sf_eth.h | 33 ++ > .../ethernet/intel/ice/ice_sf_vsi_vlan_ops.c | 21 + > .../ethernet/intel/ice/ice_sf_vsi_vlan_ops.h | 13 + > drivers/net/ethernet/intel/ice/ice_sriov.c | 4 +- > drivers/net/ethernet/intel/ice/ice_txrx.c | 2 +- > drivers/net/ethernet/intel/ice/ice_type.h | 1 + > drivers/net/ethernet/intel/ice/ice_vf_lib.c | 4 +- > .../net/ethernet/intel/ice/ice_vsi_vlan_ops.c | 4 + > drivers/net/ethernet/intel/ice/ice_xsk.c | 2 +- > 26 files changed, 1362 insertions(+), 138 deletions(-) > create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_eth.c > create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_eth.h > create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_vsi_vlan_ops.c > create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_vsi_vlan_ops.h > >-- >2.42.0 > >
On Thu, May 09, 2024 at 01:18:29PM +0200, Jiri Pirko wrote: > Tue, May 07, 2024 at 01:45:01PM CEST, michal.swiatkowski@linux.intel.com wrote: > >Hi, > > > >Currently ice driver does not allow creating more than one networking > >device per physical function. The only way to have more hardware backed > >netdev is to use SR-IOV. > > > >Following patchset adds support for devlink port API. For each new > >pcisf type port, driver allocates new VSI, configures all resources > >needed, including dynamically MSIX vectors, program rules and registers > >new netdev. > > > >This series supports only one Tx/Rx queue pair per subfunction. > > > >Example commands: > >devlink port add pci/0000:31:00.1 flavour pcisf pfnum 1 sfnum 1000 > >devlink port function set pci/0000:31:00.1/1 hw_addr 00:00:00:00:03:14 > >devlink port function set pci/0000:31:00.1/1 state active > >devlink port function del pci/0000:31:00.1/1 > > > >Make the port representor and eswitch code generic to support > >subfunction representor type. > > > >VSI configuration is slightly different between VF and SF. It needs to > >be reflected in the code. > > > >Most recent previous patchset (not containing port representor for SF > >support). [1] > > > >[1] https://lore.kernel.org/netdev/20240417142028.2171-1-michal.swiatkowski@linux.intel.com/ > > > > > I don't understand howcome the patchset is v1, yet there are patches > that came through multiple iterations alread. Changelog is missing > completely :/ > What is wrong here? There is a link to previous patchset with whole changlog and links to previous ones. I didn't add changlog here as it is new patchset (partialy the same as from [1], because of that I added a link). I can add the changlog from [1] if you want, but for me it can be missleading. > > >Michal Swiatkowski (7): > > ice: treat subfunction VSI the same as PF VSI > > ice: create port representor for SF > > ice: don't set target VSI for subfunction > > ice: check if SF is ready in ethtool ops > > ice: netdevice ops for SF representor > > ice: support subfunction devlink Tx topology > > ice: basic support for VLAN in subfunctions > > > >Piotr Raczynski (7): > > ice: add new VSI type for subfunctions > > ice: export ice ndo_ops functions > > ice: add basic devlink subfunctions support > > ice: allocate devlink for subfunction > > ice: base subfunction aux driver > > ice: implement netdev for subfunction > > ice: allow to activate and deactivate subfunction > > > > drivers/net/ethernet/intel/ice/Makefile | 2 + > > .../net/ethernet/intel/ice/devlink/devlink.c | 48 ++ > > .../net/ethernet/intel/ice/devlink/devlink.h | 1 + > > .../ethernet/intel/ice/devlink/devlink_port.c | 516 ++++++++++++++++++ > > .../ethernet/intel/ice/devlink/devlink_port.h | 43 ++ > > drivers/net/ethernet/intel/ice/ice.h | 19 +- > > drivers/net/ethernet/intel/ice/ice_base.c | 5 +- > > drivers/net/ethernet/intel/ice/ice_dcb_lib.c | 1 + > > drivers/net/ethernet/intel/ice/ice_eswitch.c | 85 ++- > > drivers/net/ethernet/intel/ice/ice_eswitch.h | 22 +- > > drivers/net/ethernet/intel/ice/ice_ethtool.c | 7 +- > > drivers/net/ethernet/intel/ice/ice_lib.c | 52 +- > > drivers/net/ethernet/intel/ice/ice_lib.h | 3 + > > drivers/net/ethernet/intel/ice/ice_main.c | 66 ++- > > drivers/net/ethernet/intel/ice/ice_repr.c | 195 +++++-- > > drivers/net/ethernet/intel/ice/ice_repr.h | 22 +- > > drivers/net/ethernet/intel/ice/ice_sf_eth.c | 329 +++++++++++ > > drivers/net/ethernet/intel/ice/ice_sf_eth.h | 33 ++ > > .../ethernet/intel/ice/ice_sf_vsi_vlan_ops.c | 21 + > > .../ethernet/intel/ice/ice_sf_vsi_vlan_ops.h | 13 + > > drivers/net/ethernet/intel/ice/ice_sriov.c | 4 +- > > drivers/net/ethernet/intel/ice/ice_txrx.c | 2 +- > > drivers/net/ethernet/intel/ice/ice_type.h | 1 + > > drivers/net/ethernet/intel/ice/ice_vf_lib.c | 4 +- > > .../net/ethernet/intel/ice/ice_vsi_vlan_ops.c | 4 + > > drivers/net/ethernet/intel/ice/ice_xsk.c | 2 +- > > 26 files changed, 1362 insertions(+), 138 deletions(-) > > create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_eth.c > > create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_eth.h > > create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_vsi_vlan_ops.c > > create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_vsi_vlan_ops.h > > > >-- > >2.42.0 > > > >
Fri, May 10, 2024 at 09:24:48AM CEST, michal.swiatkowski@linux.intel.com wrote: >On Thu, May 09, 2024 at 01:18:29PM +0200, Jiri Pirko wrote: >> Tue, May 07, 2024 at 01:45:01PM CEST, michal.swiatkowski@linux.intel.com wrote: >> >Hi, >> > >> >Currently ice driver does not allow creating more than one networking >> >device per physical function. The only way to have more hardware backed >> >netdev is to use SR-IOV. >> > >> >Following patchset adds support for devlink port API. For each new >> >pcisf type port, driver allocates new VSI, configures all resources >> >needed, including dynamically MSIX vectors, program rules and registers >> >new netdev. >> > >> >This series supports only one Tx/Rx queue pair per subfunction. >> > >> >Example commands: >> >devlink port add pci/0000:31:00.1 flavour pcisf pfnum 1 sfnum 1000 >> >devlink port function set pci/0000:31:00.1/1 hw_addr 00:00:00:00:03:14 >> >devlink port function set pci/0000:31:00.1/1 state active >> >devlink port function del pci/0000:31:00.1/1 >> > >> >Make the port representor and eswitch code generic to support >> >subfunction representor type. >> > >> >VSI configuration is slightly different between VF and SF. It needs to >> >be reflected in the code. >> > >> >Most recent previous patchset (not containing port representor for SF >> >support). [1] >> > >> >[1] https://lore.kernel.org/netdev/20240417142028.2171-1-michal.swiatkowski@linux.intel.com/ >> > >> >> >> I don't understand howcome the patchset is v1, yet there are patches >> that came through multiple iterations alread. Changelog is missing >> completely :/ >> > >What is wrong here? There is a link to previous patchset with whole >changlog and links to previous ones. I didn't add changlog here as it is >new patchset (partialy the same as from [1], because of that I added a >link). I can add the changlog from [1] if you want, but for me it can be >missleading. It's always good to see what you changed if you send modified patches. That's all. > >> >> >Michal Swiatkowski (7): >> > ice: treat subfunction VSI the same as PF VSI >> > ice: create port representor for SF >> > ice: don't set target VSI for subfunction >> > ice: check if SF is ready in ethtool ops >> > ice: netdevice ops for SF representor >> > ice: support subfunction devlink Tx topology >> > ice: basic support for VLAN in subfunctions >> > >> >Piotr Raczynski (7): >> > ice: add new VSI type for subfunctions >> > ice: export ice ndo_ops functions >> > ice: add basic devlink subfunctions support >> > ice: allocate devlink for subfunction >> > ice: base subfunction aux driver >> > ice: implement netdev for subfunction >> > ice: allow to activate and deactivate subfunction >> > >> > drivers/net/ethernet/intel/ice/Makefile | 2 + >> > .../net/ethernet/intel/ice/devlink/devlink.c | 48 ++ >> > .../net/ethernet/intel/ice/devlink/devlink.h | 1 + >> > .../ethernet/intel/ice/devlink/devlink_port.c | 516 ++++++++++++++++++ >> > .../ethernet/intel/ice/devlink/devlink_port.h | 43 ++ >> > drivers/net/ethernet/intel/ice/ice.h | 19 +- >> > drivers/net/ethernet/intel/ice/ice_base.c | 5 +- >> > drivers/net/ethernet/intel/ice/ice_dcb_lib.c | 1 + >> > drivers/net/ethernet/intel/ice/ice_eswitch.c | 85 ++- >> > drivers/net/ethernet/intel/ice/ice_eswitch.h | 22 +- >> > drivers/net/ethernet/intel/ice/ice_ethtool.c | 7 +- >> > drivers/net/ethernet/intel/ice/ice_lib.c | 52 +- >> > drivers/net/ethernet/intel/ice/ice_lib.h | 3 + >> > drivers/net/ethernet/intel/ice/ice_main.c | 66 ++- >> > drivers/net/ethernet/intel/ice/ice_repr.c | 195 +++++-- >> > drivers/net/ethernet/intel/ice/ice_repr.h | 22 +- >> > drivers/net/ethernet/intel/ice/ice_sf_eth.c | 329 +++++++++++ >> > drivers/net/ethernet/intel/ice/ice_sf_eth.h | 33 ++ >> > .../ethernet/intel/ice/ice_sf_vsi_vlan_ops.c | 21 + >> > .../ethernet/intel/ice/ice_sf_vsi_vlan_ops.h | 13 + >> > drivers/net/ethernet/intel/ice/ice_sriov.c | 4 +- >> > drivers/net/ethernet/intel/ice/ice_txrx.c | 2 +- >> > drivers/net/ethernet/intel/ice/ice_type.h | 1 + >> > drivers/net/ethernet/intel/ice/ice_vf_lib.c | 4 +- >> > .../net/ethernet/intel/ice/ice_vsi_vlan_ops.c | 4 + >> > drivers/net/ethernet/intel/ice/ice_xsk.c | 2 +- >> > 26 files changed, 1362 insertions(+), 138 deletions(-) >> > create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_eth.c >> > create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_eth.h >> > create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_vsi_vlan_ops.c >> > create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_vsi_vlan_ops.h >> > >> >-- >> >2.42.0 >> > >> >
On Fri, May 10, 2024 at 01:09:20PM +0200, Jiri Pirko wrote: > Fri, May 10, 2024 at 09:24:48AM CEST, michal.swiatkowski@linux.intel.com wrote: > >On Thu, May 09, 2024 at 01:18:29PM +0200, Jiri Pirko wrote: > >> Tue, May 07, 2024 at 01:45:01PM CEST, michal.swiatkowski@linux.intel.com wrote: > >> >Hi, > >> > > >> >Currently ice driver does not allow creating more than one networking > >> >device per physical function. The only way to have more hardware backed > >> >netdev is to use SR-IOV. > >> > > >> >Following patchset adds support for devlink port API. For each new > >> >pcisf type port, driver allocates new VSI, configures all resources > >> >needed, including dynamically MSIX vectors, program rules and registers > >> >new netdev. > >> > > >> >This series supports only one Tx/Rx queue pair per subfunction. > >> > > >> >Example commands: > >> >devlink port add pci/0000:31:00.1 flavour pcisf pfnum 1 sfnum 1000 > >> >devlink port function set pci/0000:31:00.1/1 hw_addr 00:00:00:00:03:14 > >> >devlink port function set pci/0000:31:00.1/1 state active > >> >devlink port function del pci/0000:31:00.1/1 > >> > > >> >Make the port representor and eswitch code generic to support > >> >subfunction representor type. > >> > > >> >VSI configuration is slightly different between VF and SF. It needs to > >> >be reflected in the code. > >> > > >> >Most recent previous patchset (not containing port representor for SF > >> >support). [1] > >> > > >> >[1] https://lore.kernel.org/netdev/20240417142028.2171-1-michal.swiatkowski@linux.intel.com/ > >> > > >> > >> > >> I don't understand howcome the patchset is v1, yet there are patches > >> that came through multiple iterations alread. Changelog is missing > >> completely :/ > >> > > > >What is wrong here? There is a link to previous patchset with whole > >changlog and links to previous ones. I didn't add changlog here as it is > >new patchset (partialy the same as from [1], because of that I added a > >link). I can add the changlog from [1] if you want, but for me it can be > >missleading. > > It's always good to see what you changed if you send modified patches. > That's all. > I will paste previous changelog in next version so. > > > > >> > >> >Michal Swiatkowski (7): > >> > ice: treat subfunction VSI the same as PF VSI > >> > ice: create port representor for SF > >> > ice: don't set target VSI for subfunction > >> > ice: check if SF is ready in ethtool ops > >> > ice: netdevice ops for SF representor > >> > ice: support subfunction devlink Tx topology > >> > ice: basic support for VLAN in subfunctions > >> > > >> >Piotr Raczynski (7): > >> > ice: add new VSI type for subfunctions > >> > ice: export ice ndo_ops functions > >> > ice: add basic devlink subfunctions support > >> > ice: allocate devlink for subfunction > >> > ice: base subfunction aux driver > >> > ice: implement netdev for subfunction > >> > ice: allow to activate and deactivate subfunction > >> > > >> > drivers/net/ethernet/intel/ice/Makefile | 2 + > >> > .../net/ethernet/intel/ice/devlink/devlink.c | 48 ++ > >> > .../net/ethernet/intel/ice/devlink/devlink.h | 1 + > >> > .../ethernet/intel/ice/devlink/devlink_port.c | 516 ++++++++++++++++++ > >> > .../ethernet/intel/ice/devlink/devlink_port.h | 43 ++ > >> > drivers/net/ethernet/intel/ice/ice.h | 19 +- > >> > drivers/net/ethernet/intel/ice/ice_base.c | 5 +- > >> > drivers/net/ethernet/intel/ice/ice_dcb_lib.c | 1 + > >> > drivers/net/ethernet/intel/ice/ice_eswitch.c | 85 ++- > >> > drivers/net/ethernet/intel/ice/ice_eswitch.h | 22 +- > >> > drivers/net/ethernet/intel/ice/ice_ethtool.c | 7 +- > >> > drivers/net/ethernet/intel/ice/ice_lib.c | 52 +- > >> > drivers/net/ethernet/intel/ice/ice_lib.h | 3 + > >> > drivers/net/ethernet/intel/ice/ice_main.c | 66 ++- > >> > drivers/net/ethernet/intel/ice/ice_repr.c | 195 +++++-- > >> > drivers/net/ethernet/intel/ice/ice_repr.h | 22 +- > >> > drivers/net/ethernet/intel/ice/ice_sf_eth.c | 329 +++++++++++ > >> > drivers/net/ethernet/intel/ice/ice_sf_eth.h | 33 ++ > >> > .../ethernet/intel/ice/ice_sf_vsi_vlan_ops.c | 21 + > >> > .../ethernet/intel/ice/ice_sf_vsi_vlan_ops.h | 13 + > >> > drivers/net/ethernet/intel/ice/ice_sriov.c | 4 +- > >> > drivers/net/ethernet/intel/ice/ice_txrx.c | 2 +- > >> > drivers/net/ethernet/intel/ice/ice_type.h | 1 + > >> > drivers/net/ethernet/intel/ice/ice_vf_lib.c | 4 +- > >> > .../net/ethernet/intel/ice/ice_vsi_vlan_ops.c | 4 + > >> > drivers/net/ethernet/intel/ice/ice_xsk.c | 2 +- > >> > 26 files changed, 1362 insertions(+), 138 deletions(-) > >> > create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_eth.c > >> > create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_eth.h > >> > create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_vsi_vlan_ops.c > >> > create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_vsi_vlan_ops.h > >> > > >> >-- > >> >2.42.0 > >> > > >> >