mbox series

[v5,00/11] framework for advanced iAVF PMD

Message ID 20200416080947.55005-1-leyi.rong@intel.com (mailing list archive)
Headers
Series framework for advanced iAVF PMD |

Message

Leyi Rong April 16, 2020, 8:09 a.m. UTC
  This patchset enable framework for advanced iAVF, includes
flexible descriptor support, FDIR mark id and RSS hash support.

---
v5:
- Set rxdid = 0 in iavf_configure_queues() when it's supported and
  RTE_LIBRTE_IAVF_16BYTE_RX_DESC is y. So the error can be captured
  explicitly as kernel PF does not support it yet.
- Fix some build errors when RTE_LIBRTE_IAVF_16BYTE_RX_DESC is y.

v4:
- Avoid initial declaration in 'for' loop to backward-compatible
  with older gcc versions.

v3:
- Remove patch to query DDP package info as it's specific to DCF.
- Specify fdir_ref_cnt as per VF value for enable/disable FDIR ID parse.
- Move fdir_enabled flag to per Queue value for cache benefit when
  access in vector routines.
- Store extracted flow_id value to mbuf without judgement to avoid
  branch speculation fail, which is benefit to performance.

v2:
- Revert macro RTE_LIBRTE_IAVF_16BYTE_RX_DESC deletion as
  it's defined in AVF spec.
- Typo RTE_LIBRTE_ICE_16BYTE_RX_DESC fix in iavf_rxtx.c.
- Move flex desc definitions into iavf_rxtx.h.
- Up to date to match with the latest version of virtchnl.h.
- Extract a new internal func iavf_update_rx_tail to call.
- Remove
  iavf_dev_rxq_count_flex_rxd()/iavf_dev_rx_desc_status_flex_rxd(),
  as the accompanying legacy ones can deal with the flex desc cases.
- Move rxq->rxdid assignment from iavf_configure_queues()
  to iavf_dev_rx_queue_setup().
- Unfold _mm_extract_epi32(fdir_id0_3, i) to fix build error
  when using GCC compile option -O0.

Leyi Rong (11):
  net/iavf: flexible Rx descriptor definitions
  net/iavf: return error if opcode is mismatched
  net/iavf: flexible Rx descriptor support in normal path
  net/iavf: flexible Rx descriptor support in AVX path
  net/iavf: flexible Rx descriptor support in SSE path
  net/iavf: add flow director enabled switch value
  net/iavf: support flow mark in normal data path
  net/iavf: support flow mark in AVX path
  net/iavf: support flow mark in SSE path
  net/iavf: add RSS hash parsing in AVX path
  net/iavf: add RSS hash parsing in SSE path

 drivers/net/iavf/iavf.h               |   6 +
 drivers/net/iavf/iavf_ethdev.c        |   8 +
 drivers/net/iavf/iavf_rxtx.c          | 546 ++++++++++++++++++--
 drivers/net/iavf/iavf_rxtx.h          | 250 +++++++++
 drivers/net/iavf/iavf_rxtx_vec_avx2.c | 702 +++++++++++++++++++++++++-
 drivers/net/iavf/iavf_rxtx_vec_sse.c  | 520 +++++++++++++++++++
 drivers/net/iavf/iavf_vchnl.c         |  59 ++-
 7 files changed, 2042 insertions(+), 49 deletions(-)
  

Comments

Qi Zhang April 16, 2020, 12:21 p.m. UTC | #1
> -----Original Message-----
> From: Rong, Leyi <leyi.rong@intel.com>
> Sent: Thursday, April 16, 2020 4:10 PM
> To: Wu, Jingjing <jingjing.wu@intel.com>; Zhang, Qi Z
> <qi.z.zhang@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Ye, Xiaolong
> <xiaolong.ye@intel.com>
> Cc: dev@dpdk.org; Rong, Leyi <leyi.rong@intel.com>
> Subject: [PATCH v5 00/11] framework for advanced iAVF PMD
> 
> This patchset enable framework for advanced iAVF, includes flexible
> descriptor support, FDIR mark id and RSS hash support.
> 
> ---
> v5:
> - Set rxdid = 0 in iavf_configure_queues() when it's supported and
>   RTE_LIBRTE_IAVF_16BYTE_RX_DESC is y. So the error can be captured
>   explicitly as kernel PF does not support it yet.
> - Fix some build errors when RTE_LIBRTE_IAVF_16BYTE_RX_DESC is y.
> 
> v4:
> - Avoid initial declaration in 'for' loop to backward-compatible
>   with older gcc versions.
> 
> v3:
> - Remove patch to query DDP package info as it's specific to DCF.
> - Specify fdir_ref_cnt as per VF value for enable/disable FDIR ID parse.
> - Move fdir_enabled flag to per Queue value for cache benefit when
>   access in vector routines.
> - Store extracted flow_id value to mbuf without judgement to avoid
>   branch speculation fail, which is benefit to performance.
> 
> v2:
> - Revert macro RTE_LIBRTE_IAVF_16BYTE_RX_DESC deletion as
>   it's defined in AVF spec.
> - Typo RTE_LIBRTE_ICE_16BYTE_RX_DESC fix in iavf_rxtx.c.
> - Move flex desc definitions into iavf_rxtx.h.
> - Up to date to match with the latest version of virtchnl.h.
> - Extract a new internal func iavf_update_rx_tail to call.
> - Remove
>   iavf_dev_rxq_count_flex_rxd()/iavf_dev_rx_desc_status_flex_rxd(),
>   as the accompanying legacy ones can deal with the flex desc cases.
> - Move rxq->rxdid assignment from iavf_configure_queues()
>   to iavf_dev_rx_queue_setup().
> - Unfold _mm_extract_epi32(fdir_id0_3, i) to fix build error
>   when using GCC compile option -O0.
> 
> Leyi Rong (11):
>   net/iavf: flexible Rx descriptor definitions
>   net/iavf: return error if opcode is mismatched
>   net/iavf: flexible Rx descriptor support in normal path
>   net/iavf: flexible Rx descriptor support in AVX path
>   net/iavf: flexible Rx descriptor support in SSE path
>   net/iavf: add flow director enabled switch value
>   net/iavf: support flow mark in normal data path
>   net/iavf: support flow mark in AVX path
>   net/iavf: support flow mark in SSE path
>   net/iavf: add RSS hash parsing in AVX path
>   net/iavf: add RSS hash parsing in SSE path
> 
>  drivers/net/iavf/iavf.h               |   6 +
>  drivers/net/iavf/iavf_ethdev.c        |   8 +
>  drivers/net/iavf/iavf_rxtx.c          | 546 ++++++++++++++++++--
>  drivers/net/iavf/iavf_rxtx.h          | 250 +++++++++
>  drivers/net/iavf/iavf_rxtx_vec_avx2.c | 702
> +++++++++++++++++++++++++-  drivers/net/iavf/iavf_rxtx_vec_sse.c  |
> 520 +++++++++++++++++++
>  drivers/net/iavf/iavf_vchnl.c         |  59 ++-
>  7 files changed, 2042 insertions(+), 49 deletions(-)
> 
> --
> 2.17.1

Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>
  
Xiaolong Ye April 17, 2020, 4:11 a.m. UTC | #2
On 04/16, Zhang, Qi Z wrote:
>
>
>> -----Original Message-----
>> From: Rong, Leyi <leyi.rong@intel.com>
>> Sent: Thursday, April 16, 2020 4:10 PM
>> To: Wu, Jingjing <jingjing.wu@intel.com>; Zhang, Qi Z
>> <qi.z.zhang@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Ye, Xiaolong
>> <xiaolong.ye@intel.com>
>> Cc: dev@dpdk.org; Rong, Leyi <leyi.rong@intel.com>
>> Subject: [PATCH v5 00/11] framework for advanced iAVF PMD
>> 
>> This patchset enable framework for advanced iAVF, includes flexible
>> descriptor support, FDIR mark id and RSS hash support.
>> 
>> ---
>> v5:
>> - Set rxdid = 0 in iavf_configure_queues() when it's supported and
>>   RTE_LIBRTE_IAVF_16BYTE_RX_DESC is y. So the error can be captured
>>   explicitly as kernel PF does not support it yet.
>> - Fix some build errors when RTE_LIBRTE_IAVF_16BYTE_RX_DESC is y.
>> 
>> v4:
>> - Avoid initial declaration in 'for' loop to backward-compatible
>>   with older gcc versions.
>> 
>> v3:
>> - Remove patch to query DDP package info as it's specific to DCF.
>> - Specify fdir_ref_cnt as per VF value for enable/disable FDIR ID parse.
>> - Move fdir_enabled flag to per Queue value for cache benefit when
>>   access in vector routines.
>> - Store extracted flow_id value to mbuf without judgement to avoid
>>   branch speculation fail, which is benefit to performance.
>> 
>> v2:
>> - Revert macro RTE_LIBRTE_IAVF_16BYTE_RX_DESC deletion as
>>   it's defined in AVF spec.
>> - Typo RTE_LIBRTE_ICE_16BYTE_RX_DESC fix in iavf_rxtx.c.
>> - Move flex desc definitions into iavf_rxtx.h.
>> - Up to date to match with the latest version of virtchnl.h.
>> - Extract a new internal func iavf_update_rx_tail to call.
>> - Remove
>>   iavf_dev_rxq_count_flex_rxd()/iavf_dev_rx_desc_status_flex_rxd(),
>>   as the accompanying legacy ones can deal with the flex desc cases.
>> - Move rxq->rxdid assignment from iavf_configure_queues()
>>   to iavf_dev_rx_queue_setup().
>> - Unfold _mm_extract_epi32(fdir_id0_3, i) to fix build error
>>   when using GCC compile option -O0.
>> 
>> Leyi Rong (11):
>>   net/iavf: flexible Rx descriptor definitions
>>   net/iavf: return error if opcode is mismatched
>>   net/iavf: flexible Rx descriptor support in normal path
>>   net/iavf: flexible Rx descriptor support in AVX path
>>   net/iavf: flexible Rx descriptor support in SSE path
>>   net/iavf: add flow director enabled switch value
>>   net/iavf: support flow mark in normal data path
>>   net/iavf: support flow mark in AVX path
>>   net/iavf: support flow mark in SSE path
>>   net/iavf: add RSS hash parsing in AVX path
>>   net/iavf: add RSS hash parsing in SSE path
>> 
>>  drivers/net/iavf/iavf.h               |   6 +
>>  drivers/net/iavf/iavf_ethdev.c        |   8 +
>>  drivers/net/iavf/iavf_rxtx.c          | 546 ++++++++++++++++++--
>>  drivers/net/iavf/iavf_rxtx.h          | 250 +++++++++
>>  drivers/net/iavf/iavf_rxtx_vec_avx2.c | 702
>> +++++++++++++++++++++++++-  drivers/net/iavf/iavf_rxtx_vec_sse.c  |
>> 520 +++++++++++++++++++
>>  drivers/net/iavf/iavf_vchnl.c         |  59 ++-
>>  7 files changed, 2042 insertions(+), 49 deletions(-)
>> 
>> --
>> 2.17.1
>
>Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>
>
>

Applied to dpdk-next-net-intel, Thanks.