Date: Wed, 14 Dec 2011 22:56:32 +0100 From: Hans Petter Selasky <hselasky@c2i.net> To: Andriy Gapon <avg@freebsd.org> Cc: usb@freebsd.org, freebsd-hackers@freebsd.org, mdf@freebsd.org Subject: Re: kern_yield vs ukbd_yield Message-ID: <201112142256.32526.hselasky@c2i.net> In-Reply-To: <4EE8C2CE.40909@FreeBSD.org> References: <4EE51CB5.1060505@FreeBSD.org> <4EE70A1F.8040406@FreeBSD.org> <4EE8C2CE.40909@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 14 December 2011 16:37:50 Andriy Gapon wrote: > on 13/12/2011 10:17 Andriy Gapon said the following: > > on 13/12/2011 00:21 Andriy Gapon said the following: > [snip] >=20 > > And in the view of the below data I would like us to revisit this > > problem. I looked over usb code and it seems that all usb threads are > > created with priorities of either USB_PRI_MED or USB_PRI_HIGH, which > > translates to PI_SWI(SWI_CAMBIO) and PI_SWI(SWI_NET). These priorities > > should be in the ithread range, so it's kind of surprising that the init > > thread (with PVM priority) can cause troubles for them. >=20 > So, Hans Petter, do you recall any details of this problem? > I am curious about which thread got starved by which. =46rom what I know this was 100% reproducible. Remove the ukbd_yield() when at the mountroot prompt. Result: cannot type a= ny=20 keys. No USB devices will enumerate! >=20 > BTW, given your recent improvements to pause(9) what do you think about > further extending it to also use DELAY(9) when kdb_active is set or when > SCHEDULER_STOPPED() is true?=20 I think this is a good idea. It already checks for "cold". USB usually does= n't=20 use this function though when polling. > Then, probably, pause(9) could be used for > both branches in ukbd_do_poll and they could be collapsed together. =2D-HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201112142256.32526.hselasky>