Re: Regression: webcam freezing since Linux 6.15
Michal Pecio <[email protected]> Wed, 5 Aug 2026 22:36:04 +0200
| Newsgroups | org.kernel.vger.linux-usb |
|---|---|
| Message-ID | <[email protected]> |
On Wed, 5 Aug 2026 12:01:47 -0700, Bart Nagel wrote: > At 2026-07-30 23:59:53 +0200, Michal Pecio wrote: > > On Thu, 30 Jul 2026 11:13:59 -0700, Bart Nagel wrote: > > > At 2026-07-30 13:08:14 +0200, Michal Pecio wrote: > > > > I'm slightly curious what exactly happens there (probably MSE after > > > > Short Packet on a single-TRB TD), and whether Missed Service Error > > > > may point at a Link TRB, because the current fix wouldn't handle > > > > that and the stream could still hang. So your failure rate may > > > > actually be reduced to 1/255 of what it was, but still not zero. > > > > > > > > If possible, please boot the patched kernel again and run it for > > > > a little longer. If it fails, post dmesg starting from the "Miss > > > > service interval error" line which is followed by "All TDs skipped". > > > > > > > > And while that is running, also collect another log: > > > > > > > > cd /sys/kernel/tracing/ > > > > echo 1 > events/xhci-hcd/xhci_handle_event/enable > > > > echo 1 > tracing_on > > > > grep -B5 Missed trace_pipe | tee /tmp/trace > > > > > > > > This is supposed to log 6 lines for every Missed Service Error, so > > > > it will grow, but not terribly fast. > > > > > > Before I make a bad assumption and collect a useless log, please > > > confirm for me exactly which debugging I should enable. Just the two > > > you gave above, or also one or both of the ones I was using before: > > > > > > echo "func handle_tx_event +p" >/proc/dynamic_debug/control > > > echo 0xff >/sys/module/uvcvideo/parameters/trace > > > > Yes, please keep handle_tx_event, otherwise xhci_hcd debug messages > > won't show up. UVC trace is not that important. > > OK. I ran it with your temporary patch for around 24 hours with heavy > system load and didn't get any freezes. The logs are large; please let > me know if there's anything I can grep for which might tell us that > the potential 1/255 chance of a freeze still being possible is ruled > out. Maybe stat with a sample of 100 events (thats 700 lines including --- separators added by grep) from "grep -B5 Missed trace_pipe". I mainly wanted to see if it's a reliable pattern that the suspicious pointers are always 0x10 past the previous event's pointer. And what happens when the previous event is at the end of a segment (TRB pointer ends with 0xfe0), can we get Missed Service ending with 0xff0? The old patch wouldn't handle it, though the new one will.