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>,
"michal.kubiak@intel.com" <michal.kubiak@intel.com>,
"wojciech.drewek@intel.com" <wojciech.drewek@intel.com>,
"mateusz.polchlopek@intel.com" <mateusz.polchlopek@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 v2] ice: fix Tx hang dump using stale tx_buf[0].skb
Date: Sat, 7 Nov 2026 15:13:19 +0000 [thread overview]
Message-ID: <YT4PR01MB64729023ADDEA05B9BDF7F064BE3752@YT4PR01MB647290.CANPRD01.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <179324143967.3134.13716472134019576369@kernel.org>
Thanks for the review. I posted v3 here:
https://lore.kernel.org/netdev/20261107-ice-tx-hang-dump-v3-1-8f22109d1aad@hydroquebec.com/
I checked the sequences against current net.
[High] VSI and ring lifetime in ice_remove():
You are right that the kernel-doc claim was too strong. In ice_remove(),
ice_unload() drops RTNL, ice_deinit() sets ICE_SERVICE_DIS and frees the
VSIs, and the service task is only cancelled later in ice_deinit_dev().
ice_service_task() also runs the Tx hang report before it looks at
ICE_SERVICE_DIS, so the rings are not only replaced or freed under RTNL
or from the service task.
The underlying lifetime issue predates this patch: before it, the service
task dereferences the same saved ring with no protection at all. v3
removes the incorrect claim about RTNL protection and documents the
remaining limitations in the kernel-doc (ethtool -G/-L and the reset paths
are covered; driver removal and devlink reload are not).
[High, pre-existing] reporter freed in ice_remove():
Correct. ice_health_deinit() destroys the reporter without clearing
pf->health_reporters.tx_hang, and the service task can still reach it.
Same cause as above: the service task is stopped after the teardown.
[High, pre-existing] DRIVER_REINIT reload vs. the service task:
I read the same sequence: ice_devlink_reinit_down() reaches
ice_deinit_dev() and cancel_work_sync() on the service task with the
devlink instance lock held, while devlink_health_report() takes that lock
when auto_dump is set. That is a lock-ordering problem rather than a
teardown-ordering one, so this patch does not address it. I have not
reproduced it, and dropping RTNL before reporting does not change it.
[Low] tx_hang_buf:
Yes, listed under Limitations and left out of this patch.
Przemek, Tony: I think these pre-existing teardown and lock-ordering
issues would be better addressed separately from this fix. I am willing
to investigate and test follow-up fixes (I can force Tx timeouts on an
E810 with KASAN and lockdep), but I am not an ice expert. Please let me
know whether you would like me to prepare a separate series, and I would
appreciate guidance on the preferred approach.
prev parent reply other threads:[~2026-11-07 15:13 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-26 13:30 Vincent Choiniere via B4 Relay
2026-10-28 14:41 ` Przemek Kitszel
2026-10-29 2:37 ` netdev-bot+sashiko
2026-11-07 15:13 ` 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=YT4PR01MB64729023ADDEA05B9BDF7F064BE3752@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=mateusz.polchlopek@intel.com \
--cc=michal.kubiak@intel.com \
--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®