Thread (20 messages) 20 messages, 3 authors, 2025-10-22

Re: USB 1.1 Full Speed OHCI slow/high latency

From: Alan Stern <stern@rowland.harvard.edu>
Date: 2025-09-22 14:43:38

On Mon, Sep 22, 2025 at 05:38:38PM +0300, ValdikSS wrote:
On 22.09.2025 5:16 PM, Alan Stern wrote:
quoted
On Mon, Sep 22, 2025 at 02:11:43AM +0300, ValdikSS wrote:
quoted
Alan, Greg, I found the reason for 1 ms delay: it is artificial, added in
v2.5.21 as a possible race condition fix:
Good work tracking that down!
quoted
I removed "+ 1" and it removed that 1ms delay. Doesn't seem to break
anything in my setup. UHCI code doesn't seem to have any similar delays.

Could it be relevant only for hardware of its era? If I add "no +1" code
quirk as a module option, disabled by default, does it sounds sane to you?
I'm not sure that there is any OHCI hardware from later than that era.
But regardless...

Module options are frowned upon these days.  Instead you could add a
sysfs (or even debugfs) attribute file for controlling that "+ 1".
I just implemented another approach: do not unlink the ED right away,
instead mark it IDLE and unlink only if no consecutive transfers are
performed after the timeout. This still preserves one-frame delay while
unlinking, should be safe.
That does indeed sound like a better approach.
Please take a look if you have free time.
Feel free to post your patch on the mailing list for review.
 I'm no kernel developer by any
means :)
Seems like you're becoming one, like it or not!  Welcome to the 
community.

Alan Stern
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help