Re: MSI interrupt for xhci still lost on 5.6-rc6 after cpu hotplug

From: Mathias Nyman
Date: Wed Mar 25 2020 - 13:09:53 EST


On 24.3.2020 18.17, Evan Green wrote:
>
> Another experiment would be to try my old patch in [1]. I'm not
> advocating for this patch as a solution, Thomas and Bjorn have
> convinced me that it will break the rest of the world. But your PCI
> device 0xa3af seems to be Comet Lake. I was also on Comet Lake. So I'd
> expect to at least see it mask your problem. Again, if it didn't, that
> might be an interesting datapoint.
>
> [1] https://lore.kernel.org/lkml/20200117162444.v2.1.I9c7e72144ef639cc135ea33ef332852a6b33730f@changeid/
>

Yes I'm testing on a Comet Lake, oddly your patch doesn't mask the problem.
Did a few rounds, seems that xhci interrupts don't always stop when both vector
and apicid are updated. Sometimes just apicid update triggers it.

(tail of) round 1:
<idle>-0 [001] d.h. 249.040051: xhci_irq: xhci irq
<idle>-0 [001] d.h. 249.040122: do_IRQ: vector: 33 desc ffff9e84075b1800
<idle>-0 [001] d.h. 249.040125: xhci_irq: xhci irq
migration/1-14 [001] d..1 249.045231: msi_set_affinity: direct update msi 123, vector 33 -> 33, apicid: 2 -> 6
migration/3-24 [003] d..1 249.069563: msi_set_affinity: twostep update msi, irq 123, vector 33 -> 35, apicid: 6 -> 0
<idle>-0 [000] d.h. 250.294934: do_IRQ: vector: 33 desc ffff9e84066df200
<idle>-0 [000] d.h. 250.294940: msi_set_affinity: direct update msi 122, vector 33 -> 33, apicid: 0 -> 0
<idle>-0 [000] d.h. 252.276099: do_IRQ: vector: 33 desc ffff9e84066df200
round 2:
<idle>-0 [001] d.h. 75.580577: do_IRQ: vector: 33 desc ffffa0449d084a00
<idle>-0 [001] d.h. 75.580578: xhci_irq: xhci irq
<idle>-0 [001] d.h. 75.580639: do_IRQ: vector: 33 desc ffffa0449d084a00
<idle>-0 [001] d.h. 75.580640: xhci_irq: xhci irq
<...>-14 [001] d..1 75.585814: msi_set_affinity: direct update msi 123, vector 33 -> 33, apicid: 2 -> 6
migration/3-24 [003] d..1 75.606381: msi_set_affinity: direct update msi 123, vector 33 -> 33, apicid: 6 -> 0
<idle>-0 [000] d.h. 76.275792: do_IRQ: vector: 35 desc ffffa04486009a00

round 3:
<idle>-0 [001] d.h. 117.383266: xhci_irq: xhci irq
<idle>-0 [001] d.h. 117.383407: do_IRQ: vector: 33 desc ffff92515d0d5800
<idle>-0 [001] d.h. 117.383410: xhci_irq: xhci irq
migration/1-14 [001] d..1 117.388527: msi_set_affinity: direct update msi 123, vector 33 -> 33, apicid: 2 -> 6
migration/3-24 [003] d..1 117.413877: msi_set_affinity: direct update msi 123, vector 33 -> 33, apicid: 6 -> 0
<idle>-0 [000] d.h. 119.290474: do_IRQ: vector: 35 desc ffff92514757b600

round 4:
<idle>-0 [003] d.h. 147.950569: do_IRQ: vector: 33 desc ffff976fdd04ca00
<idle>-0 [003] d.h. 147.950569: xhci_irq: xhci irq
<idle>-0 [003] d.h. 147.950689: do_IRQ: vector: 33 desc ffff976fdd04ca00
<idle>-0 [003] d.h. 147.950690: xhci_irq: xhci irq
migration/3-24 [003] d..1 147.951368: msi_set_affinity: direct update msi 123, vector 33 -> 33, apicid: 6 -> 0
<idle>-0 [000] d.h. 148.491193: do_IRQ: vector: 35 desc ffff976fdcc9da00
<idle>-0 [000] d.h. 148.491198: msi_set_affinity: direct update msi 122, vector 35 -> 35, apicid: 0 -> 0

-Mathias