DPDK-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Jie Liu <liujie5@linkdatatechnology.com>
Subject: Re: [PATCH] net/sxe2: fix build when optional libraries are disabled
Date: Thu, 13 Aug 2026 09:47:15 -0700	[thread overview]
Message-ID: <20260813094715.5ce79773@phoenix.local> (raw)
In-Reply-To: <20260812175531.375636-1-stephen@networkplumber.org>

On Wed, 12 Aug 2026 10:55:31 -0700
Stephen Hemminger <stephen@networkplumber.org> wrote:

> This was found by AI sandbox build when doing other fixes
> to EAL. The sxe2 driver was doing handrolled meson to pick
> up AVX which fails if security library not present.
> 
> Fix build failure when building with
> "meson setup build -Denable_libs=eal":
> 
>   drivers/net/sxe2/meson.build:37:24: ERROR:
>   Unknown variable name "static_rte_security".
> 
> Use sources_avx2 and sources_avx512 instead of hand-rolled
> static libraries.
> 
> Fixes: 59d866861188 ("net/sxe2: add AVX2 Rx and Tx")
> Fixes: 0af0bdcdcf83 ("net/sxe2: add AVX512 Rx and Tx")
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---

AI check of CI AI review says all its complaints are noise.

Not valid. I verified every claim against the upstream tree and empirically built it — none of the four findings hold up. The review is a textbook diff-only miss: all of its doubts hinge on infrastructure in drivers/meson.build that it couldn't see.

What I verified:

Warning 2 (sources_avx2/avx512 "potentially unused") — false. drivers/meson.build initializes sources_avx2 = [] / sources_avx512 = [] per driver (lines 155–156) and processes them after subdir'ing (lines 294–313), building static libs with static_deps and extracting the objects. Empirically: applied the patch, built with -Denable_drivers=net/sxe2,common/sxe2, and the final librte_net_sxe2.a contains both sxe2_txrx_vec_avx2.c.o and sxe2_txrx_vec_avx512.c.o. This warning is also exactly the "should be verified" hedge pattern AGENTS.md tells reviewers to suppress.

Info 1 (CC_AVX512_SUPPORT removed) — not an issue. The standard infrastructure does cflags += '-DCC_AVX512_SUPPORT' (line 305) when sources_avx512 is nonempty and cc_has_avx512, before the main driver lib builds. Confirmed in the generated build.ninja: sxe2_txrx.c.o (which contains the #ifdef CC_AVX512_SUPPORT burst-function selection) compiles with the define, and the AVX512 object gets the skylake-avx512 march flags. The standard cc_has_avx512 gate is actually stricter than the old hand-rolled check — it accounts for binutils AVX512 bugs.

Info 2 (dependency list removed) — not an issue. static_deps is assembled from the driver's own deps (static_deps += get_variable('static_rte_' + d), line 236), and sxe2's meson.build already declares deps += ['common_sxe2', 'hash', 'cryptodev', 'security'] — visible in the patch's own context lines. The suggestion to consider dropping security/cryptodev is also wrong: sxe2_ipsec.c and sxe2_security.c are in the main sources list. Critically, routing deps through deps is the mechanism of the fix — missing libs now cleanly disable the driver instead of hitting an undefined-variable error at setup time.

Warning 1 (missing release notes) — false positive. The suggested "Fixed Issues"/"Bugs Fixed" section doesn't exist; release_26_11.rst has only New Features, Removed Items, API Changes, ABI Changes, Known Issues. DPDK doesn't document bug fixes in main-branch release notes — the Fixes: tags handle stable backport tracking.

End-to-end confirmation: on the pre-patch tree, meson setup -Denable_libs=eal reproduces the exact reported error (Unknown variable name "static_rte_security"); on the patched tree the same setup succeeds with sxe2 cleanly disabled ("missing internal dependency cryptodev"), and the default config builds the driver with both vector paths linked in. The patch is correct and complete as-is — I'd reply to the CI bot noting the drivers/meson.build infrastructure it missed, since the two Warnings are precisely the vague-verification pattern AGENTS.md is supposed to suppress.

  reply	other threads:[~2026-08-13 16:47 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-12 17:55 [PATCH] net/sxe2: fix build when optional libraries are disabled Stephen Hemminger
2026-08-13 16:47 ` Stephen Hemminger [this message]
  -- strict thread matches above, loose matches on Subject: below --
2026-08-12 17:47 Stephen Hemminger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260813094715.5ce79773@phoenix.local \
    --to=stephen@networkplumber.org \
    --cc=dev@dpdk.org \
    --cc=liujie5@linkdatatechnology.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox