mbox series

[net-next,v4,0/6] add sriov support for wangxun NICs

Message ID 3601E5DE87D2BC4F+20240604155850.51983-1-mengyuanlou@net-swift.com (mailing list archive)
Headers show
Series add sriov support for wangxun NICs | expand

Message

Mengyuan Lou June 4, 2024, 3:57 p.m. UTC
Add sriov_configure for ngbe and txgbe drivers.
Reallocate queue and irq resources when sriov is enabled.
Add wx_msg_task in interrupts handler, which is used to process the
configuration sent by vfs.
Add ping_vf for wx_pf to tell vfs about pf link change.

changes v4:
- Simon Horman
Move wx_ping_vf to patch 6.
Modify return section format in Kernel docs.
changes v3:
- Jakub Kicinski
Do not accept any new implementations of the old SR-IOV API.
So remove ndo_vf_xxx in these patches. Switch mode ops will be added
in vf driver which will be submitted later.
changes v2:
- Simon Horman:
Fix some used uninitialised.
- Sunil:
Use poll + yield with delay instead of busy poll of 10 times
in mbx_lock obtain.
Split ndo_vf_xxx , msg_task and flow into separate patches.

Mengyuan Lou (6):
  net: libwx: Add malibox api for wangxun pf drivers
  net: libwx: Add sriov api for wangxun nics
  net: libwx: Redesign flow when sriov is enabled
  net: libwx: Add msg task func
  net: ngbe: add sriov function support
  net: txgbe: add sriov function support

 drivers/net/ethernet/wangxun/libwx/Makefile   |    2 +-
 drivers/net/ethernet/wangxun/libwx/wx_hw.c    |  303 ++++-
 drivers/net/ethernet/wangxun/libwx/wx_hw.h    |    4 +
 drivers/net/ethernet/wangxun/libwx/wx_lib.c   |  129 ++-
 drivers/net/ethernet/wangxun/libwx/wx_mbx.c   |  189 +++
 drivers/net/ethernet/wangxun/libwx/wx_mbx.h   |   86 ++
 drivers/net/ethernet/wangxun/libwx/wx_sriov.c | 1019 +++++++++++++++++
 drivers/net/ethernet/wangxun/libwx/wx_sriov.h |   14 +
 drivers/net/ethernet/wangxun/libwx/wx_type.h  |  100 +-
 drivers/net/ethernet/wangxun/ngbe/ngbe_main.c |   58 +-
 drivers/net/ethernet/wangxun/ngbe/ngbe_mdio.c |   10 +
 drivers/net/ethernet/wangxun/ngbe/ngbe_type.h |    2 +
 .../net/ethernet/wangxun/txgbe/txgbe_irq.c    |   25 +-
 .../net/ethernet/wangxun/txgbe/txgbe_main.c   |   23 +
 .../net/ethernet/wangxun/txgbe/txgbe_phy.c    |    8 +
 .../net/ethernet/wangxun/txgbe/txgbe_type.h   |    4 +-
 16 files changed, 1947 insertions(+), 29 deletions(-)
 create mode 100644 drivers/net/ethernet/wangxun/libwx/wx_mbx.c
 create mode 100644 drivers/net/ethernet/wangxun/libwx/wx_mbx.h
 create mode 100644 drivers/net/ethernet/wangxun/libwx/wx_sriov.c
 create mode 100644 drivers/net/ethernet/wangxun/libwx/wx_sriov.h

Comments

Jakub Kicinski June 6, 2024, 12:42 a.m. UTC | #1
On Tue,  4 Jun 2024 23:57:29 +0800 Mengyuan Lou wrote:
> Add sriov_configure for ngbe and txgbe drivers.
> Reallocate queue and irq resources when sriov is enabled.
> Add wx_msg_task in interrupts handler, which is used to process the
> configuration sent by vfs.
> Add ping_vf for wx_pf to tell vfs about pf link change.

You have cut out the ndo_set_vf_* calls but you seem to add no uAPI
access beyond just enabling the PCI SR-IOV capability. What's your plan
of making this actually usable? It's a very strange submission.
Mengyuan Lou June 6, 2024, 10:13 a.m. UTC | #2
> 2024年6月6日 08:42,Jakub Kicinski <kuba@kernel.org> 写道:
> 
> On Tue,  4 Jun 2024 23:57:29 +0800 Mengyuan Lou wrote:
>> Add sriov_configure for ngbe and txgbe drivers.
>> Reallocate queue and irq resources when sriov is enabled.
>> Add wx_msg_task in interrupts handler, which is used to process the
>> configuration sent by vfs.
>> Add ping_vf for wx_pf to tell vfs about pf link change.
> 
> You have cut out the ndo_set_vf_* calls but you seem to add no uAPI
> access beyond just enabling the PCI SR-IOV capability. What's your plan
> of making this actually usable? It's a very strange submission.

 Vf driver(wxvf) will be submitted later, uAPI for virtual network devices will
be added in it.
Jakub Kicinski June 6, 2024, 1:52 p.m. UTC | #3
On Thu, 6 Jun 2024 18:13:07 +0800 mengyuanlou@net-swift.com wrote:
> > You have cut out the ndo_set_vf_* calls but you seem to add no uAPI
> > access beyond just enabling the PCI SR-IOV capability. What's your plan
> > of making this actually usable? It's a very strange submission.  
> 
>  Vf driver(wxvf) will be submitted later, uAPI for virtual network devices will
> be added in it.

I mean the configuration API equivalent to the legacy NDOs.
Mengyuan Lou June 7, 2024, 10:50 a.m. UTC | #4
> 2024年6月6日 21:52,Jakub Kicinski <kuba@kernel.org> 写道:
> 
> On Thu, 6 Jun 2024 18:13:07 +0800 mengyuanlou@net-swift.com wrote:
>>> You have cut out the ndo_set_vf_* calls but you seem to add no uAPI
>>> access beyond just enabling the PCI SR-IOV capability. What's your plan
>>> of making this actually usable? It's a very strange submission.  
>> 
>> Vf driver(wxvf) will be submitted later, uAPI for virtual network devices will
>> be added in it.
> 
> I mean the configuration API equivalent to the legacy NDOs.
> 

It starts here.
- https://lore.kernel.org/netdev/20240403185300.702a8271@kernel.org/

> + .ndo_set_vf_spoofchk = wx_ndo_set_vf_spoofchk,
> + .ndo_set_vf_link_state = wx_ndo_set_vf_link_state,
> + .ndo_get_vf_config = wx_ndo_get_vf_config,
> + .ndo_set_vf_vlan = wx_ndo_set_vf_vlan,
> + .ndo_set_vf_mac = wx_ndo_set_vf_mac,

Whether these interfaces are going to be deprecated, and I have no idea
about what new apis can replace the ndo_{set|get}_vf_xxx interfaces.

I have seen recently submitted driver(octeon_ep) which support sriov, do not 
add ndo_{set|get}_vf_xxx interfaces.
- https://lore.kernel.org/netdev/20231215181425.2681426-1-srasheed@marvell.com/

If I have missed some docs or code?