Re: [BUG] xhci: repeated URB cancel on UVC status interrupt EP (0x83) loops for ~15s, stalls camera - Intel Cannon Point-LP [8086:9ded]

Michal Pecio <[email protected]>
Newsgroups org.kernel.vger.linux-usb
Message-ID <[email protected]>
Hi,

Please post in plain text (not HTML) to kernel mailing lists. Not all
mail clients render HTML, not all that do make it easy to quote HTML.

There is something odd about your trace, not sure why the entries
aren't decoded.

The dmesg fragment shows some serious breakage on the isochronous
endpoint, it seems to jump to random places on the ring and execute
completely wrong TDs, like failed or missing Set TR Dequeue?

Considering the above, I would suggest *enabling* IOMMU, because this
chip is completely out of control and it may be DMA-ing to buffers
that have been freed (uvcvideo doesn't generally free isoc buffers
during streaming, but hell knowns if other endpoints aren't affected).

3990.653716 xhci_hcd 0000:00:14.0: Event dma 0x00000001323c0af0 for ep 2 status 1 not part of TD at 00000001323c0b10 - 00000001323c0b10
3990.653718 xhci_hcd 0000:00:14.0: Event dma 0x00000001323c0b00 for ep 2 status 1 not part of TD at 00000001323c0b10 - 00000001323c0b10
3991.385996 xhci_hcd 0000:00:14.0: Event dma 0x00000001323c05a0 for ep 2 status 13 not part of TD at 00000001323c0e40 - 00000001323c0e40
3991.386003 xhci_hcd 0000:00:14.0: Event dma 0x00000001323c05b0 for ep 2 status 13 not part of TD at 00000001323c0e40 - 00000001323c0e40
3991.386005 xhci_hcd 0000:00:14.0: Event dma 0x00000001323c05c0 for ep 2 status 13 not part of TD at 00000001323c0e40 - 00000001323c0e40
3991.386007 xhci_hcd 0000:00:14.0: Event dma 0x00000001323c05d0 for ep 2 status 13 not part of TD at 00000001323c0e40 - 00000001323c0e40
3991.386009 xhci_hcd 0000:00:14.0: Event dma 0x00000001323c05e0 for ep 2 status 13 not part of TD at 00000001323c0e40 - 00000001323c0e40
3991.386018 xhci_hcd 0000:00:14.0: Event TRB for slot 4 ep 2 with no TDs queued
3991.386645 xhci_hcd 0000:00:14.0: Event dma 0x00000001323c0630 for ep 2 status 13 not part of TD at 0000000119d858a0 - 0000000119d858a0
3991.386649 xhci_hcd 0000:00:14.0: Event dma 0x00000001323c0640 for ep 2 status 13 not part of TD at 0000000119d858a0 - 0000000119d858a0

Not sure what's the problem, if any, with the interrupt endpoint.
Nothing about it shows up in the log snippet provided.

Maybe try to collect dmesg with xhci dynamic debug enabled:

echo 'module xhci_hcd +p' >/proc/dynamic_debug/control
dmesg -W |tee log.txt
# connect the camera and reproduce the bug
# send log.txt

If you are feeling lucky, try if this patch from usb-next happens to
fix it. It was seen to reduce occurrences of other bizarre problems.

https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/commit/?h=usb-next&id=7c0c31c66a7f9daace156bac427aafb2f4bbb5fc

Either add usb.git to your remotes and checkout this commit, or
cherry-pick it on some recent kernel, or apply the diff manually,
or wait for v7.3-rc1 which is expected to include this patch.

Does anything similar happen to other USB 2.0 webcams connected to
external USB ports on the same USB bus number 1? I would say that a
15 second freeze may simply be a webcam issue, but those "Event dma"
messages shouldn't be there.

Regards,
Michal
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.