DPDK-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Renyong Wan" <wanry@yunsilicon.com>
To: "Stephen Hemminger" <stephen@networkplumber.org>,
	 "David Marchand" <david.marchand@redhat.com>
Cc: <dev@dpdk.org>, <thomas@monjalon.net>
Subject: Re: [PATCH 0/8] Validate multiqueue configuration in ethdev
Date: Mon, 19 Oct 2026 14:41:05 +0800	[thread overview]
Message-ID: <c1fbad13-0888-4a02-892f-e0fb3f3b6e04@yunsilicon.com> (raw)
In-Reply-To: <20261016094449.3fad2388@phoenix.local>

On 10/17/2026 12:44 AM, Stephen Hemminger wrote:
> On Fri, 16 Oct 2026 15:05:46 +0200
> David Marchand <david.marchand@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.
> 
> 
> Thanks, eventually the whole features matrix needs to be auto generated
> but that requires lots more work.
> 
> First pass of semi-manual AI review found issues
> 
> Review: [PATCH 0/8] ethdev multi-queue mode validation (David Marchand)
> 
> Applied cleanly on main (v26.11-rc1). Every commit builds with
> -Dwerror=true for all touched drivers except mvneta/mvpp2 (no musdk).
> All Fixes: hashes resolve.
> 
> Main problems: 7/8 rejects RSS mode on ports without RSS, which breaks
> in-tree examples and drivers that deliberately tolerated it; and the
> devtools trigger added in 4/8 never fires on code changes.
> 
> 
> Patch 4/8 devtools: check VMDq capability
> 
> Error: has_code_change patterns use '\|' for alternation. git -G
> compiles the pattern as ERE, where '\|' is a literal pipe, so it never
> matches. On this series:
> 
>    git log -G'max_vmdq_pools\|RTE_ETH_MQ_.*VMDQ' HEAD~8..  -> 0 commits
>    git log -G'max_vmdq_pools|RTE_ETH_MQ_.*VMDQ'  HEAD~8..  -> 7 commits
> 
> So incremental mode only runs check_mq_caps when a features .ini
> changes. Use ERE alternation here and in the patterns extended by 5/8
> and 7/8:
> 
>    if has_code_change 'max_vmdq_pools|RTE_ETH_MQ_.*VMDQ' ||
> 
> Warning: drivers under drivers/net/intel/ are never checked.
> all_net_drivers and changed_net_drivers only yield "intel", there is no
> intel.ini, so check_mq_caps returns early for ixgbe, i40e, igb, ice,
> fm10k, ipn3ke, idpf and cpfl, i.e. most VMDq/DCB users. Running the
> check over the intel subdirectories reports:
> 
>    DCB documented but no get_dcb_info callback for ipn3ke
>    RSS documented but flow_type_rss_offloads not set for ipn3ke
>    VMDq documented but max_vmdq_pools not set for ipn3ke
> 
> e1000 also needs a dir to doc mapping (em/igb/igc share a directory).
> igb.ini claims DCB = Y, but igb has no get_dcb_info and 5/8 removes
> its "DCB mode is not supported" check. Fix igb.ini and ipn3ke.ini in
> this series, and walk drivers/net/intel/*/ in the script.
> 
> Info: -S to -G also changes the existing rte_flow trigger.
> -S'RTE_FLOW_.*_TYPE_' was a literal match and never fired before.
> Mention it in the commit message.
> 
> 
> Patch 7/8 ethdev: check RSS availability
> 
> Error: rejecting RTE_ETH_MQ_RX_RSS_FLAG when flow_type_rss_offloads is
> 0 breaks configurations that work today. Applications set RSS mode
> statically and only mask rss_hf with flow_type_rss_offloads. In tree:
> l3fwd, l3fwd-power, l3fwd-graph, ip_reassembly, distributor, ntb, dma,
> eventdev_pipeline, multi_process mp_server, app/graph, test-eventdev.
> 
> l3fwd only clears mq_mode for disable_rss or max_rx_queues == 1, so it
> now fails rte_eth_dev_configure() on virtio without VIRTIO_NET_F_RSS,
> vhost, memif, af_xdp, af_packet, ring and pcap. mp_server uses one Rx
> queue with RSS and fails on any port without RSS.
> 
> Drivers deliberately accepted this: mvneta (failed only with more than
> one Rx queue), octeontx, sfc_repr and cnxk_rep (RSS with one queue and
> no hash config). After this patch the RSS branches left in
> sfc_repr_check_conf() and rep_eth_conf_chk() are unreachable.
> 
> Only reject what cannot work:
> 
> 	if (dev_info.flow_type_rss_offloads == 0 &&
> 	    (dev_conf->rxmode.mq_mode & RTE_ETH_MQ_RX_RSS_FLAG) != 0 &&
> 	    nb_rx_q > 1) {
> 
> and fix the examples to drop RSS when the port has none, e.g. l3fwd:
> 
> 	if (disable_rss == 1 || dev_info.max_rx_queues == 1 ||
> 	    dev_info.flow_type_rss_offloads == 0)
> 		local_port_conf.rxmode.mq_mode = RTE_ETH_MQ_RX_NONE;
> 
> Update the release note wording to match.
> 
> 
> Patch 2/8 drivers/net: fix reported VMDq capability
> 
> Warning: Fixes: targets are in released versions but there is no
> Cc: stable@dpdk.org. If it goes to stable, the fm10k hunk cannot be
> taken as is: it drops the VF configure check and relies on the ethdev
> VMDq validation, which stable does not have.
> 
> Info: failsafe.ini VMDq = P is not mentioned in the commit message.
> 
> 
> Patch 6/8 drivers/net: fix reported RSS capability
> 
> Warning: Fixes: targets are in released versions but there is no
> Cc: stable@dpdk.org.
> 
> Warning: xsc_np.c handles L3/L4 SRC_ONLY/DST_ONLY and LEVEL_INNERMOST,
> but only IP|UDP|TCP are advertised, so ethdev rejects those bits in
> configure and rss_hash_update. Advertise what the driver implements:
> 
> 	info->flow_type_rss_offloads = RTE_ETH_RSS_IP |
> 		RTE_ETH_RSS_UDP | RTE_ETH_RSS_TCP |
> 		RTE_ETH_RSS_L3_SRC_ONLY | RTE_ETH_RSS_L3_DST_ONLY |
> 		RTE_ETH_RSS_L4_SRC_ONLY | RTE_ETH_RSS_L4_DST_ONLY |
> 		RTE_ETH_RSS_LEVEL_INNERMOST;
> 

Agreed, the advertised mask is incomplete. xsc_np.c does handle these
RSS bits, but they are not reported in flow_type_rss_offloads.
David, please fold this into the patch.

Thanks,
Wan Renyong

  reply	other threads:[~2026-10-19  6:42 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-16 13:05 [PATCH 0/8] Validate multiqueue configuration in ethdev David Marchand
2026-10-16 13:05 ` [PATCH 1/8] net/bnxt: remove leftover VMDq code in MAC helpers David Marchand
2026-10-16 13:05 ` [PATCH 2/8] drivers/net: fix reported VMDq capability David Marchand
2026-10-16 13:05 ` [PATCH 3/8] drivers/net: remove check on VMDq modes David Marchand
2026-10-16 13:05 ` [PATCH 4/8] devtools: check VMDq capability David Marchand
2026-10-16 13:05 ` [PATCH 5/8] ethdev: check DCB availability David Marchand
2026-10-16 13:05 ` [PATCH 6/8] drivers/net: fix reported RSS capability David Marchand
2026-10-16 13:05 ` [PATCH 7/8] ethdev: check RSS availability David Marchand
2026-10-16 13:05 ` [PATCH 8/8] ethdev: check unknown Rx/Tx multi-queue modes David Marchand
2026-10-16 16:44 ` [PATCH 0/8] Validate multiqueue configuration in ethdev Stephen Hemminger
2026-10-19  6:41   ` Renyong Wan [this message]
2026-10-21 10:30 ` [PATCH v2 00/12] " David Marchand
2026-10-21 10:30   ` [PATCH v2 01/12] devtools: fix matching in doc check David Marchand
2026-10-21 10:42     ` Thomas Monjalon
2026-10-21 10:30   ` [PATCH v2 02/12] doc: fix L2TPv2 and PPP matching support for ICE David Marchand
2026-10-21 10:30   ` [PATCH v2 03/12] devtools: handle multiple drivers in doc check David Marchand
2026-10-22  9:39     ` Thomas Monjalon
2026-10-21 10:30   ` [PATCH v2 04/12] net/bnxt: remove leftover VMDq code in MAC helpers David Marchand
2026-10-21 10:30   ` [PATCH v2 05/12] drivers/net: fix reported VMDq capability David Marchand
2026-10-21 10:53     ` Bruce Richardson
2026-10-21 10:30   ` [PATCH v2 06/12] drivers/net: remove check on VMDq modes David Marchand
2026-10-21 10:55     ` Bruce Richardson
2026-10-21 10:30   ` [PATCH v2 07/12] devtools: check VMDq capability David Marchand
2026-10-22  9:44     ` Thomas Monjalon
2026-10-21 10:30   ` [PATCH v2 08/12] doc: fix DCB capability for some Intel drivers David Marchand
2026-10-21 11:04     ` Bruce Richardson
2026-10-21 10:30   ` [PATCH v2 09/12] ethdev: check DCB availability David Marchand
2026-10-21 11:07     ` Bruce Richardson
2026-10-21 10:30   ` [PATCH v2 10/12] drivers/net: fix reported RSS capability David Marchand
2026-10-22  6:17     ` Renyong Wan
2026-10-21 10:30   ` [PATCH v2 11/12] ethdev: check RSS availability David Marchand
2026-10-21 10:30   ` [PATCH v2 12/12] ethdev: check unknown Rx/Tx multi-queue modes David Marchand
2026-10-21 17:42   ` [PATCH v2 00/12] Validate multiqueue configuration in ethdev Stephen Hemminger
2026-10-22 17:44 ` [PATCH v3 00/13] " David Marchand
2026-10-22 17:44   ` [PATCH v3 01/13] devtools: fix matching in doc check David Marchand
2026-10-22 17:44   ` [PATCH v3 02/13] doc: fix L2TPv2 and PPP matching support for ICE David Marchand
2026-10-22 17:44   ` [PATCH v3 03/13] devtools: support Intel drivers in doc check David Marchand
2026-10-23 10:11     ` Thomas Monjalon
2026-10-22 17:44   ` [PATCH v3 04/13] devtools: handle multiple " David Marchand
2026-10-23 10:13     ` Thomas Monjalon
2026-10-23 15:08       ` David Marchand
2026-10-22 17:44   ` [PATCH v3 05/13] net/bnxt: remove leftover VMDq code in MAC helpers David Marchand
2026-10-22 17:44   ` [PATCH v3 06/13] drivers/net: fix reported VMDq capability David Marchand
2026-10-22 17:44   ` [PATCH v3 07/13] drivers/net: remove check on VMDq modes David Marchand
2026-10-27  2:38     ` fengchengwen
2026-10-22 17:44   ` [PATCH v3 08/13] devtools: check VMDq capability David Marchand
2026-10-22 17:44   ` [PATCH v3 09/13] doc: fix DCB capability for some Intel drivers David Marchand
2026-10-22 17:44   ` [PATCH v3 10/13] ethdev: check DCB availability David Marchand
2026-10-27  2:39     ` fengchengwen
2026-10-22 17:44   ` [PATCH v3 11/13] drivers/net: fix reported RSS capability David Marchand
2026-10-22 17:44   ` [PATCH v3 12/13] ethdev: check RSS availability David Marchand
2026-10-27  2:41     ` fengchengwen
2026-10-22 17:44   ` [PATCH v3 13/13] ethdev: check unknown Rx/Tx multi-queue modes David Marchand
2026-10-26 18:11   ` [PATCH v3 00/13] Validate multiqueue configuration in ethdev 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=c1fbad13-0888-4a02-892f-e0fb3f3b6e04@yunsilicon.com \
    --to=wanry@yunsilicon.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=stephen@networkplumber.org \
    --cc=thomas@monjalon.net \
    /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