mbox series

[v4,0/7] add Intel DCF PMD support

Message ID 20200326030346.32907-1-haiyue.wang@intel.com (mailing list archive)
Headers
Series add Intel DCF PMD support |

Message

Wang, Haiyue March 26, 2020, 3:03 a.m. UTC
  A DCF (Device Config Function) based approach is proposed where a device
bound to the device's VF0 can act as a sole controlling entity to exercise
advance functionality (such as switch, ACL) for rest of the VFs.

The DCF works as a standalone PMD to support this function, which shares the
ice PMD flow control core function and the iavf virtchnl mailbox core module.

v4:
   Change the alarm handler to thread service, since it will need to do more
   work.

v3:
   1. Fixed the error log message format.
   2. Fixed some memory allocation check.
   3. Fixed some code style issue and commmit message description.

v2: 
   1. update the iavf patchset link.
   2. split more patches for making this work be more understandable
   3. fix the log function usage, devargs checking from v1.

Haiyue Wang (7):
  net/iavf: stop the PCI probe in DCF mode
  net/ice: add the DCF hardware initialization
  net/ice: acquire and disable the DCF capability
  net/ice: handle the AdminQ command by DCF
  net/ice: export the DDP definition symbols
  net/ice: handle the PF initialization by DCF
  net/ice: get the VF hardware index in DCF

 doc/guides/nics/ice.rst                |  47 ++
 doc/guides/nics/img/ice_dcf.png        | Bin 0 -> 39168 bytes
 doc/guides/rel_notes/release_20_05.rst |   5 +
 drivers/common/Makefile                |   1 +
 drivers/net/iavf/iavf_ethdev.c         |  43 ++
 drivers/net/ice/Makefile               |   6 +
 drivers/net/ice/ice_dcf.c              | 658 +++++++++++++++++++++++++
 drivers/net/ice/ice_dcf.h              |  63 +++
 drivers/net/ice/ice_dcf_ethdev.c       | 321 ++++++++++++
 drivers/net/ice/ice_dcf_ethdev.h       |  33 ++
 drivers/net/ice/ice_dcf_parent.c       | 351 +++++++++++++
 drivers/net/ice/ice_ethdev.c           |   9 +-
 drivers/net/ice/ice_ethdev.h           |   8 +
 drivers/net/ice/meson.build            |   8 +-
 mk/rte.app.mk                          |   1 +
 15 files changed, 1544 insertions(+), 10 deletions(-)
 create mode 100644 doc/guides/nics/img/ice_dcf.png
 create mode 100644 drivers/net/ice/ice_dcf.c
 create mode 100644 drivers/net/ice/ice_dcf.h
 create mode 100644 drivers/net/ice/ice_dcf_ethdev.c
 create mode 100644 drivers/net/ice/ice_dcf_ethdev.h
 create mode 100644 drivers/net/ice/ice_dcf_parent.c
  

Comments

Qi Zhang March 26, 2020, 4:11 a.m. UTC | #1
> -----Original Message-----
> From: Wang, Haiyue <haiyue.wang@intel.com>
> Sent: Thursday, March 26, 2020 11:04 AM
> To: dev@dpdk.org; Ye, Xiaolong <xiaolong.ye@intel.com>; Zhang, Qi Z
> <qi.z.zhang@intel.com>; Yang, Qiming <qiming.yang@intel.com>; Xing, Beilei
> <beilei.xing@intel.com>
> Cc: Zhao1, Wei <wei.zhao1@intel.com>; Wang, Haiyue
> <haiyue.wang@intel.com>
> Subject: [PATCH v4 0/7] add Intel DCF PMD support
> 
> A DCF (Device Config Function) based approach is proposed where a device
> bound to the device's VF0 can act as a sole controlling entity to exercise
> advance functionality (such as switch, ACL) for rest of the VFs.
> 
> The DCF works as a standalone PMD to support this function, which shares
> the ice PMD flow control core function and the iavf virtchnl mailbox core
> module.
> 
> v4:
>    Change the alarm handler to thread service, since it will need to do more
>    work.
> 
> v3:
>    1. Fixed the error log message format.
>    2. Fixed some memory allocation check.
>    3. Fixed some code style issue and commmit message description.
> 
> v2:
>    1. update the iavf patchset link.
>    2. split more patches for making this work be more understandable
>    3. fix the log function usage, devargs checking from v1.
> 
> Haiyue Wang (7):
>   net/iavf: stop the PCI probe in DCF mode
>   net/ice: add the DCF hardware initialization
>   net/ice: acquire and disable the DCF capability
>   net/ice: handle the AdminQ command by DCF
>   net/ice: export the DDP definition symbols
>   net/ice: handle the PF initialization by DCF
>   net/ice: get the VF hardware index in DCF
> 
>  doc/guides/nics/ice.rst                |  47 ++
>  doc/guides/nics/img/ice_dcf.png        | Bin 0 -> 39168 bytes
>  doc/guides/rel_notes/release_20_05.rst |   5 +
>  drivers/common/Makefile                |   1 +
>  drivers/net/iavf/iavf_ethdev.c         |  43 ++
>  drivers/net/ice/Makefile               |   6 +
>  drivers/net/ice/ice_dcf.c              | 658
> +++++++++++++++++++++++++
>  drivers/net/ice/ice_dcf.h              |  63 +++
>  drivers/net/ice/ice_dcf_ethdev.c       | 321 ++++++++++++
>  drivers/net/ice/ice_dcf_ethdev.h       |  33 ++
>  drivers/net/ice/ice_dcf_parent.c       | 351 +++++++++++++
>  drivers/net/ice/ice_ethdev.c           |   9 +-
>  drivers/net/ice/ice_ethdev.h           |   8 +
>  drivers/net/ice/meson.build            |   8 +-
>  mk/rte.app.mk                          |   1 +
>  15 files changed, 1544 insertions(+), 10 deletions(-)  create mode 100644
> doc/guides/nics/img/ice_dcf.png  create mode 100644
> drivers/net/ice/ice_dcf.c  create mode 100644 drivers/net/ice/ice_dcf.h
> create mode 100644 drivers/net/ice/ice_dcf_ethdev.c  create mode 100644
> drivers/net/ice/ice_dcf_ethdev.h  create mode 100644
> drivers/net/ice/ice_dcf_parent.c
> 
> --
> 2.26.0

Acked-by: Qi Zhang <qi.z.zhang@intel.com>
  
Xiaolong Ye March 26, 2020, 5:05 a.m. UTC | #2
There is build error about this patchset, could you double check?


OS: CENTOS77-64
Target: x86_64-native-linuxapp-gcc+shared
  LD librte_pmd_ice.so.20.0.2
  CC sfc_ev.o
ice_dcf_parent.o: In function `ice_dcf_handle_pf_event_msg':
ice_dcf_parent.c:(.text+0x556): undefined reference to `pthread_create'
collect2: error: ld returned 1 exit status
make[6]: *** [librte_pmd_ice.so.20.0.2] Error 1
make[5]: *** [ice] Error 2
make[5]: *** Waiting for unfinished jobs....
  CC sfc_port.o
  CC bnxt_rxtx_vec_sse.o
  CC sfc_rx.o
  CC nicvf_hw.o
--
  CC medford2_nic.o
  LD librte_pmd_octeontx2.so.20.0.2
  INSTALL-LIB librte_pmd_octeontx2.so.20.0.2
  LD librte_pmd_sfc_efx.so.20.0.2
  INSTALL-LIB librte_pmd_sfc_efx.so.20.0.2
make[4]: *** [net] Error 2
make[3]: *** [drivers] Error 2
make[2]: *** [all] Error 2
make[1]: *** [pre_install] Error 2
make: *** [install] Error 2

http://mails.dpdk.org/archives/test-report/2020-March/122145.html

On 03/26, Haiyue Wang wrote:
>A DCF (Device Config Function) based approach is proposed where a device
>bound to the device's VF0 can act as a sole controlling entity to exercise
>advance functionality (such as switch, ACL) for rest of the VFs.
>
>The DCF works as a standalone PMD to support this function, which shares the
>ice PMD flow control core function and the iavf virtchnl mailbox core module.
>
>v4:
>   Change the alarm handler to thread service, since it will need to do more
>   work.
>
>v3:
>   1. Fixed the error log message format.
>   2. Fixed some memory allocation check.
>   3. Fixed some code style issue and commmit message description.
>
>v2: 
>   1. update the iavf patchset link.
>   2. split more patches for making this work be more understandable
>   3. fix the log function usage, devargs checking from v1.
>
>Haiyue Wang (7):
>  net/iavf: stop the PCI probe in DCF mode
>  net/ice: add the DCF hardware initialization
>  net/ice: acquire and disable the DCF capability
>  net/ice: handle the AdminQ command by DCF
>  net/ice: export the DDP definition symbols
>  net/ice: handle the PF initialization by DCF
>  net/ice: get the VF hardware index in DCF
>
> doc/guides/nics/ice.rst                |  47 ++
> doc/guides/nics/img/ice_dcf.png        | Bin 0 -> 39168 bytes
> doc/guides/rel_notes/release_20_05.rst |   5 +
> drivers/common/Makefile                |   1 +
> drivers/net/iavf/iavf_ethdev.c         |  43 ++
> drivers/net/ice/Makefile               |   6 +
> drivers/net/ice/ice_dcf.c              | 658 +++++++++++++++++++++++++
> drivers/net/ice/ice_dcf.h              |  63 +++
> drivers/net/ice/ice_dcf_ethdev.c       | 321 ++++++++++++
> drivers/net/ice/ice_dcf_ethdev.h       |  33 ++
> drivers/net/ice/ice_dcf_parent.c       | 351 +++++++++++++
> drivers/net/ice/ice_ethdev.c           |   9 +-
> drivers/net/ice/ice_ethdev.h           |   8 +
> drivers/net/ice/meson.build            |   8 +-
> mk/rte.app.mk                          |   1 +
> 15 files changed, 1544 insertions(+), 10 deletions(-)
> create mode 100644 doc/guides/nics/img/ice_dcf.png
> create mode 100644 drivers/net/ice/ice_dcf.c
> create mode 100644 drivers/net/ice/ice_dcf.h
> create mode 100644 drivers/net/ice/ice_dcf_ethdev.c
> create mode 100644 drivers/net/ice/ice_dcf_ethdev.h
> create mode 100644 drivers/net/ice/ice_dcf_parent.c
>
>-- 
>2.26.0
>
  
Wang, Haiyue March 26, 2020, 5:26 a.m. UTC | #3
Hi Xiaolong,

Yes, found the root cause. Will fix it next version.

BR,
Haiyue

> -----Original Message-----
> From: Ye, Xiaolong <xiaolong.ye@intel.com>
> Sent: Thursday, March 26, 2020 13:06
> To: Wang, Haiyue <haiyue.wang@intel.com>
> Cc: dev@dpdk.org; Zhang, Qi Z <qi.z.zhang@intel.com>; Yang, Qiming <qiming.yang@intel.com>; Xing,
> Beilei <beilei.xing@intel.com>; Zhao1, Wei <wei.zhao1@intel.com>
> Subject: Re: [PATCH v4 0/7] add Intel DCF PMD support
> 
> 
> There is build error about this patchset, could you double check?
> 
> 
> OS: CENTOS77-64
> Target: x86_64-native-linuxapp-gcc+shared
>   LD librte_pmd_ice.so.20.0.2
>   CC sfc_ev.o
> ice_dcf_parent.o: In function `ice_dcf_handle_pf_event_msg':
> ice_dcf_parent.c:(.text+0x556): undefined reference to `pthread_create'
> collect2: error: ld returned 1 exit status
> make[6]: *** [librte_pmd_ice.so.20.0.2] Error 1
> make[5]: *** [ice] Error 2
> make[5]: *** Waiting for unfinished jobs....
>   CC sfc_port.o
>   CC bnxt_rxtx_vec_sse.o
>   CC sfc_rx.o
>   CC nicvf_hw.o
> --
>   CC medford2_nic.o
>   LD librte_pmd_octeontx2.so.20.0.2
>   INSTALL-LIB librte_pmd_octeontx2.so.20.0.2
>   LD librte_pmd_sfc_efx.so.20.0.2
>   INSTALL-LIB librte_pmd_sfc_efx.so.20.0.2
> make[4]: *** [net] Error 2
> make[3]: *** [drivers] Error 2
> make[2]: *** [all] Error 2
> make[1]: *** [pre_install] Error 2
> make: *** [install] Error 2
> 
> http://mails.dpdk.org/archives/test-report/2020-March/122145.html
> 
> On 03/26, Haiyue Wang wrote:
> >A DCF (Device Config Function) based approach is proposed where a device
> >bound to the device's VF0 can act as a sole controlling entity to exercise
> >advance functionality (such as switch, ACL) for rest of the VFs.
> >
> >The DCF works as a standalone PMD to support this function, which shares the
> >ice PMD flow control core function and the iavf virtchnl mailbox core module.
> >
> >v4:
> >   Change the alarm handler to thread service, since it will need to do more
> >   work.
> >
> >v3:
> >   1. Fixed the error log message format.
> >   2. Fixed some memory allocation check.
> >   3. Fixed some code style issue and commmit message description.
> >
> >v2:
> >   1. update the iavf patchset link.
> >   2. split more patches for making this work be more understandable
> >   3. fix the log function usage, devargs checking from v1.
> >
> >Haiyue Wang (7):
> >  net/iavf: stop the PCI probe in DCF mode
> >  net/ice: add the DCF hardware initialization
> >  net/ice: acquire and disable the DCF capability
> >  net/ice: handle the AdminQ command by DCF
> >  net/ice: export the DDP definition symbols
> >  net/ice: handle the PF initialization by DCF
> >  net/ice: get the VF hardware index in DCF
> >
> > doc/guides/nics/ice.rst                |  47 ++
> > doc/guides/nics/img/ice_dcf.png        | Bin 0 -> 39168 bytes
> > doc/guides/rel_notes/release_20_05.rst |   5 +
> > drivers/common/Makefile                |   1 +
> > drivers/net/iavf/iavf_ethdev.c         |  43 ++
> > drivers/net/ice/Makefile               |   6 +
> > drivers/net/ice/ice_dcf.c              | 658 +++++++++++++++++++++++++
> > drivers/net/ice/ice_dcf.h              |  63 +++
> > drivers/net/ice/ice_dcf_ethdev.c       | 321 ++++++++++++
> > drivers/net/ice/ice_dcf_ethdev.h       |  33 ++
> > drivers/net/ice/ice_dcf_parent.c       | 351 +++++++++++++
> > drivers/net/ice/ice_ethdev.c           |   9 +-
> > drivers/net/ice/ice_ethdev.h           |   8 +
> > drivers/net/ice/meson.build            |   8 +-
> > mk/rte.app.mk                          |   1 +
> > 15 files changed, 1544 insertions(+), 10 deletions(-)
> > create mode 100644 doc/guides/nics/img/ice_dcf.png
> > create mode 100644 drivers/net/ice/ice_dcf.c
> > create mode 100644 drivers/net/ice/ice_dcf.h
> > create mode 100644 drivers/net/ice/ice_dcf_ethdev.c
> > create mode 100644 drivers/net/ice/ice_dcf_ethdev.h
> > create mode 100644 drivers/net/ice/ice_dcf_parent.c
> >
> >--
> >2.26.0
> >