From owner-svn-src-head@FreeBSD.ORG Mon Aug 29 15:19:59 2011 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CF0F01065675; Mon, 29 Aug 2011 15:19:59 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id 829D78FC0C; Mon, 29 Aug 2011 15:19:58 +0000 (UTC) Received: from odyssey.starpoint.kiev.ua (alpha-e.starpoint.kiev.ua [212.40.38.101]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id SAA08906; Mon, 29 Aug 2011 18:19:57 +0300 (EEST) (envelope-from avg@FreeBSD.org) Message-ID: <4E5BAE1C.7040100@FreeBSD.org> Date: Mon, 29 Aug 2011 18:19:56 +0300 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:5.0) Gecko/20110705 Thunderbird/5.0 MIME-Version: 1.0 To: Hans Petter Selasky References: <201108291627.42477.hselasky@freebsd.org> <4E5BA31C.7070103@FreeBSD.org> <201108291654.23054.hselasky@freebsd.org> In-Reply-To: <201108291654.23054.hselasky@freebsd.org> X-Enigmail-Version: 1.2pre Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: "svn-src-head@FreeBSD.org" , "svn-src-all@FreeBSD.org" , "src-committers@FreeBSD.org" Subject: Re: svn commit: r223989 - head/sys/dev/usb/input X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Aug 2011 15:19:59 -0000 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