[PATCH v11 0/3] net/idpf: enable AVX2 for split queue Rx/Tx

Stephen Hemminger stephen at networkplumber.org
Tue Jan 13 19:13:55 CET 2026


On Mon,  5 Jan 2026 11:52:54 +0530
Shaiq Wani <shaiq.wani at intel.com> wrote:

> In case some CPUs don't support AVX512. Enable AVX2 for them to
> get better per-core performance.
> 
> In the single queue model, the same descriptor queue is used by SW
> to post descriptors to the device and used by device to report completed
> descriptors to SW. While as the split queue model separates them into
> different queues for parallel processing and improved performance.
> 
> v11:
> *Fixed indentation issues.
> 
> v10:
> *Changed desc reading style in Rx path.
> 
> v9:
> *Some minor fixes.
> 
> v8:
> *Reworked the receive func to avoid race conditions in Rx path.
> *Removed unnecessary compiler barriers.
> 
> v7:
> *Removed (char) casts, ifdef block as suggested.
> *Fixed indentation, line wrapping.
> *Did blind write of data to avoid branching.
> *changed desc building and writing  order for Tx.
> 
> v6:
> *used single load/store in splitq_recv_pkts function.
> *removed x86-specific intrinsics from common code.
> 
> v5:
> *Fixed CI errors.
> *Used defined constants instead of numbers.
> 
> v4:
> *moved splitq_rearm_common to a common location.
> *reduced duplication of code.
> *fixed splitq_recv_pkts function.
> 
> v3:
> *Fixed some indentation issues.
> *Collapsed wrapper and core function into one.
> *Fixed some pointer casting and naming inconsistency issues.
> 
> v2:
> *Fixed CI build related issues.
> *Rebased on top of idpf/cpfl rx path selection simplication patch.
> 
> 
> 
> Shaiq Wani (3):
>   net/idpf: enable AVX2 for split queue Rx
>   net/idpf: enable AVX2 for split queue Tx
>   doc: note on unsupported completion queue sharing
> 
>  doc/guides/nics/idpf.rst                      |   5 +
>  drivers/net/intel/idpf/idpf_common_device.h   |   1 +
>  drivers/net/intel/idpf/idpf_common_rxtx.c     |  59 ++++
>  drivers/net/intel/idpf/idpf_common_rxtx.h     |   8 +
>  .../net/intel/idpf/idpf_common_rxtx_avx2.c    | 317 +++++++++++++++++-
>  .../net/intel/idpf/idpf_common_rxtx_avx512.c  |  56 ----
>  drivers/net/intel/idpf/idpf_rxtx.c            |   9 +
>  7 files changed, 397 insertions(+), 58 deletions(-)
> 

Thanks for sticking with this patchset.
It is worth noting that AI had some review comments.

Summary
Errors (Must Fix)
None critical.
Warnings (Should Fix)

Patch 1 & 2: Commit body text is identical and doesn't specifically describe the Tx patch. Consider making the body patch-specific.
Patch 1: "While as" grammatical error in commit body → "Whereas" or "While".
Patch 2: Contains unrelated style change (moving tx_id declaration). Should be mentioned in commit message or separated.
Patch 2: Verify IDPD_TXQ_SCAN_CQ_THRESH spelling—appears it might be a typo for IDPF_.
Patch 1 & 2: Inconsistent placement of RTE_EXPORT_INTERNAL_SYMBOL() (before vs. after function).
Patch 3: "Added" is past tense; imperative "Add" is preferred.

Info (Consider)

The series is at v11, indicating significant iteration. The core implementation looks reasonable for AVX2 vectorized packet processing.
Mid-block variable declarations are used inconsistently—some at function top, some mid-block. Consider consistent placement.
Unnecessary initialization of received = 0 since it's always assigned before use.


Recommendation
Acceptable with minor revisions. The code appears functionally correct for enabling AVX2 split queue support. Address the warnings above, particularly:

Fix the "IDPD" vs "IDPF" typo if confirmed
Update commit messages to be patch-specific
Consider separating unrelated style changes





More information about the dev mailing list