On Wed, 21 Oct 2026 12:30:14 +0200
David Marchand <[email protected]> wrote:
> We have various checks in drivers about Rx and Tx multiqueue
> configuration.
> This series is a followup of the VMDq cleanup, finishing the job with
> DCB and RSS, and then rejecting invalid multiqueue configuration (useful
> from an ABI point of view).
>
> Some drivers misreported their capabilities.
> It is important drivers maintainers review carefully those changes.
AI review
Review: [PATCH v2 00/12] ethdev multi-queue mode validation
Applied cleanly on main (0e03411639). Every commit builds with
-Dwerror=true for all touched drivers except mvneta/mvpp2 (no musdk),
plus the touched apps and examples (ntb not buildable here).
check-doc-vs-code.sh full mode is clean at every commit.
v1 items addressed: ERE alternation (01/12), intel drivers covered
(03/12), igb/ipn3ke docs (08/12), RSS rejection limited to more than
one Rx queue with examples fixed (11/12), xsc hash types (10/12),
idpf/cpfl hash_key_size/reta_size (10/12), bnxt pool (04/12).
Remaining problem: incremental mode of the doc check is broken by
03/12.
Patch 03/12 devtools: handle multiple drivers in doc check
Error: the top-level doc_code_map loop assigns the global "drivers"
variable, which changed_net_drivers() uses as its cache:
[ -n "$drivers" ] ||
drivers=$(changed_files | ...)
After the loop "drivers" holds the last shared-directory list
(" txgbe"), so with a trusted commit only txgbe is ever checked.
Reproduced on top of 12/12 by adding "VMDq = Y" to mlx5.ini:
devtools/check-doc-vs-code.sh HEAD~1 -> rc=0, nothing reported
devtools/check-doc-vs-code.sh -> VMDq documented but
max_vmdq_pools not set
for mlx5
Use names that do not collide with the script globals:
for d in $rootdir/doc/guides/nics/features/*.ini; do
name=$(basename "$d" .ini)
dir=$(driver_code_dir $name)
case $doc_code_map in
*,$dir:*)
before=${doc_code_map%,$dir:*}
after=${doc_code_map#*,$dir:}
list=${after%%,*}
rest=${after#*,}
doc_code_map="$before,$dir:$list $name,$rest" ;;
*)
doc_code_map="$doc_code_map$dir: $name," ;;
esac
done
With only "drivers" renamed, the mlx5 case is reported in incremental
mode as well.
Info: driver_code_dir() hardcodes the list of intel drivers. Testing
the directory picks up new ones without editing the script:
*)
if [ -d $rootdir/drivers/net/intel/$drv ]; then
echo "$rootdir/drivers/net/intel/$drv"
else
echo "$rootdir/drivers/net/$drv"
fi ;;
Patch 11/12 ethdev: check RSS availability
Warning: the commit message and release note say RSS mode is rejected
when flow_type_rss_offloads is 0. The code rejects it only with more
than one Rx queue; with one queue it logs a notice and clears
RTE_ETH_MQ_RX_RSS_FLAG in dev->data->dev_conf. Say so:
* RSS mode (Rx ``RTE_ETH_MQ_RX_RSS_FLAG``) is rejected with more than
one Rx queue if the driver reports no ``flow_type_rss_offloads``,
and ignored with a single Rx queue.
Patches 05/12, 10/12
Info: Fixes: targets are in released versions and there is still no
Cc: [email protected]. If these are not meant for stable (the fm10k hunk
relies on the ethdev VMDq check), say so in the commit message.