mbox series

[0/3] refresh NIC features matrix

Message ID 20200311230136.63452-1-thomas@monjalon.net (mailing list archive)
Headers
Series refresh NIC features matrix |

Message

Thomas Monjalon March 11, 2020, 11:01 p.m. UTC
  This series aims to clean-up the big table of ethdev features:
  http://doc.dpdk.org/guides/nics/overview.html#id1

We could reorganize the information in this table,
maybe split it or add/remove some rows.
Before going to such reorganization, we should clean it up.

The first patch is fixing the look & size of the table with recent sphinx.

The second and third patches are removing 8 columns which are
clearly unneeded:
  - bnx2x_vf
  - bonding
  - kni
  - nfp_vf
  - null
  - ring
  - softnic
  - vdev_netvsc

More columns can be removed by merging PF/VF and vector datapaths.
If a feature cannot be supported in all cases, it should be marked
as partially supported (P).
If a feature is PF-specific (like flow control), that's OK to mark
it fully supported because it's obviously impossible for VF.
There are also some features which were probably marked in some
columns and missed in its VF or vector counterpart.
Please work to merge and drop these 16 columns:
  - cxgbevf
  - fm10k_vf
  - hns3_vf
  - i40e_vec
  - i40e_vf
  - i40e_vf_vec
  - iavf_vec
  - ice_vec
  - igb_vf
  - ixgbe_vec
  - ixgbe_vf
  - ixgbe_vf_vec
  - octeontx2_vec
  - octeontx2_vf
  - qede_vf
  - virtio_vec

The total gain is to reduce the table size from 71 to 47 columns.

Please send patches for Chelsio, Huawei, Intel, Marvell and virtio.


Thomas Monjalon (3):
  doc: fix matrix CSS for recent sphinx
  doc: remove empty columns from NIC features matrix
  doc: remove similar columns from NIC features matrix

 doc/guides/conf.py                       | 16 +++++++++----
 doc/guides/nics/features/bnx2x.ini       |  1 +
 doc/guides/nics/features/bnx2x_vf.ini    | 18 ---------------
 doc/guides/nics/features/bonding.ini     |  6 -----
 doc/guides/nics/features/kni.ini         |  7 ------
 doc/guides/nics/features/nfp_vf.ini      | 29 ------------------------
 doc/guides/nics/features/null.ini        |  6 -----
 doc/guides/nics/features/ring.ini        |  6 -----
 doc/guides/nics/features/softnic.ini     |  9 --------
 doc/guides/nics/features/vdev_netvsc.ini | 12 ----------
 10 files changed, 13 insertions(+), 97 deletions(-)
 delete mode 100644 doc/guides/nics/features/bnx2x_vf.ini
 delete mode 100644 doc/guides/nics/features/bonding.ini
 delete mode 100644 doc/guides/nics/features/kni.ini
 delete mode 100644 doc/guides/nics/features/nfp_vf.ini
 delete mode 100644 doc/guides/nics/features/null.ini
 delete mode 100644 doc/guides/nics/features/ring.ini
 delete mode 100644 doc/guides/nics/features/softnic.ini
 delete mode 100644 doc/guides/nics/features/vdev_netvsc.ini
  

Comments

Thomas Monjalon March 18, 2020, 11:42 a.m. UTC | #1
Ping for review and action on follow-up patches please.
I hope we won't have to block patches to get things done.

Ferruh, I think we need an action plan.


12/03/2020 00:01, Thomas Monjalon:
> This series aims to clean-up the big table of ethdev features:
>   http://doc.dpdk.org/guides/nics/overview.html#id1
> 
> We could reorganize the information in this table,
> maybe split it or add/remove some rows.
> Before going to such reorganization, we should clean it up.
> 
> The first patch is fixing the look & size of the table with recent sphinx.
> 
> The second and third patches are removing 8 columns which are
> clearly unneeded:
>   - bnx2x_vf
>   - bonding
>   - kni
>   - nfp_vf
>   - null
>   - ring
>   - softnic
>   - vdev_netvsc
> 
> More columns can be removed by merging PF/VF and vector datapaths.
> If a feature cannot be supported in all cases, it should be marked
> as partially supported (P).
> If a feature is PF-specific (like flow control), that's OK to mark
> it fully supported because it's obviously impossible for VF.
> There are also some features which were probably marked in some
> columns and missed in its VF or vector counterpart.
> Please work to merge and drop these 16 columns:
>   - cxgbevf
>   - fm10k_vf
>   - hns3_vf
>   - i40e_vec
>   - i40e_vf
>   - i40e_vf_vec
>   - iavf_vec
>   - ice_vec
>   - igb_vf
>   - ixgbe_vec
>   - ixgbe_vf
>   - ixgbe_vf_vec
>   - octeontx2_vec
>   - octeontx2_vf
>   - qede_vf
>   - virtio_vec
> 
> The total gain is to reduce the table size from 71 to 47 columns.
> 
> Please send patches for Chelsio, Huawei, Intel, Marvell and virtio.
  
Qi Zhang March 20, 2020, 5:35 a.m. UTC | #2
Hi Thomas:

> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Thursday, March 12, 2020 7:02 AM
> To: dev@dpdk.org
> Cc: rahul.lakkireddy@chelsio.com; Zhang, Qi Z <qi.z.zhang@intel.com>; Wang,
> Xiao W <xiao.w.wang@intel.com>; xavier.huwei@huawei.com; Xing, Beilei
> <beilei.xing@intel.com>; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Yang, Qiming
> <qiming.yang@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; Yigit, Ferruh <ferruh.yigit@intel.com>;
> jerinj@marvell.com; rmody@marvell.com; shshaikh@marvell.com;
> maxime.coquelin@redhat.com; Ye, Xiaolong <xiaolong.ye@intel.com>
> Subject: [PATCH 0/3] refresh NIC features matrix
> 
> This series aims to clean-up the big table of ethdev features:
>   http://doc.dpdk.org/guides/nics/overview.html#id1
> 
> We could reorganize the information in this table, maybe split it or add/remove
> some rows.
> Before going to such reorganization, we should clean it up.
> 
> The first patch is fixing the look & size of the table with recent sphinx.
> 
> The second and third patches are removing 8 columns which are clearly
> unneeded:
>   - bnx2x_vf
>   - bonding
>   - kni
>   - nfp_vf
>   - null
>   - ring
>   - softnic
>   - vdev_netvsc
> 
> More columns can be removed by merging PF/VF and vector datapaths.
> If a feature cannot be supported in all cases, it should be marked as partially
> supported (P).
> If a feature is PF-specific (like flow control), that's OK to mark it fully supported
> because it's obviously impossible for VF.
> There are also some features which were probably marked in some columns
> and missed in its VF or vector counterpart.
> Please work to merge and drop these 16 columns:
>   - cxgbevf
>   - fm10k_vf
>   - hns3_vf
>   - i40e_vec
>   - i40e_vf
>   - i40e_vf_vec
>   - iavf_vec
>   - ice_vec
>   - igb_vf
>   - ixgbe_vec
>   - ixgbe_vf
>   - ixgbe_vf_vec
>   - octeontx2_vec
>   - octeontx2_vf
>   - qede_vf
>   - virtio_vec
> 
> The total gain is to reduce the table size from 71 to 47 columns.

I agree to remove all the column with "vec", since vector PMD can be regarded as a feature of the a PMD.
But I'm not sure if it is a good idea to merge VF and PF into one column.
From my view, for intel device, VF driver and PF driver just share the code, but they actually are running at two different context.
And likely they will support different feature, merge into one column may confuse our customer if they want to understand what exactly the PMD support.

Thanks
Qi

> 
> Please send patches for Chelsio, Huawei, Intel, Marvell and virtio.
> 
> 
> Thomas Monjalon (3):
>   doc: fix matrix CSS for recent sphinx
>   doc: remove empty columns from NIC features matrix
>   doc: remove similar columns from NIC features matrix
> 
>  doc/guides/conf.py                       | 16 +++++++++----
>  doc/guides/nics/features/bnx2x.ini       |  1 +
>  doc/guides/nics/features/bnx2x_vf.ini    | 18 ---------------
>  doc/guides/nics/features/bonding.ini     |  6 -----
>  doc/guides/nics/features/kni.ini         |  7 ------
>  doc/guides/nics/features/nfp_vf.ini      | 29 ------------------------
>  doc/guides/nics/features/null.ini        |  6 -----
>  doc/guides/nics/features/ring.ini        |  6 -----
>  doc/guides/nics/features/softnic.ini     |  9 --------
>  doc/guides/nics/features/vdev_netvsc.ini | 12 ----------
>  10 files changed, 13 insertions(+), 97 deletions(-)  delete mode 100644
> doc/guides/nics/features/bnx2x_vf.ini
>  delete mode 100644 doc/guides/nics/features/bonding.ini
>  delete mode 100644 doc/guides/nics/features/kni.ini  delete mode 100644
> doc/guides/nics/features/nfp_vf.ini
>  delete mode 100644 doc/guides/nics/features/null.ini  delete mode 100644
> doc/guides/nics/features/ring.ini  delete mode 100644
> doc/guides/nics/features/softnic.ini
>  delete mode 100644 doc/guides/nics/features/vdev_netvsc.ini
> 
> --
> 2.25.1
  
Thomas Monjalon March 20, 2020, 10:44 a.m. UTC | #3
20/03/2020 06:35, Zhang, Qi Z:
> Hi Thomas:
> 
> From: Thomas Monjalon <thomas@monjalon.net>
> > 
> > This series aims to clean-up the big table of ethdev features:
> >   http://doc.dpdk.org/guides/nics/overview.html#id1
> > 
> > We could reorganize the information in this table, maybe split it or add/remove
> > some rows.
> > Before going to such reorganization, we should clean it up.
> > 
> > The first patch is fixing the look & size of the table with recent sphinx.
> > 
> > The second and third patches are removing 8 columns which are clearly
> > unneeded:
> >   - bnx2x_vf
> >   - bonding
> >   - kni
> >   - nfp_vf
> >   - null
> >   - ring
> >   - softnic
> >   - vdev_netvsc
> > 
> > More columns can be removed by merging PF/VF and vector datapaths.
> > If a feature cannot be supported in all cases, it should be marked as partially
> > supported (P).
> > If a feature is PF-specific (like flow control), that's OK to mark it fully supported
> > because it's obviously impossible for VF.
> > There are also some features which were probably marked in some columns
> > and missed in its VF or vector counterpart.
> > Please work to merge and drop these 16 columns:
> >   - cxgbevf
> >   - fm10k_vf
> >   - hns3_vf
> >   - i40e_vec
> >   - i40e_vf
> >   - i40e_vf_vec
> >   - iavf_vec
> >   - ice_vec
> >   - igb_vf
> >   - ixgbe_vec
> >   - ixgbe_vf
> >   - ixgbe_vf_vec
> >   - octeontx2_vec
> >   - octeontx2_vf
> >   - qede_vf
> >   - virtio_vec
> > 
> > The total gain is to reduce the table size from 71 to 47 columns.
> 
> I agree to remove all the column with "vec", since vector PMD can be regarded as a feature of the a PMD.
> But I'm not sure if it is a good idea to merge VF and PF into one column.
> From my view, for intel device, VF driver and PF driver just share the code, but they actually are running at two different context.
> And likely they will support different feature, merge into one column may confuse our customer if they want to understand what exactly the PMD support.

I understand you have 2 different datapaths.
My arguments are:
	- it is the same NIC
	- you cannot summarize everything in a table
	- we have two many columns to make it readable

I think the right solution is mark features as partially available (P),
and give details in the driver guide documentation.

Can you please, at least, remove the "vec" columns, as a first step?
Thanks
  
Qi Zhang March 20, 2020, 11:15 a.m. UTC | #4
> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Friday, March 20, 2020 6:45 PM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>
> Cc: dev@dpdk.org; rahul.lakkireddy@chelsio.com; Wang, Xiao W
> <xiao.w.wang@intel.com>; xavier.huwei@huawei.com; Xing, Beilei
> <beilei.xing@intel.com>; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Yang, Qiming
> <qiming.yang@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; Yigit, Ferruh <ferruh.yigit@intel.com>;
> jerinj@marvell.com; rmody@marvell.com; shshaikh@marvell.com;
> maxime.coquelin@redhat.com; Ye, Xiaolong <xiaolong.ye@intel.com>
> Subject: Re: [PATCH 0/3] refresh NIC features matrix
> 
> 20/03/2020 06:35, Zhang, Qi Z:
> > Hi Thomas:
> >
> > From: Thomas Monjalon <thomas@monjalon.net>
> > >
> > > This series aims to clean-up the big table of ethdev features:
> > >   http://doc.dpdk.org/guides/nics/overview.html#id1
> > >
> > > We could reorganize the information in this table, maybe split it or
> > > add/remove some rows.
> > > Before going to such reorganization, we should clean it up.
> > >
> > > The first patch is fixing the look & size of the table with recent sphinx.
> > >
> > > The second and third patches are removing 8 columns which are
> > > clearly
> > > unneeded:
> > >   - bnx2x_vf
> > >   - bonding
> > >   - kni
> > >   - nfp_vf
> > >   - null
> > >   - ring
> > >   - softnic
> > >   - vdev_netvsc
> > >
> > > More columns can be removed by merging PF/VF and vector datapaths.
> > > If a feature cannot be supported in all cases, it should be marked
> > > as partially supported (P).
> > > If a feature is PF-specific (like flow control), that's OK to mark
> > > it fully supported because it's obviously impossible for VF.
> > > There are also some features which were probably marked in some
> > > columns and missed in its VF or vector counterpart.
> > > Please work to merge and drop these 16 columns:
> > >   - cxgbevf
> > >   - fm10k_vf
> > >   - hns3_vf
> > >   - i40e_vec
> > >   - i40e_vf
> > >   - i40e_vf_vec
> > >   - iavf_vec
> > >   - ice_vec
> > >   - igb_vf
> > >   - ixgbe_vec
> > >   - ixgbe_vf
> > >   - ixgbe_vf_vec
> > >   - octeontx2_vec
> > >   - octeontx2_vf
> > >   - qede_vf
> > >   - virtio_vec
> > >
> > > The total gain is to reduce the table size from 71 to 47 columns.
> >
> > I agree to remove all the column with "vec", since vector PMD can be
> regarded as a feature of the a PMD.
> > But I'm not sure if it is a good idea to merge VF and PF into one column.
> > From my view, for intel device, VF driver and PF driver just share the code,
> but they actually are running at two different context.
> > And likely they will support different feature, merge into one column may
> confuse our customer if they want to understand what exactly the PMD
> support.
> 
> I understand you have 2 different datapaths.
> My arguments are:
> 	- it is the same NIC

Yes, but one device can be polymorphic, ideally i40e and i40evf could be in two different folder, and the common part can be a library in driver/common/i40e.

> 	- you cannot summarize everything in a table
> 	- we have two many columns to make it readable

I don't think columns number is critical, typically user just need to focus on the first column and the specific driver's column, 
I guess it may not a big challenge to enable some filter by front end web technique?
> 
> I think the right solution is mark features as partially available (P), and give
> details in the driver guide documentation.
> 
> Can you please, at least, remove the "vec" columns, as a first step?

Sure, as I said, I agree to remove "vec".

Thanks
Qi

> Thanks
>
  
Andrew Rybchenko March 24, 2020, 8:36 a.m. UTC | #5
On 3/20/20 2:15 PM, Zhang, Qi Z wrote:
> 
> 
>> -----Original Message-----
>> From: Thomas Monjalon <thomas@monjalon.net>
>> Sent: Friday, March 20, 2020 6:45 PM
>> To: Zhang, Qi Z <qi.z.zhang@intel.com>
>> Cc: dev@dpdk.org; rahul.lakkireddy@chelsio.com; Wang, Xiao W
>> <xiao.w.wang@intel.com>; xavier.huwei@huawei.com; Xing, Beilei
>> <beilei.xing@intel.com>; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Yang, Qiming
>> <qiming.yang@intel.com>; Ananyev, Konstantin
>> <konstantin.ananyev@intel.com>; Yigit, Ferruh <ferruh.yigit@intel.com>;
>> jerinj@marvell.com; rmody@marvell.com; shshaikh@marvell.com;
>> maxime.coquelin@redhat.com; Ye, Xiaolong <xiaolong.ye@intel.com>
>> Subject: Re: [PATCH 0/3] refresh NIC features matrix
>>
>> 20/03/2020 06:35, Zhang, Qi Z:
>>> Hi Thomas:
>>>
>>> From: Thomas Monjalon <thomas@monjalon.net>
>>>>
>>>> This series aims to clean-up the big table of ethdev features:
>>>>   http://doc.dpdk.org/guides/nics/overview.html#id1
>>>>
>>>> We could reorganize the information in this table, maybe split it or
>>>> add/remove some rows.
>>>> Before going to such reorganization, we should clean it up.
>>>>
>>>> The first patch is fixing the look & size of the table with recent sphinx.
>>>>
>>>> The second and third patches are removing 8 columns which are
>>>> clearly
>>>> unneeded:
>>>>   - bnx2x_vf
>>>>   - bonding
>>>>   - kni
>>>>   - nfp_vf
>>>>   - null
>>>>   - ring
>>>>   - softnic
>>>>   - vdev_netvsc
>>>>
>>>> More columns can be removed by merging PF/VF and vector datapaths.
>>>> If a feature cannot be supported in all cases, it should be marked
>>>> as partially supported (P).
>>>> If a feature is PF-specific (like flow control), that's OK to mark
>>>> it fully supported because it's obviously impossible for VF.
>>>> There are also some features which were probably marked in some
>>>> columns and missed in its VF or vector counterpart.
>>>> Please work to merge and drop these 16 columns:
>>>>   - cxgbevf
>>>>   - fm10k_vf
>>>>   - hns3_vf
>>>>   - i40e_vec
>>>>   - i40e_vf
>>>>   - i40e_vf_vec
>>>>   - iavf_vec
>>>>   - ice_vec
>>>>   - igb_vf
>>>>   - ixgbe_vec
>>>>   - ixgbe_vf
>>>>   - ixgbe_vf_vec
>>>>   - octeontx2_vec
>>>>   - octeontx2_vf
>>>>   - qede_vf
>>>>   - virtio_vec
>>>>
>>>> The total gain is to reduce the table size from 71 to 47 columns.
>>>
>>> I agree to remove all the column with "vec", since vector PMD can be
>> regarded as a feature of the a PMD.
>>> But I'm not sure if it is a good idea to merge VF and PF into one column.
>>> From my view, for intel device, VF driver and PF driver just share the code,
>> but they actually are running at two different context.
>>> And likely they will support different feature, merge into one column may
>> confuse our customer if they want to understand what exactly the PMD
>> support.
>>
>> I understand you have 2 different datapaths.
>> My arguments are:
>> 	- it is the same NIC
> 
> Yes, but one device can be polymorphic, ideally i40e and i40evf could be in two different folder, and the common part can be a library in driver/common/i40e.

For me, it does not sound like a good idea. Too many folders on
the first level does not look nice. Should we go Linux way and
group by vendor? Too early? However, it is not directly
related to the topic.

>> 	- you cannot summarize everything in a table
>> 	- we have two many columns to make it readable
> 
> I don't think columns number is critical, typically user just need to focus on the first column and the specific driver's column, 

Too many columns still makes it harder to read/analyze. I think
the main goal of the table is too help making NIC choice to
be installed in a server and you can't make a choice between
PF and VF. Difference between PF and VF capabilities is
a separate story and out-of-scope of the table.
We have a new driver(s) in each DPDK release and table is
already big and will grow more and more.

> I guess it may not a big challenge to enable some filter by front end web technique?
>
>> I think the right solution is mark features as partially available (P), and give
>> details in the driver guide documentation.
>>
>> Can you please, at least, remove the "vec" columns, as a first step?
> 
> Sure, as I said, I agree to remove "vec".
> 
> Thanks
> Qi
> 
>> Thanks
>>
>
  
Thomas Monjalon April 16, 2020, 8:13 p.m. UTC | #6
Any more opinion about removing VF columns from the NIC matrix?

24/03/2020 09:36, Andrew Rybchenko:
> On 3/20/20 2:15 PM, Zhang, Qi Z wrote:
> > From: Thomas Monjalon <thomas@monjalon.net>
> >> 20/03/2020 06:35, Zhang, Qi Z:
> >>> From: Thomas Monjalon <thomas@monjalon.net>
> >>>> The second and third patches are removing 8 columns which are
> >>>> clearly
> >>>> unneeded:
> >>>>   - bnx2x_vf
> >>>>   - bonding
> >>>>   - kni
> >>>>   - nfp_vf
> >>>>   - null
> >>>>   - ring
> >>>>   - softnic
> >>>>   - vdev_netvsc
> >>>>
> >>>> More columns can be removed by merging PF/VF and vector datapaths.
> >>>> If a feature cannot be supported in all cases, it should be marked
> >>>> as partially supported (P).
> >>>> If a feature is PF-specific (like flow control), that's OK to mark
> >>>> it fully supported because it's obviously impossible for VF.
> >>>> There are also some features which were probably marked in some
> >>>> columns and missed in its VF or vector counterpart.
> >>>> Please work to merge and drop these 16 columns:
> >>>>   - cxgbevf
> >>>>   - fm10k_vf
> >>>>   - hns3_vf
> >>>>   - i40e_vec
> >>>>   - i40e_vf
> >>>>   - i40e_vf_vec
> >>>>   - iavf_vec
> >>>>   - ice_vec
> >>>>   - igb_vf
> >>>>   - ixgbe_vec
> >>>>   - ixgbe_vf
> >>>>   - ixgbe_vf_vec
> >>>>   - octeontx2_vec
> >>>>   - octeontx2_vf
> >>>>   - qede_vf
> >>>>   - virtio_vec
> >>>>
> >>>> The total gain is to reduce the table size from 71 to 47 columns.
> >>>
> >>> I agree to remove all the column with "vec", since vector PMD can be
> >> regarded as a feature of the a PMD.
> >>> But I'm not sure if it is a good idea to merge VF and PF into one column.
> >>> From my view, for intel device, VF driver and PF driver just share the code,
> >> but they actually are running at two different context.
> >>> And likely they will support different feature, merge into one column may
> >> confuse our customer if they want to understand what exactly the PMD
> >> support.
> >>
> >> I understand you have 2 different datapaths.
> >> My arguments are:
> >> 	- it is the same NIC
> > 
> > Yes, but one device can be polymorphic, ideally i40e and i40evf could be in two different folder, and the common part can be a library in driver/common/i40e.
> 
> For me, it does not sound like a good idea. Too many folders on
> the first level does not look nice. Should we go Linux way and
> group by vendor? Too early? However, it is not directly
> related to the topic.
> 
> >> 	- you cannot summarize everything in a table
> >> 	- we have two many columns to make it readable
> > 
> > I don't think columns number is critical, typically user just need to focus on the first column and the specific driver's column, 
> 
> Too many columns still makes it harder to read/analyze. I think
> the main goal of the table is too help making NIC choice to
> be installed in a server and you can't make a choice between
> PF and VF. Difference between PF and VF capabilities is
> a separate story and out-of-scope of the table.
> We have a new driver(s) in each DPDK release and table is
> already big and will grow more and more.
> 
> > I guess it may not a big challenge to enable some filter by front end web technique?
> >
> >> I think the right solution is mark features as partially available (P), and give
> >> details in the driver guide documentation.
  
Thomas Monjalon April 16, 2020, 9:57 p.m. UTC | #7
12/03/2020 00:01, Thomas Monjalon:
> This series aims to clean-up the big table of ethdev features:
>   http://doc.dpdk.org/guides/nics/overview.html#id1
> 
> We could reorganize the information in this table,
> maybe split it or add/remove some rows.
> Before going to such reorganization, we should clean it up.
> 
> The first patch is fixing the look & size of the table with recent sphinx.
> 
> The second and third patches are removing 8 columns which are
> clearly unneeded:
>   - bnx2x_vf
>   - bonding
>   - kni
>   - nfp_vf
>   - null
>   - ring
>   - softnic
>   - vdev_netvsc
> 
[...]
> Thomas Monjalon (3):
>   doc: fix matrix CSS for recent sphinx
>   doc: remove empty columns from NIC features matrix
>   doc: remove similar columns from NIC features matrix

Applied
  
Thomas Monjalon April 17, 2020, 4:32 p.m. UTC | #8
Call for action below (especially for octeontx2 and virtio):

24/03/2020 09:36, Andrew Rybchenko:
> On 3/20/20 2:15 PM, Zhang, Qi Z wrote:
> > From: Thomas Monjalon <thomas@monjalon.net>
> >> 20/03/2020 06:35, Zhang, Qi Z:
> >>> From: Thomas Monjalon <thomas@monjalon.net>
> >>>>
> >>>> This series aims to clean-up the big table of ethdev features:
> >>>>   http://doc.dpdk.org/guides/nics/overview.html#id1
> >>>>
> >>>> We could reorganize the information in this table, maybe split it or
> >>>> add/remove some rows.
> >>>> Before going to such reorganization, we should clean it up.
[...]
> >>>> More columns can be removed by merging PF/VF and vector datapaths.
> >>>> If a feature cannot be supported in all cases, it should be marked
> >>>> as partially supported (P).

I see that Intel merged "vec" columns for its PMDs.
We are still missing octeontx2 and virtio.
In order to make sure the message is received,
I suggest blocking any patch in these PMDs until features matrix is fixed.


> >>>> If a feature is PF-specific (like flow control), that's OK to mark
> >>>> it fully supported because it's obviously impossible for VF.
> >>>> There are also some features which were probably marked in some
> >>>> columns and missed in its VF or vector counterpart.

Ideally we should remove all these columns (VF to be discussed):

> >>>>   - cxgbevf
> >>>>   - fm10k_vf
> >>>>   - hns3_vf
> >>>>   - i40e_vf
> >>>>   - igb_vf
> >>>>   - ixgbe_vf
> >>>>   - octeontx2_vec
> >>>>   - octeontx2_vf
> >>>>   - qede_vf
> >>>>   - virtio_vec
> >>>>
> >>>> The total gain is to reduce the table size from 71 to 47 columns.
> >>>
> >>> I agree to remove all the column with "vec", since vector PMD can be
> >>> regarded as a feature of the a PMD.
> >>> But I'm not sure if it is a good idea to merge VF and PF into one column.
> >>> From my view, for intel device, VF driver and PF driver just share the code,
> >>> but they actually are running at two different context.
> >>> And likely they will support different feature, merge into one column may
> >>> confuse our customer if they want to understand what exactly the PMD
> >>> support.
> >>
> >> I understand you have 2 different datapaths.
> >> My arguments are:
> >> 	- it is the same NIC
> > 
> > Yes, but one device can be polymorphic, ideally i40e and i40evf
> > could be in two different folder, and the common part can be a
> > library in driver/common/i40e.
[...]
> 
> >> 	- you cannot summarize everything in a table
> >> 	- we have two many columns to make it readable
> > 
> > I don't think columns number is critical, typically user just need
> > to focus on the first column and the specific driver's column, 
> 
> Too many columns still makes it harder to read/analyze. I think
> the main goal of the table is too help making NIC choice to
> be installed in a server and you can't make a choice between
> PF and VF. Difference between PF and VF capabilities is
> a separate story and out-of-scope of the table.
> We have a new driver(s) in each DPDK release and table is
> already big and will grow more and more.
> 
> > I guess it may not a big challenge to enable some filter by front end web technique?
> >
> >> I think the right solution is mark features as partially available (P), and give
> >> details in the driver guide documentation.

Other opinions about removing/merging VF columns?
  
Ajit Khaparde April 17, 2020, 6:21 p.m. UTC | #9
On Fri, Apr 17, 2020 at 9:32 AM Thomas Monjalon <thomas@monjalon.net> wrote:

> Call for action below (especially for octeontx2 and virtio):
>
> 24/03/2020 09:36, Andrew Rybchenko:
> > On 3/20/20 2:15 PM, Zhang, Qi Z wrote:
> > > From: Thomas Monjalon <thomas@monjalon.net>
> > >> 20/03/2020 06:35, Zhang, Qi Z:
> > >>> From: Thomas Monjalon <thomas@monjalon.net>
> > >>>>
> > >>>> This series aims to clean-up the big table of ethdev features:
> > >>>>   http://doc.dpdk.org/guides/nics/overview.html#id1
> > >>>>
> > >>>> We could reorganize the information in this table, maybe split it or
> > >>>> add/remove some rows.
> > >>>> Before going to such reorganization, we should clean it up.
> [...]
> > >>>> More columns can be removed by merging PF/VF and vector datapaths.
> > >>>> If a feature cannot be supported in all cases, it should be marked
> > >>>> as partially supported (P).
>
> I see that Intel merged "vec" columns for its PMDs.
> We are still missing octeontx2 and virtio.
> In order to make sure the message is received,
> I suggest blocking any patch in these PMDs until features matrix is fixed.
>
>
> > >>>> If a feature is PF-specific (like flow control), that's OK to mark
> > >>>> it fully supported because it's obviously impossible for VF.
> > >>>> There are also some features which were probably marked in some
> > >>>> columns and missed in its VF or vector counterpart.
>
> Ideally we should remove all these columns (VF to be discussed):
>
> > >>>>   - cxgbevf
> > >>>>   - fm10k_vf
> > >>>>   - hns3_vf
> > >>>>   - i40e_vf
> > >>>>   - igb_vf
> > >>>>   - ixgbe_vf
> > >>>>   - octeontx2_vec
> > >>>>   - octeontx2_vf
> > >>>>   - qede_vf
> > >>>>   - virtio_vec
> > >>>>
> > >>>> The total gain is to reduce the table size from 71 to 47 columns.
> > >>>
> > >>> I agree to remove all the column with "vec", since vector PMD can be
> > >>> regarded as a feature of the a PMD.
> > >>> But I'm not sure if it is a good idea to merge VF and PF into one
> column.
> > >>> From my view, for intel device, VF driver and PF driver just share
> the code,
> > >>> but they actually are running at two different context.
> > >>> And likely they will support different feature, merge into one
> column may
> > >>> confuse our customer if they want to understand what exactly the PMD
> > >>> support.
> > >>
> > >> I understand you have 2 different datapaths.
> > >> My arguments are:
> > >>    - it is the same NIC
> > >
> > > Yes, but one device can be polymorphic, ideally i40e and i40evf
> > > could be in two different folder, and the common part can be a
> > > library in driver/common/i40e.
> [...]
> >
> > >>    - you cannot summarize everything in a table
> > >>    - we have two many columns to make it readable
> > >
> > > I don't think columns number is critical, typically user just need
> > > to focus on the first column and the specific driver's column,
> >
> > Too many columns still makes it harder to read/analyze. I think
> > the main goal of the table is too help making NIC choice to
> > be installed in a server and you can't make a choice between
> > PF and VF. Difference between PF and VF capabilities is
> > a separate story and out-of-scope of the table.
> > We have a new driver(s) in each DPDK release and table is
> > already big and will grow more and more.
> >
> > > I guess it may not a big challenge to enable some filter by front end
> web technique?
>
+1


> > >
> > >> I think the right solution is mark features as partially available
> (P), and give
> > >> details in the driver guide documentation.
>
> Other opinions about removing/merging VF columns?
>
PF and VF devices can have different feature support.
It will be good to keep them separate.
If it is difficult to tabulate the capabilities for various devices
in a single page, then marking it with (P) is fine.
The Driver guide should carry the differences between PF and VF
capabilities anyway.