Date: Tue, 17 Sep 2013 17:38:04 +0200 From: Harald Schmalzbauer <h.schmalzbauer@omnilan.de> To: Hans Petter Selasky <hans.petter.selasky@bitfrost.no> 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: <5238775C.8010000@omnilan.de> In-Reply-To: <52381FCA.5030509@bitfrost.no> 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>
next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig0177A4046D5887A62790A5AB Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Bez=C3=BCglich 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: > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- umcs.c (revision 255492) > +++ umcs.c (local) > @@ -230,6 +230,7 @@ > .bufsize =3D 0, /* use wMaxPacketSize */ > .callback =3D &umcs7840_intr_callback, > .if_index =3D 0, > + .interval =3D 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 --------------enig0177A4046D5887A62790A5AB Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (FreeBSD) iEYEARECAAYFAlI4d1wACgkQLDqVQ9VXb8glJgCfcPxOhLK9InZxEdLKy4QZaJ5Z 9TQAoIXVb/ztKi8MLts0xBQNcU4nmZQk =CjcI -----END PGP SIGNATURE----- --------------enig0177A4046D5887A62790A5AB--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5238775C.8010000>