mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Choinière, Vincent" <choiniere.vincent@hydroquebec.com>
To: "netdev-bot+sashiko@kernel.org" <netdev-bot+sashiko@kernel.org>
Cc: "anthony.l.nguyen@intel.com" <anthony.l.nguyen@intel.com>,
	"przemyslaw.kitszel@intel.com" <przemyslaw.kitszel@intel.com>,
	"intel-wired-lan@lists.osuosl.org"
	<intel-wired-lan@lists.osuosl.org>,
	"aleksandr.loktionov@intel.com" <aleksandr.loktionov@intel.com>,
	"wojciech.drewek@intel.com" <wojciech.drewek@intel.com>,
	"pmenzel@molgen.mpg.de" <pmenzel@molgen.mpg.de>,
	"andrew+netdev@lunn.ch" <andrew+netdev@lunn.ch>,
	"davem@davemloft.net" <davem@davemloft.net>,
	"edumazet@kernel.org" <edumazet@kernel.org>,
	"kuba@kernel.org" <kuba@kernel.org>,
	"pabeni@redhat.com" <pabeni@redhat.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"stable@vger.kernel.org" <stable@vger.kernel.org>
Subject: Re: [PATCH net v3] ice: fix Tx hang dump using stale tx_buf[0].skb
Date: Fri, 13 Nov 2026 12:58:11 +0000	[thread overview]
Message-ID: <YT4PR01MB647290B9E40B791D7EC2A7501EE37F2@YT4PR01MB647290.CANPRD01.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <179414851949.994134.15149868204650152541@kernel.org>


Hi,

I posted v4 here:

https://lore.kernel.org/all/20261112-ice-tx-hang-dump-v4-1-9125f687669b@hydroquebec.com/

> Is pointer equality enough to show that this is still the hung ring?

Pointer equality alone is not sufficient. In v4, the saved ring is used
only if the timeout was on the PF VSI, that VSI is up, and
vsi->tx_rings[queue] is the saved ring, with the queue recorded at timeout
time. PF VSI rings have q_index == i, so a freed ring reused for another
queue after ethtool -L is rejected and the dump falls back to the
timeout-time values.

A reset of the same queue in place is still not detected: ethtool -G
replaces the ring contents, and ice_down() on an MTU change clears the
descriptors and indices without changing desc. Comparing desc would
miss the second case and is subject to address reuse. As before this
patch, a successful snapshot shows the queue's ring when the report is
generated. The v4 commit message and kernel-doc say so and no longer
imply that ring replacement is detected.

> Could the success path of ice_tx_hang_snapshot() at least set
> ev->queue = tx_ring->q_index, the same way it updates next_to_clean
> and next_to_use?

With the check above, a successful snapshot comes from
vsi->tx_rings[ev->queue], so there is no need to update ev->queue on the
success path.

In v4, I also read the saved ring pointer before taking RTNL,
alongside queue, head and intr. This avoids reading the ring pointer
after waiting for RTNL while using event values read before the wait.
It does not make the event snapshot atomic; the handoff remains
unsynchronized.

> Could the commit message say whether removing the unused export is
> planned as a net-next follow-up?

Yes. The v4 commit message says so. I plan to send the removal of
devlink_fmsg_dump_skb() to net-next once this fix is applied.

> [High] This problem wasn't introduced by this patch, but the service
> task can still run ice_report_tx_hang() during driver removal

> [High] This problem wasn't introduced by this patch, but devlink reload
> with DRIVER_REINIT can deadlock

Both issues predate this patch and are documented under Limitations
in the v4 notes. 
I suggest addressing them in separate fixes to keep this patch focused. If 
someone more familiar with these lifecycle and locking paths would like 
to take them on, that would be welcome.

Thanks,
Vincent

pw-bot: cr

      reply	other threads:[~2026-11-13 12:58 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-07 14:35 Vincent Choiniere via B4 Relay
2026-11-08 14:35 ` netdev-bot+sashiko
2026-11-13 12:58   ` Choinière, Vincent [this message]

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=YT4PR01MB647290B9E40B791D7EC2A7501EE37F2@YT4PR01MB647290.CANPRD01.PROD.OUTLOOK.COM \
    --to=choiniere.vincent@hydroquebec.com \
    --cc=aleksandr.loktionov@intel.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=anthony.l.nguyen@intel.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@kernel.org \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev-bot+sashiko@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=pmenzel@molgen.mpg.de \
    --cc=przemyslaw.kitszel@intel.com \
    --cc=stable@vger.kernel.org \
    --cc=wojciech.drewek@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®