mbox series

[net-next,v2,00/15,pull,request] ice: support devlink subfunction

Message ID 20240731221028.965449-1-anthony.l.nguyen@intel.com (mailing list archive)
Headers show
Series ice: support devlink subfunction | expand

Message

Tony Nguyen July 31, 2024, 10:10 p.m. UTC
Michal Swiatkowski says:

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.
---
v2:
- Add more recipients

v1: https://lore.kernel.org/netdev/20240729223431.681842-1-anthony.l.nguyen@intel.com/

The following are changes since commit 990c304930138dcd7a49763417e6e5313b81293e:
  Add support for PIO p flag
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 100GbE

Michal Swiatkowski (8):
  ice: treat subfunction VSI the same as PF VSI
  ice: make representor code generic
  ice: create port representor for SF
  ice: don't set target VSI for subfunction
  ice: check if SF is ready in ethtool ops
  ice: implement 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  |  47 ++
 .../net/ethernet/intel/ice/devlink/devlink.h  |   1 +
 .../ethernet/intel/ice/devlink/devlink_port.c | 503 ++++++++++++++++++
 .../ethernet/intel/ice/devlink/devlink_port.h |  46 ++
 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  | 111 +++-
 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     | 211 ++++++--
 drivers/net/ethernet/intel/ice/ice_repr.h     |  22 +-
 drivers/net/ethernet/intel/ice/ice_sf_eth.c   | 331 ++++++++++++
 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, 1396 insertions(+), 137 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

Comments

Jiri Pirko Aug. 1, 2024, 2:32 p.m. UTC | #1
Thu, Aug 01, 2024 at 12:10:11AM CEST, anthony.l.nguyen@intel.com wrote:
>Michal Swiatkowski says:
>
>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.
>---
>v2:
>- Add more recipients
>
>v1: https://lore.kernel.org/netdev/20240729223431.681842-1-anthony.l.nguyen@intel.com/

I'm confused a bit. This is certainly not v2. I replied to couple
versions before. There is no changelog. Hard to track changes :/
Jiri Pirko Aug. 1, 2024, 2:35 p.m. UTC | #2
Thu, Aug 01, 2024 at 12:10:11AM CEST, anthony.l.nguyen@intel.com wrote:
>Michal Swiatkowski says:
>
>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

Hmm, interesting. Did you run these commands or just made that up? There
is no "devlink port function del", in case you wonder why I'm asking. I
would expect you run all the commands you put into examples. Could you?


>
>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.
>---
>v2:
>- Add more recipients
>
>v1: https://lore.kernel.org/netdev/20240729223431.681842-1-anthony.l.nguyen@intel.com/
>
>The following are changes since commit 990c304930138dcd7a49763417e6e5313b81293e:
>  Add support for PIO p flag
>and are available in the git repository at:
>  git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 100GbE
>
>Michal Swiatkowski (8):
>  ice: treat subfunction VSI the same as PF VSI
>  ice: make representor code generic
>  ice: create port representor for SF
>  ice: don't set target VSI for subfunction
>  ice: check if SF is ready in ethtool ops
>  ice: implement 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  |  47 ++
> .../net/ethernet/intel/ice/devlink/devlink.h  |   1 +
> .../ethernet/intel/ice/devlink/devlink_port.c | 503 ++++++++++++++++++
> .../ethernet/intel/ice/devlink/devlink_port.h |  46 ++
> 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  | 111 +++-
> 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     | 211 ++++++--
> drivers/net/ethernet/intel/ice/ice_repr.h     |  22 +-
> drivers/net/ethernet/intel/ice/ice_sf_eth.c   | 331 ++++++++++++
> 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, 1396 insertions(+), 137 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
>
>
Michal Swiatkowski Aug. 2, 2024, 4:48 a.m. UTC | #3
On Thu, Aug 01, 2024 at 04:35:15PM +0200, Jiri Pirko wrote:
> Thu, Aug 01, 2024 at 12:10:11AM CEST, anthony.l.nguyen@intel.com wrote:
> >Michal Swiatkowski says:
> >
> >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
> 
> Hmm, interesting. Did you run these commands or just made that up? There
> is no "devlink port function del", in case you wonder why I'm asking. I
> would expect you run all the commands you put into examples. Could you?

I run all commands, there is mistake in copying, should be:
devlink port del pci/0000:31:00.1/1
of course.

> 
> 
> >
> >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.
> >---
> >v2:
> >- Add more recipients
> >
> >v1: https://lore.kernel.org/netdev/20240729223431.681842-1-anthony.l.nguyen@intel.com/
> >
> >The following are changes since commit 990c304930138dcd7a49763417e6e5313b81293e:
> >  Add support for PIO p flag
> >and are available in the git repository at:
> >  git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 100GbE
> >
> >Michal Swiatkowski (8):
> >  ice: treat subfunction VSI the same as PF VSI
> >  ice: make representor code generic
> >  ice: create port representor for SF
> >  ice: don't set target VSI for subfunction
> >  ice: check if SF is ready in ethtool ops
> >  ice: implement 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  |  47 ++
> > .../net/ethernet/intel/ice/devlink/devlink.h  |   1 +
> > .../ethernet/intel/ice/devlink/devlink_port.c | 503 ++++++++++++++++++
> > .../ethernet/intel/ice/devlink/devlink_port.h |  46 ++
> > 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  | 111 +++-
> > 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     | 211 ++++++--
> > drivers/net/ethernet/intel/ice/ice_repr.h     |  22 +-
> > drivers/net/ethernet/intel/ice/ice_sf_eth.c   | 331 ++++++++++++
> > 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, 1396 insertions(+), 137 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
> >
> >
Michal Swiatkowski Aug. 2, 2024, 5:11 a.m. UTC | #4
On Thu, Aug 01, 2024 at 04:32:56PM +0200, Jiri Pirko wrote:
> Thu, Aug 01, 2024 at 12:10:11AM CEST, anthony.l.nguyen@intel.com wrote:
> >Michal Swiatkowski says:
> >
> >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.
> >---
> >v2:
> >- Add more recipients
> >
> >v1: https://lore.kernel.org/netdev/20240729223431.681842-1-anthony.l.nguyen@intel.com/
> 
> I'm confused a bit. This is certainly not v2. I replied to couple
> versions before. There is no changelog. Hard to track changes :/

You can see all changes here:
https://lore.kernel.org/netdev/20240606112503.1939759-1-michal.swiatkowski@linux.intel.com/

This is pull request from Tony, no changes between it and version from
iwl.
Jiri Pirko Aug. 2, 2024, 6:56 a.m. UTC | #5
Fri, Aug 02, 2024 at 07:11:48AM CEST, michal.swiatkowski@linux.intel.com wrote:
>On Thu, Aug 01, 2024 at 04:32:56PM +0200, Jiri Pirko wrote:
>> Thu, Aug 01, 2024 at 12:10:11AM CEST, anthony.l.nguyen@intel.com wrote:
>> >Michal Swiatkowski says:
>> >
>> >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.
>> >---
>> >v2:
>> >- Add more recipients
>> >
>> >v1: https://lore.kernel.org/netdev/20240729223431.681842-1-anthony.l.nguyen@intel.com/
>> 
>> I'm confused a bit. This is certainly not v2. I replied to couple
>> versions before. There is no changelog. Hard to track changes :/
>
>You can see all changes here:
>https://lore.kernel.org/netdev/20240606112503.1939759-1-michal.swiatkowski@linux.intel.com/
>
>This is pull request from Tony, no changes between it and version from
>iwl.

Why the changelog can't be here too? It's still the same patchset, isn't
it?

>
Michal Swiatkowski Aug. 2, 2024, 7:30 a.m. UTC | #6
On Wed, Jul 31, 2024 at 03:10:11PM -0700, Tony Nguyen wrote:
> Michal Swiatkowski says:
> 
> 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.
> ---
> v2:
> - Add more recipients
> 
> v1: https://lore.kernel.org/netdev/20240729223431.681842-1-anthony.l.nguyen@intel.com/
> 
> The following are changes since commit 990c304930138dcd7a49763417e6e5313b81293e:
>   Add support for PIO p flag
> and are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 100GbE
> 
> Michal Swiatkowski (8):
>   ice: treat subfunction VSI the same as PF VSI
>   ice: make representor code generic
>   ice: create port representor for SF
>   ice: don't set target VSI for subfunction
>   ice: check if SF is ready in ethtool ops
>   ice: implement 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  |  47 ++
>  .../net/ethernet/intel/ice/devlink/devlink.h  |   1 +
>  .../ethernet/intel/ice/devlink/devlink_port.c | 503 ++++++++++++++++++
>  .../ethernet/intel/ice/devlink/devlink_port.h |  46 ++
>  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  | 111 +++-
>  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     | 211 ++++++--
>  drivers/net/ethernet/intel/ice/ice_repr.h     |  22 +-
>  drivers/net/ethernet/intel/ice/ice_sf_eth.c   | 331 ++++++++++++
>  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, 1396 insertions(+), 137 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
> 

[offlist]

Hi Tony,

Am I correct that now I should send v6 to iwl (+CC netdev) when you
remove the patchset from dev-queue? I am little confused with Jiri
comment about versioning PR. I though it is usuall thing.

I already have done the changes that Jiri asked for (and Maciej from
previous version).

Thanks,
Michal
Michal Swiatkowski Aug. 2, 2024, 7:35 a.m. UTC | #7
On Fri, Aug 02, 2024 at 08:56:53AM +0200, Jiri Pirko wrote:
> Fri, Aug 02, 2024 at 07:11:48AM CEST, michal.swiatkowski@linux.intel.com wrote:
> >On Thu, Aug 01, 2024 at 04:32:56PM +0200, Jiri Pirko wrote:
> >> Thu, Aug 01, 2024 at 12:10:11AM CEST, anthony.l.nguyen@intel.com wrote:
> >> >Michal Swiatkowski says:
> >> >
> >> >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.
> >> >---
> >> >v2:
> >> >- Add more recipients
> >> >
> >> >v1: https://lore.kernel.org/netdev/20240729223431.681842-1-anthony.l.nguyen@intel.com/
> >> 
> >> I'm confused a bit. This is certainly not v2. I replied to couple
> >> versions before. There is no changelog. Hard to track changes :/
> >
> >You can see all changes here:
> >https://lore.kernel.org/netdev/20240606112503.1939759-1-michal.swiatkowski@linux.intel.com/
> >
> >This is pull request from Tony, no changes between it and version from
> >iwl.
> 
> Why the changelog can't be here too? It's still the same patchset, isn't
> it?
> 

Correct it is the same patchset. I don't know, I though it is normal
that PR is starting from v1, feels like it was always like that.
Probably Tony is better person to ask about the process here.

> >
Michal Swiatkowski Aug. 2, 2024, 7:38 a.m. UTC | #8
On Fri, Aug 02, 2024 at 09:30:07AM +0200, Michal Swiatkowski wrote:
> On Wed, Jul 31, 2024 at 03:10:11PM -0700, Tony Nguyen wrote:
> > Michal Swiatkowski says:
> > 
> > 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.
> > ---
> > v2:
> > - Add more recipients
> > 
> > v1: https://lore.kernel.org/netdev/20240729223431.681842-1-anthony.l.nguyen@intel.com/
> > 
> > The following are changes since commit 990c304930138dcd7a49763417e6e5313b81293e:
> >   Add support for PIO p flag
> > and are available in the git repository at:
> >   git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 100GbE
> > 
> > Michal Swiatkowski (8):
> >   ice: treat subfunction VSI the same as PF VSI
> >   ice: make representor code generic
> >   ice: create port representor for SF
> >   ice: don't set target VSI for subfunction
> >   ice: check if SF is ready in ethtool ops
> >   ice: implement 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  |  47 ++
> >  .../net/ethernet/intel/ice/devlink/devlink.h  |   1 +
> >  .../ethernet/intel/ice/devlink/devlink_port.c | 503 ++++++++++++++++++
> >  .../ethernet/intel/ice/devlink/devlink_port.h |  46 ++
> >  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  | 111 +++-
> >  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     | 211 ++++++--
> >  drivers/net/ethernet/intel/ice/ice_repr.h     |  22 +-
> >  drivers/net/ethernet/intel/ice/ice_sf_eth.c   | 331 ++++++++++++
> >  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, 1396 insertions(+), 137 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
> > 
> 
> [offlist]

Sorry, for that, forgot to remove CC, before sending. Hope it is not a
problem.

Mail client should have feature like for attachments:
"There is offlisti keyword, are you sure you want to CC someone" :p

> 
> Hi Tony,
> 
> Am I correct that now I should send v6 to iwl (+CC netdev) when you
> remove the patchset from dev-queue? I am little confused with Jiri
> comment about versioning PR. I though it is usuall thing.
> 
> I already have done the changes that Jiri asked for (and Maciej from
> previous version).
> 
> Thanks,
> Michal
Tony Nguyen Aug. 2, 2024, 5:38 p.m. UTC | #9
On 8/2/2024 12:35 AM, Michal Swiatkowski wrote:
> On Fri, Aug 02, 2024 at 08:56:53AM +0200, Jiri Pirko wrote:
>> Fri, Aug 02, 2024 at 07:11:48AM CEST, michal.swiatkowski@linux.intel.com wrote:
>>> On Thu, Aug 01, 2024 at 04:32:56PM +0200, Jiri Pirko wrote:
>>>> Thu, Aug 01, 2024 at 12:10:11AM CEST, anthony.l.nguyen@intel.com wrote:
>>>>> Michal Swiatkowski says:
>>>>>
>>>>> 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.
>>>>> ---
>>>>> v2:
>>>>> - Add more recipients
>>>>>
>>>>> v1: https://lore.kernel.org/netdev/20240729223431.681842-1-anthony.l.nguyen@intel.com/
>>>>
>>>> I'm confused a bit. This is certainly not v2. I replied to couple
>>>> versions before. There is no changelog. Hard to track changes :/
>>>
>>> You can see all changes here:
>>> https://lore.kernel.org/netdev/20240606112503.1939759-1-michal.swiatkowski@linux.intel.com/
>>>
>>> This is pull request from Tony, no changes between it and version from
>>> iwl.
>>
>> Why the changelog can't be here too? It's still the same patchset, isn't
>> it?
>>
> 
> Correct it is the same patchset. I don't know, I though it is normal
> that PR is starting from v1, feels like it was always like that.
> Probably Tony is better person to ask about the process here.

The previous patches were 'iwl-next', when we send to 'net-next' we 
reset the versions since it's going to a new list.

Thanks,
Tony
Jiri Pirko Aug. 3, 2024, 6:51 a.m. UTC | #10
Fri, Aug 02, 2024 at 07:38:34PM CEST, anthony.l.nguyen@intel.com wrote:
>
>
>On 8/2/2024 12:35 AM, Michal Swiatkowski wrote:
>> On Fri, Aug 02, 2024 at 08:56:53AM +0200, Jiri Pirko wrote:
>> > Fri, Aug 02, 2024 at 07:11:48AM CEST, michal.swiatkowski@linux.intel.com wrote:
>> > > On Thu, Aug 01, 2024 at 04:32:56PM +0200, Jiri Pirko wrote:
>> > > > Thu, Aug 01, 2024 at 12:10:11AM CEST, anthony.l.nguyen@intel.com wrote:
>> > > > > Michal Swiatkowski says:
>> > > > > 
>> > > > > 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.
>> > > > > ---
>> > > > > v2:
>> > > > > - Add more recipients
>> > > > > 
>> > > > > v1: https://lore.kernel.org/netdev/20240729223431.681842-1-anthony.l.nguyen@intel.com/
>> > > > 
>> > > > I'm confused a bit. This is certainly not v2. I replied to couple
>> > > > versions before. There is no changelog. Hard to track changes :/
>> > > 
>> > > You can see all changes here:
>> > > https://lore.kernel.org/netdev/20240606112503.1939759-1-michal.swiatkowski@linux.intel.com/
>> > > 
>> > > This is pull request from Tony, no changes between it and version from
>> > > iwl.
>> > 
>> > Why the changelog can't be here too? It's still the same patchset, isn't
>> > it?
>> > 
>> 
>> Correct it is the same patchset. I don't know, I though it is normal
>> that PR is starting from v1, feels like it was always like that.
>> Probably Tony is better person to ask about the process here.
>
>The previous patches were 'iwl-next', when we send to 'net-next' we reset the
>versions since it's going to a new list.

I still see it in the same list. Same patchset.


>
>Thanks,
>Tony
Tony Nguyen Aug. 6, 2024, 9:13 p.m. UTC | #11
On 8/2/2024 11:51 PM, Jiri Pirko wrote:
> Fri, Aug 02, 2024 at 07:38:34PM CEST, anthony.l.nguyen@intel.com wrote:
>>
>>
>> On 8/2/2024 12:35 AM, Michal Swiatkowski wrote:
>>> On Fri, Aug 02, 2024 at 08:56:53AM +0200, Jiri Pirko wrote:
>>>> Fri, Aug 02, 2024 at 07:11:48AM CEST, michal.swiatkowski@linux.intel.com wrote:
>>>>> On Thu, Aug 01, 2024 at 04:32:56PM +0200, Jiri Pirko wrote:
>>>>>> Thu, Aug 01, 2024 at 12:10:11AM CEST, anthony.l.nguyen@intel.com wrote:
>>>>>>> Michal Swiatkowski says:
>>>>>>>
>>>>>>> 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.
>>>>>>> ---
>>>>>>> v2:
>>>>>>> - Add more recipients
>>>>>>>
>>>>>>> v1: https://lore.kernel.org/netdev/20240729223431.681842-1-anthony.l.nguyen@intel.com/
>>>>>>
>>>>>> I'm confused a bit. This is certainly not v2. I replied to couple
>>>>>> versions before. There is no changelog. Hard to track changes :/
>>>>>
>>>>> You can see all changes here:
>>>>> https://lore.kernel.org/netdev/20240606112503.1939759-1-michal.swiatkowski@linux.intel.com/
>>>>>
>>>>> This is pull request from Tony, no changes between it and version from
>>>>> iwl.
>>>>
>>>> Why the changelog can't be here too? It's still the same patchset, isn't
>>>> it?
>>>>
>>>
>>> Correct it is the same patchset. I don't know, I though it is normal
>>> that PR is starting from v1, feels like it was always like that.
>>> Probably Tony is better person to ask about the process here.
>>
>> The previous patches were 'iwl-next', when we send to 'net-next' we reset the
>> versions since it's going to a new list.
> 
> I still see it in the same list. Same patchset.

While it happened for this pull request, this is not always the case. 
For situations like this, I can add a link back to the iwl-next version 
so that it can be easily tracked back.

Thanks,
Tony