On Fri, 2024-12-13 at 10:43 +0100, Lukas Wunner wrote: > On Thu, Dec 12, 2024 at 08:40:07PM +0100, Niklas Schnelle wrote: > > > > On Thu, Dec 12, 2024 at 09:56:16AM +0100, Lukas Wunner wrote: > > > > > The Supported Link Speeds Vector in the Link Capabilities 2 Register > > > > > indicates the *supported* link speeds. The Max Link Speed field in > > > > > the Link Capabilities Register indicates the *maximum* of those speeds. > > > > > > > > > > Niklas reports that the Intel JHL7540 "Titan Ridge 2018" Thunderbolt > > > > > controller supports 2.5-8 GT/s speeds, but indicates 2.5 GT/s as maximum. > > > > > Ilpo recalls seeing this inconsistency on more devices. > > > > > > > > > > pcie_get_supported_speeds() neglects to honor the Max Link Speed field > > > > > and will thus incorrectly deem higher speeds as supported. Fix it. > > > > Ok, gave this a test and as somewhat suspected this patch alone doesn't > > fix my boot hang nor do I get more output (also tried Lukas suggestion > > with early_printk). > > Hm, that's kind of a bummer because while we know how to work around > your boot hang (by disabling bwctrl altogether), we don't really know > the root cause. > > The bwctrl IRQ handler runs in hardirq context, so if it ends up in an > infinite loop for some reason or keeps waiting for a spinlock, that > might indeed cause a boot hang. Not that I'm seeing in the code where > that might occur. Nevertheless you can try adding "threadirqs" to the > kernel command line to force all IRQ handlers into threads. > Alternatively, enable CONFIG_PREEMPT_RT to also turn spinlocks into > sleeping locks. Maybe this turns the boot hang into a hung task splat > and thus helps identify the root cause. > > Thanks, > > Lukas Tried with "threadirqs" but no change. So then I tried additionally just exiting pcie_bwnotif_irq() without doing anything if the bus number matches my thunderbolt controller. Still same result. So I don't think it is anything the irq handler does in software. Thanks, Niklas