umcs (4-Port-USB-serial) triggering way too much ehci IRQs

Hans Petter Selasky hans.petter.selasky at bitfrost.no
Tue Sep 17 09:23:21 UTC 2013


On 09/17/13 11:06, Harald Schmalzbauer wrote:
>   Bezüglich Hans Petter Selasky's Nachricht vom 17.09.2013 10:57
> (localtime):
>> On 09/17/13 10:47, Lev Serebryakov wrote:
>>> Hello, Harald.
>>> You wrote 17 сентября 2013 г., 12:46:25:
>>>
>>> HS> The Y is the device addr @ bus #X.
>>>     Oh :)
>>>
>>> HS> Same posted some seconds ago :-)
>>>     Yep, exactly the same pattern.
>>>
>>
>>
>> Hi,
>>
>> Could you show the configuration descriptor for your device?
>>
>> usbconfig -d X.Y dump_curr_config_desc
>
> Shall we switch to non-list-comm?

Hi,

That's OK.

> Hmm, in my case, this 4-port-serial-USB-hub will be used as console
> concentrator. So most time it's doing nothing, just feeding tmux with
> consoles output. What latency are we talking about? Less than a some
> milliseconds should be fine.
> What I'm curious about is why my prolific USB-serial converter doesn't
> generate these high irqs.

Try this patch and see what happens:

==================================================================
--- umcs.c	(revision 255492)
+++ umcs.c	(local)
@@ -230,6 +230,7 @@
  		.bufsize = 0,		/* use wMaxPacketSize */
  		.callback = &umcs7840_intr_callback,
  		.if_index = 0,
+		.interval = 20, /* ms */
  	},
  };


BTW: I see that the umcs driver shouldn't do synchronous control 
transfers from the USB interrupt transfer callback. This should be 
postponed into some worker thread, for example the USB explore thread. 
See USB audio driver for an example.

--HPS


More information about the freebsd-stable mailing list