kern_yield vs ukbd_yield
Hans Petter Selasky
hselasky at c2i.net
Wed Dec 14 21:59:10 UTC 2011
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:
> > 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.
> So, Hans Petter, do you recall any details of this problem?
> I am curious about which thread got starved by which.
From what I know this was 100% reproducible.
Remove the ukbd_yield() when at the mountroot prompt. Result: cannot type any
keys. No USB devices will enumerate!
> 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?
I think this is a good idea. It already checks for "cold". USB usually doesn't
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.
More information about the freebsd-usb