Re: [PATCH for-linus] PCI: Honor Max Link Speed when determining supported speeds

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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






[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux