From owner-svn-src-head@FreeBSD.ORG Fri May 22 15:12:28 2009 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 710CA1065673; Fri, 22 May 2009 15:12:28 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 2D9BD8FC20; Fri, 22 May 2009 15:12:28 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.3/8.14.1) with ESMTP id n4MFBnQF003505; Fri, 22 May 2009 09:11:50 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Fri, 22 May 2009 09:12:02 -0600 (MDT) Message-Id: <20090522.091202.1501528033.imp@bsdimp.com> To: scottl@samsco.org From: "M. Warner Losh" In-Reply-To: <4A16AC32.2040507@samsco.org> References: <3bbf2fe10905211511g53defb6cmac45fc2469cc64f@mail.gmail.com> <200905220921.34785.jhb@freebsd.org> <4A16AC32.2040507@samsco.org> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: src-committers@freebsd.org, jhb@freebsd.org, svn-src-all@freebsd.org, attilio@freebsd.org, svn-src-head@freebsd.org, rwatson@freebsd.org, kostikbel@gmail.com Subject: Re: svn commit: r192535 - head/sys/kern 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: Fri, 22 May 2009 15:12:29 -0000 In message: <4A16AC32.2040507@samsco.org> Scott Long writes: : John Baldwin wrote: : > On Thursday 21 May 2009 6:11:02 pm Attilio Rao wrote: : >> At this point I wonder what's the purpose of maintaining the sleeping : >> version for such functions? : > : > Actually, I still very much do not like using M_NOWAIT needlessly. I would : > much rather the solution for make_dev() be that the 1 or 2 places that need : > to do it with a mutex held instead queue a task to do the actual make_dev() : > in a taskqueue when no locks are held. This is basically what : > destroy_dev_sched() is doing. Perhaps a make_dev_sched() with a similar : > callback to be called on completion would be better. Having a device driver : > do all the work to setup the hardware only to fail to create a node in /dev : > so that userland can actually use it is pretty rediculous and useless. : > : : It's a lot easier for me to handle a failure of make_dev in CAM than it : is to decouple the call to it. Please don't dictate policy. On the other hand, we do dictate policy in things like busdma where one has to do things in callbacks rather than inline. This is for fairly good reasons, and I'm having trouble seeing why the reasons presented here for make_dev_sched() are any worse... Warner