From: Bruce Richardson <bruce.richardson@intel.com>
To: Dawid Wesierski <dawid.wesierski@intel.com>
Cc: <dev@dpdk.org>, <thomas@monjalon.net>,
<marek.kasiewicz@intel.com>,
Anatoly Burakov <anatoly.burakov@intel.com>,
Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Subject: Re: [PATCH v6 2/2] net/iavf: disable runtime queue setup during queue rate limiting
Date: Thu, 23 Jul 2026 11:29:01 +0100 [thread overview]
Message-ID: <amHs7Wd9JP72tmDj@bricha3-mobl1.ger.corp.intel.com> (raw)
In-Reply-To: <alS5ZHqcu-rumZoX@bricha3-mobl1.ger.corp.intel.com>
On Mon, Jul 13, 2026 at 11:09:40AM +0100, Bruce Richardson wrote:
> On Mon, Jul 13, 2026 at 05:42:58AM -0400, Dawid Wesierski wrote:
> > Runtime queue setup on E810 VFs causes queue state corruption when
> > queues are dynamically reconfigured while the hardware rate limiter
> > is actively pacing TX queues. Queue configuration messages to the PF
> > via virtchnl can race with ongoing TX operations, leading to undefined
> > behavior.
> >
> > Rather than gating this behind a devarg that an application would have
> > to know to set (and could just as easily avoid triggering the race by
> > not calling rte_eth_{rx,tx}_queue_setup() on a running port), stop
> > advertising RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP and
> > RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP as soon as the application
> > commits a per-queue bandwidth rte_tm hierarchy, i.e. as soon as the
> > condition that causes the race actually exists. iavf_dev_info_get() is
> > re-queried by the ethdev layer on every rx/tx_queue_setup() call, so
> > this is enough for the generic layer to start rejecting runtime queue
> > (re)configuration with -EBUSY once queue rate limiting is active, and
> > to automatically allow it again once the rte_tm hierarchy is torn
> > down.
> >
> > vf->qtc_map, already used elsewhere to look up a queue's TC mapping,
> > is repurposed as the "queue bandwidth committed" signal since it's set
> > by iavf_hierarchy_commit() exactly when a per-queue bandwidth mapping
> > has been pushed to the PF, regardless of whether the port was stopped
> > at the time. Fix two related issues found while making it load-bearing
> > for this check:
> >
> > - iavf_hierarchy_commit() replaced vf->qtc_map on every successful
> > commit without freeing the previous allocation, leaking memory.
> > - vf->qtc_map was never released on VF teardown, so
> > iavf_uninit_vf()/iavf_init_vf() (e.g. across a VF reset) could leave
> > a stale pointer referencing freed unrelated memory, and the runtime
> > queue setup capability would never be re-advertised after a reset.
> >
> > Both are fixed by freeing vf->qtc_map before replacing it in
> > iavf_hierarchy_commit(), and freeing and clearing it in
> > iavf_uninit_vf().
> >
> > Signed-off-by: Marek Kasiewicz <marek.kasiewicz@intel.com>
> > Signed-off-by: Dawid Wesierski <dawid.wesierski@intel.com>
> > ---
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
>
> Unfortunately, since we are now past RC3 for 26.07, I'm not going to take
> this change for this release. [For RC4, we limit changes to critical fixes
> and doc changes, so as to avoid last-minute issues]. I'm doing to mark this
> as deferred and will take it in 26.11 whenever my tree opens for patches
> for that release.
>
Changed release note update to target the 26.11 one and applied patch to
next-net-intel.
Thanks,
/Bruce
next prev parent reply other threads:[~2026-07-23 10:29 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-08 16:40 [PATCH 0/7] intel network and pcapng updates Dawid Wesierski
2026-06-08 16:40 ` [PATCH 1/7] net/iavf: increase max ring descriptors to hardware limit Dawid Wesierski
2026-06-08 16:40 ` [PATCH 2/7] net/iavf: allow runtime queue rate limit configuration Dawid Wesierski
2026-06-08 16:40 ` [PATCH 3/7] net/ice/base: reduce default scheduler burst size Dawid Wesierski
2026-06-08 16:40 ` [PATCH 4/7] net/ice: timestamp all received packets when PTP is enabled Dawid Wesierski
2026-06-08 16:40 ` [PATCH 5/7] net/iavf: disable runtime queue setup capability Dawid Wesierski
2026-06-08 16:40 ` [PATCH 6/7] pcapng: add user-supplied timestamp support Dawid Wesierski
2026-06-08 17:09 ` Stephen Hemminger
2026-06-08 16:40 ` [PATCH 7/7] net/ice: add header split mbuf callback support Dawid Wesierski
2026-06-08 16:59 ` [PATCH 0/7] intel network and pcapng updates Thomas Monjalon
2026-06-18 14:44 ` [PATCH v3 1/1] pcapng: add user-supplied timestamp support Dawid Wesierski
2026-06-18 15:20 ` Stephen Hemminger
2026-06-18 14:44 ` [PATCH v2 0/7] Intel network drivers enhancements Dawid Wesierski
2026-06-18 14:44 ` [PATCH v2 1/7] ethdev: add header split mbuf callback API Dawid Wesierski
2026-06-18 16:26 ` Thomas Monjalon
2026-06-18 14:44 ` [PATCH v2 2/7] net/iavf: increase max ring descriptors to hardware limit Dawid Wesierski
2026-06-18 14:44 ` [PATCH v2 3/7] net/iavf: allow runtime queue rate limit configuration Dawid Wesierski
2026-06-18 14:44 ` [PATCH v2 4/7] net/ice/base: reduce default scheduler burst size Dawid Wesierski
2026-06-18 14:44 ` [PATCH v2 5/7] net/ice: timestamp all received packets when PTP is enabled Dawid Wesierski
2026-06-18 14:44 ` [PATCH v2 6/7] net/iavf: disable runtime queue setup capability Dawid Wesierski
2026-06-18 14:44 ` [PATCH v2 7/7] net/intel: support header split mbuf callback Dawid Wesierski
2026-06-29 15:33 ` Tested the v3 series on Intel E810-C (Columbiaville) hardware Dawid Wesierski
2026-06-30 12:06 ` [PATCH v3 0/6] Intel network drivers enhancements Dawid Wesierski
2026-06-30 12:06 ` [PATCH v3 1/6] net/iavf: increase max ring descriptors to hardware limit Dawid Wesierski
2026-06-30 14:29 ` Bruce Richardson
2026-06-30 12:06 ` [PATCH v3 2/6] net/iavf: allow runtime queue rate limit configuration Dawid Wesierski
2026-06-30 14:46 ` Bruce Richardson
2026-06-30 12:06 ` [PATCH v3 3/6] net/ice: add scheduler rate-limiter burst size devarg Dawid Wesierski
2026-06-30 15:20 ` Bruce Richardson
2026-06-30 12:06 ` [PATCH v3 4/6] net/ice: timestamp all received packets when PTP is enabled Dawid Wesierski
2026-06-30 15:39 ` Bruce Richardson
2026-07-03 20:00 ` Dawid Wesierski
2026-06-30 12:06 ` [PATCH v3 5/6] net/iavf: disable runtime queue setup capability Dawid Wesierski
2026-06-30 15:44 ` Bruce Richardson
2026-07-08 23:18 ` Dawid Wesierski
2026-06-30 12:06 ` [PATCH v3 6/6] app/testpmd: add pinned external-buffer Rx pool command Dawid Wesierski
2026-07-01 10:42 ` [PATCH v3 0/6] Intel network drivers enhancements Bruce Richardson
2026-07-03 12:19 ` [PATCH v4 0/5] " Dawid Wesierski
2026-07-03 12:19 ` [PATCH v4 1/5] net/iavf: increase max ring descriptors to hardware limit Dawid Wesierski
2026-07-03 12:19 ` [PATCH v4 2/5] net/iavf: allow runtime queue rate limit configuration Dawid Wesierski
2026-07-03 12:19 ` [PATCH v4 3/5] net/ice: add scheduler rate-limiter burst size devarg Dawid Wesierski
2026-07-03 12:19 ` [PATCH v4 4/5] net/iavf: disable runtime queue setup capability Dawid Wesierski
2026-07-03 12:19 ` [PATCH v4 5/5] app/testpmd: add pinned external-buffer Rx pool command Dawid Wesierski
2026-07-08 23:19 ` [PATCH v5 0/2] net/iavf, ice: fix runtime queue setup race and burst-size doc Dawid Wesierski
2026-07-08 23:19 ` [PATCH 1/2] doc: fix ice scheduler rate-limiter burst size description Dawid Wesierski
2026-07-10 15:07 ` Bruce Richardson
2026-07-13 9:44 ` [PATCH v6 0/2] doc: ice: update documentation for rl_burst_size devarg Dawid Wesierski
2026-07-08 23:19 ` [PATCH 2/2] net/iavf: disable runtime queue setup during queue rate limiting Dawid Wesierski
2026-07-10 15:14 ` Bruce Richardson
2026-07-13 9:42 ` [PATCH v6 0/2] Intel network driver enhancements Dawid Wesierski
2026-07-13 9:42 ` [PATCH v6 1/2] doc: fix ice scheduler rate-limiter burst size description Dawid Wesierski
2026-07-13 9:42 ` [PATCH v6 2/2] net/iavf: disable runtime queue setup during queue rate limiting Dawid Wesierski
2026-07-13 9:42 ` [PATCH v6 0/2] Intel network driver enhancements Dawid Wesierski
2026-07-13 9:42 ` [PATCH v6 1/2] doc: fix ice scheduler rate-limiter burst size description Dawid Wesierski
2026-07-13 10:05 ` Bruce Richardson
2026-07-13 9:42 ` [PATCH v6 2/2] net/iavf: disable runtime queue setup during queue rate limiting Dawid Wesierski
2026-07-13 10:09 ` Bruce Richardson
2026-07-23 10:29 ` Bruce Richardson [this message]
2026-06-18 15:45 ` [PATCH v2 0/7] Intel network drivers enhancements Stephen Hemminger
2026-06-18 15:46 ` 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=amHs7Wd9JP72tmDj@bricha3-mobl1.ger.corp.intel.com \
--to=bruce.richardson@intel.com \
--cc=anatoly.burakov@intel.com \
--cc=dawid.wesierski@intel.com \
--cc=dev@dpdk.org \
--cc=marek.kasiewicz@intel.com \
--cc=thomas@monjalon.net \
--cc=vladimir.medvedkin@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.