Date: Tue, 17 Sep 2013 18:04:58 +0200 From: Hans Petter Selasky <hans.petter.selasky@bitfrost.no> To: Harald Schmalzbauer <h.schmalzbauer@omnilan.de> Cc: lev@FreeBSD.org, FreeBSD Stable <freebsd-stable@FreeBSD.org>, freebsd-usb@FreeBSD.org Subject: Re: umcs (4-Port-USB-serial) triggering way too much ehci IRQs Message-ID: <52387DAA.1020109@bitfrost.no> In-Reply-To: <5238775C.8010000@omnilan.de> References: <52372DBA.6020703@omnilan.de> <zarafa.5237e529.2bc6.08fde6eb34c27a87@mail.lockless.no> <875323075.20130917124437@serebryakov.spb.ru> <523816E1.10603@omnilan.de> <1857258551.20130917124737@serebryakov.spb.ru> <5238198C.3070604@bitfrost.no> <52381BAC.5010801@omnilan.de> <52381FCA.5030509@bitfrost.no> <5238775C.8010000@omnilan.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On 09/17/13 17:38, Harald Schmalzbauer wrote: > Bezüglich Hans Petter Selasky's Nachricht vom 17.09.2013 11:24 > (localtime): >> On 09/17/13 11:06, Harald Schmalzbauer wrote: >>> ... >>> 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 > > I tried your patch and it works as expected: IRQs decreased to ~64/s > when idle/disconnected. > > One interesting thing I never measured before: > Console connection with 115k2 via umcs and 'while ( 2>1 ) echo "---..." > end' results in 8000 irqs/s :-( But that's also true for the prolific > (uplcom). The latter just goes down to 0.0 irqs/s when idle. > > Doing the same with uart0 results in 1444irqs/s. > Is it by design/unavoidable that transfering the same via USB multiplies > by factor 5-6? > > Thanks, > > -Harry > Hi, I think the adapters use very small buffers. You can try adding ".interval = 4" to the other USB configs, above the one you patched, and see what happens. I cannot tell if you will loose characters or not. --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?52387DAA.1020109>