summaryrefslogtreecommitdiff
path: root/include/linux/workqueue_api.h
diff options
context:
space:
mode:
authorFlorian Westphal <fw@strlen.de>2026-04-11 15:12:59 +0300
committerFlorian Westphal <fw@strlen.de>2026-05-24 23:55:48 +0300
commite928ab085d8ab775fe0cb8bad15340081b201f52 (patch)
treeb1cc1e21b70a7863efd30b0485652b323e6b6daf /include/linux/workqueue_api.h
parent22fad3d5b135e53f8648991bf3724a14abc579c3 (diff)
downloadlinux-e928ab085d8ab775fe0cb8bad15340081b201f52.tar.xz
netfilter: nft_set_pipapo_avx2: restore performance optimization
The avx2 lookup routines get the next map index to process passes as a function argument, but this isn't obvious because it's hidden in the lookup macro. Additionally, a recent LLM review pointed out following "bug": ------------------------------------------------------------- > b = nft_pipapo_avx2_refill(i_ul, &map[i_ul], fill, f->mt, last); > if (last) > - return b; > + ret = b; > > if (unlikely(ret == -1)) > ret = b / XSAVE_YMM_SIZE; Does this change introduce a logic error when last=true and no match is found? [..] Should this be changed to an else-if structure instead? ------------------------------------------------------------- LLM sees a control-flow change, but there is none: All call sites invoke nft_pipapo_avx2_refill() only when at least one bit in the map is set, i.e. nft_pipapo_avx2_refill() never returns -1. Add a runtime debug check that fires if we'd return -1 as additional documentation and also make the suggested change, code might be easier to understand this way. In commit 17a20e09f086 ("netfilter: nft_set: remove one argument from lookup and update functions") I incorrectly moved the "ret" scope into the loop. This has no effect on the correctness, but it can (depending on map sizes) cause a redundant repeat of an earlier processing step. Restore the intended 'pass map index' instead of always-0. Note that I did not see any change in performance numbers, but Stefano correctly points out that the existing perf test likely lack a sparse intermediate bitmap (between fields) with a lot of leading zeroes. Reviewed-by: Stefano Brivio <sbrivio@redhat.com> Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'include/linux/workqueue_api.h')
0 files changed, 0 insertions, 0 deletions