[PATCH v2 00/12] Validate multiqueue configuration in ethdev

Stephen Hemminger stephen at networkplumber.org
Wed Oct 21 19:42:34 CEST 2026


On Wed, 21 Oct 2026 12:30:14 +0200
David Marchand <david.marchand at redhat.com> 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: stable at dpdk.org. If these are not meant for stable (the fm10k hunk
relies on the ethdev VMDq check), say so in the commit message.


More information about the dev mailing list