RE: [PATCH][RFC] xhci fixes

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

 



> From: Andiry Xu [mailto:andiry.xu@xxxxxxx]

<snip>
 
> But I haven't seen td bd415150 and following tds on the endpoint ring.
> I'm afraid the full endpoint ring is not printed, because I allocate 8
> segments for isoc endpoint, but there is only one segment showed in the
> log. Perhaps you only print one segment of isoc endpoint ring?
> 
> With your patch, every time when event_seg is NULL, you break out and
> returns. But event_seg will be NULL when a missed service interval event
> is encountered and it's quite normal for isoc transfer. Your patch may
> workaround the issue but it does not help to find the root cause. And
> suppose the do-while will not run infinity. ep->skip is cleared when
> irq_handler found the td on the ring, or when the td_list is empty.
> Since urb_enqueue needs to acquire the lock which is hold by
> irq_handler, it cannot insert tds to the ring. Eventually the td_list is
> empty, and ep->skip is clear.

Hi Andiry,

I have some good/bad news (depending on how you look at it).

I have updated my debug code to print all the ring segments instead of just
one.

However, our xHCI controller hardware was just updated to the latest version.
With this version, the "event_seg is NULL" case happens *much* less frequently
than before. So far, I have only been able to reproduce it once in over an
hour of intensive testing. Unfortunately, the debug messages had already been
flushed from the log by the time I realized it had occurred.

Previously, it would happen after just a few startup/shutdown cycles of the
webcam app.

So it's possible that the problematic case I was seeing was related to some
sort of hardware issue that has now been resolved.

I will keep trying to capture a dmesg log from when it does happen, just to be
sure.

-- 
Paul

��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux