Date: Mon, 29 Aug 2011 18:19:56 +0300 From: Andriy Gapon <avg@FreeBSD.org> To: Hans Petter Selasky <hselasky@FreeBSD.org> Cc: "svn-src-head@FreeBSD.org" <svn-src-head@FreeBSD.org>, "svn-src-all@FreeBSD.org" <svn-src-all@FreeBSD.org>, "src-committers@FreeBSD.org" <src-committers@FreeBSD.org> Subject: Re: svn commit: r223989 - head/sys/dev/usb/input Message-ID: <4E5BAE1C.7040100@FreeBSD.org> In-Reply-To: <201108291654.23054.hselasky@freebsd.org> References: <201108291627.42477.hselasky@freebsd.org> <4E5BA31C.7070103@FreeBSD.org> <201108291654.23054.hselasky@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
on 29/08/2011 17:54 Hans Petter Selasky said the following: > On Monday 29 August 2011 16:33:00 Andriy Gapon wrote: >> Not sure if this answers my question, which is not about pause vs >> ukbd_yield, but is about ukbd_yield vs kern_yield. >> In other words, why you couldn't simply use kern_yield where you used >> ukbd_yield? > > Is this a new function. I think I used the following as an example: > > void > uio_yield(void) > { > struct thread *td; > > td = curthread; > DROP_GIANT(); > thread_lock(td); > sched_prio(td, td->td_user_pri); > mi_switch(SW_INVOL | SWT_RELINQUISH, NULL); > thread_unlock(td); > PICKUP_GIANT(); > } > > As long as the kern_yield() lets the USB worker threads and XHCI interrupts > run it should be fine. pause() is better though. kern_yield is sufficiently recent, ~ 1/2 year old, and it has replaced uio_yield. r218424 is the commit. -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4E5BAE1C.7040100>