From: Michal Pecio <michal.pecio@gmail.com>
To: Lovekesh Solanki <lovekeshsolanki00@gmail.com>
Cc: Thorsten Leemhuis <regressions@leemhuis.info>,
Mathias Nyman <mathias.nyman@linux.intel.com>,
linux-usb@vger.kernel.org, regressions@lists.linux.dev,
stable@vger.kernel.org, linux-kernel@vger.kernel.org,
Mario Limonciello <mario.limonciello@amd.com>,
Forest <forestix@gaga.casa>,
Slavik Dev <developer.slavik@gmail.com>,
Mathieu Fluhr <mathieu.fluhr@gmail.com>
Subject: Re: [REGRESSION] 6.12.36+: usb: hub: post-resume delayed work triggers > uncorrected MCE / data fabric sync flood on Threadripper 7970X > (bisected to aec11e5f9c45)
Date: Sun, 23 Aug 2026 17:40:59 +0200 [thread overview]
Message-ID: <20260823174059.46fec036.michal.pecio@gmail.com> (raw)
In-Reply-To: <aosGtkE_diwVJJtB@eggarch>
On Sun, 23 Aug 2026 20:47:55 +0530, Lovekesh Solanki wrote:
> I don't think a revert is needed here, we're just trading one
> regression for another.
> Commit 8f5b7e2bec1c introduced the 200ms hold for all superspeed hubs,
> but it's only useful for external ones. Root hubs are superspeed hubs
> too so they go through the same code, but there's nothing useful for
> the hold to do there:
> A root hub has no upstream suspended hub whose wake propagation we
> need to wait for and xhci already handles late USB3 link training
> itself.
>
> Also hubs have a 0 second autosuspend delay (596d789a211d), so this
> hold is the only thing stretching the awake window.
>
> and anything opening or closing /dev/bus/usb nodes auto resumes and
> auto suspends the whole host controller, adb's periodic enumeration
> does that so on the reported affected systems every SS roothub cycle
> grows from ~30 to ~235ms (from the dynamic debug traces in
> https://lore.kernel.org/all/qc0nhk9c6l0a08bkfeplrm3qjssgrjkvkp@sonic.net/)
> which makes suspend move from close() call into delayed work and
> results in the ~1Hz stress loop described upthread.
>
> I think skipping the hold for hubs without a parent device, i.e. keep
> TB dock behaviour everywhere it matters, should fix this.
It likely will, as it effectively reverts the problematic commit for
those particular affected devices (root hubs).
But I'm not sure what you mean by "1Hz stress loop" and why is slowing
down the suspend/resume cycles or moving suspend from close() call into
a work supposed to create problems?
I would naively think that doing things *too fast* is more likely to
trigger races and break the HW. The whole issue smells like a HW bug,
or maybe one of those "undefined behaviors" that the xHCI spec warns
about if SW dares to do something out of spec.
So why was the culprit patch even a problem for those root hubs?
Can it not become a problem for external hubs, under other workloads?
Also, what if we connect a downstream SS hub to the root hub? Will this
not cause the root hub to stay awake for 200ms again? Problem is back?
Regards,
Michal
next prev parent reply other threads:[~2026-08-23 15:41 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-23 9:55 Mathieu Fluhr
2026-08-23 10:12 ` Mathieu Fluhr
2026-08-23 10:15 ` [REGRESSION] 6.12.36+: usb: hub: post-resume delayed work triggers > uncorrected MCE / data fabric sync flood on Threadripper 7970X > (bisected to aec11e5f9c45) Mathieu Fluhr
2026-08-23 10:36 ` Thorsten Leemhuis
2026-08-23 11:44 ` Mathieu Fluhr
2026-08-23 16:10 ` Michal Pecio
2026-08-23 15:17 ` Lovekesh Solanki
2026-08-23 15:40 ` Michal Pecio [this message]
2026-08-23 17:05 ` Lovekesh Solanki
2026-08-24 19:37 ` Mathieu Fluhr
2026-08-24 22:09 ` Mario Limonciello
2026-08-25 8:57 ` Mathieu Fluhr
2026-08-26 3:14 ` Mario Limonciello
2026-08-26 6:27 ` Mathieu Fluhr
2026-08-26 15:32 ` Mario Limonciello
2026-08-26 6:59 ` Michal Pecio
2026-08-25 10:15 ` Lovekesh Solanki
2026-08-25 10:06 ` Lovekesh Solanki
2026-08-25 21:43 ` Mathieu Fluhr
2026-08-26 12:35 ` Lovekesh Solanki
2026-08-26 13:40 ` Mathias Nyman
2026-08-26 16:03 ` Mathieu Fluhr
2026-08-26 18:11 ` Lovekesh Solanki
2026-08-27 19:34 ` Mathias Nyman
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=20260823174059.46fec036.michal.pecio@gmail.com \
--to=michal.pecio@gmail.com \
--cc=developer.slavik@gmail.com \
--cc=forestix@gaga.casa \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=lovekeshsolanki00@gmail.com \
--cc=mario.limonciello@amd.com \
--cc=mathias.nyman@linux.intel.com \
--cc=mathieu.fluhr@gmail.com \
--cc=regressions@leemhuis.info \
--cc=regressions@lists.linux.dev \
--cc=stable@vger.kernel.org \
/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