[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