Re: [BUG] xhci: repeated URB cancel on UVC status interrupt EP (0x83) loops for ~15s, stalls camera - Intel Cannon Point-LP [8086:9ded]
Mathias Nyman <[email protected]>
| Newsgroups | org.kernel.vger.linux-usb |
|---|---|
| Message-ID | <[email protected]> |
On 8/19/26 00:29, Michal Pecio wrote: > On Tue, 18 Aug 2026 20:31:17 +0300, Дмитрий wrote: >> Hi Michal, >> >> I tested the suggested commit: >> >> 3d9eeb336131bc5a174367c384fa00c15c8744fd >> >> on top of Fedora kernel 7.1.8 with the earlier commit >> 7c0c31c66a7f9daace156bac427aafb2f4bbb5fc also applied. >> >> The resulting kernel was: >> >> 7.1.8-200.xhci3d9eeb3.fc44.x86_64 >> >> COPR build: >> >> https://copr.fedorainfracloud.org/coprs/vertigo-red/kernel-xhci-deq/build/10875339/ >> >> IOMMU remained enabled in translated, strict mode: >> >> intel_iommu=on iommu.passthrough=0 iommu.strict=1 >> >> There were no DMAR or IOMMU faults. >> >> A journal-cursor-bounded run with dynamic debug enabled for >> drivers/usb/host/xhci-ring.c timed out after 45.026 seconds: >> >> rc=124 >> >> The v4l2-ctl output contained 22 capture markers and reported 239 >> dropped buffers. During the exact test interval, the kernel logged: Is the camera still unusable with this new kernel if you disable all debugging? With the "All TDs skipped" issue fixed the driver should now be in sync with the isoch ring. > > This number of Missed Service Errors is excessive and may be the main > reason for data loss. Unfortunately, I don't konw what causes it. Some > users reported seeing correlation with CPU load (it may go both ways - > either high or low CPU load causes errors). > > It notably shouldn't be affected by scheduling patches in usb-next, > because uvcvideo uses URB_ISO_ASAP. And you say the bug is very old. > > Maybe it's something to do with multi-TRB TDs? Would it get any better > in video modes that don't produce "spurious events"? > Could you take a short xhci trace of this issue? It should show the content of those TRBs in mode detail. TRB fields like TD size are more important in Multi-TRB TDs. Controller uses those for scheduling. mount -t debugfs none /sys/kernel/debug echo 81920 > /sys/kernel/debug/tracing/buffer_size_kb echo 1 > /sys/kernel/debug/tracing/events/xhci-hcd/enable echo 1 > /sys/kernel/debug/tracing/tracing_on < Reproduce issue > Send content of /sys/kernel/debug/tracing/trace Content of HCCPARAMS2 register and USBCMD register would also be useful as those dictate how the TRB fields are interpreted. cat /sys/kernel/debug/usb/xhci/0000:00:14.0/reg-cap cat /sys/kernel/debug/usb/xhci/0000:00:14.0/reg-op Thanks Mathias