Date: Fri, 22 May 2009 16:54:11 +0300 From: Kostik Belousov <kostikbel@gmail.com> To: Scott Long <scottl@samsco.org> Cc: src-committers@freebsd.org, John Baldwin <jhb@freebsd.org>, svn-src-all@freebsd.org, Attilio Rao <attilio@freebsd.org>, rwatson@freebsd.org, svn-src-head@freebsd.org, "M. Warner Losh" <imp@bsdimp.com> Subject: Re: svn commit: r192535 - head/sys/kern Message-ID: <20090522135411.GB1927@deviant.kiev.zoral.com.ua> In-Reply-To: <4A16AC32.2040507@samsco.org> References: <3bbf2fe10905210629p46c7a204v6863aaba77354462@mail.gmail.com> <20090521194243.GW1927@deviant.kiev.zoral.com.ua> <3bbf2fe10905211511g53defb6cmac45fc2469cc64f@mail.gmail.com> <200905220921.34785.jhb@freebsd.org> <4A16AC32.2040507@samsco.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--CQ3bIqlPgDWyQ28b Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, May 22, 2009 at 07:44:18AM -0600, Scott Long wrote: > 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=20 > >would much rather the solution for make_dev() be that the 1 or 2 places= =20 > >that need to do it with a mutex held instead queue a task to do the actu= al=20 > >make_dev() in a taskqueue when no locks are held. This is basically wha= t=20 > >destroy_dev_sched() is doing. Perhaps a make_dev_sched() with a similar= =20 > >callback to be called on completion would be better. Having a device=20 > >driver do all the work to setup the hardware only to fail to create a no= de=20 > >in /dev so that userland can actually use it is pretty rediculous and=20 > >useless. > > >=20 > It's a lot easier for me to handle a failure of make_dev in CAM than it= =20 > is to decouple the call to it. Please don't dictate policy. The second patch I posted yesterday allows to specify the flag that means "no sleep, could fail" to make_dev. Without the flag, make_dev behaves in the current fashion, i.e. sleep, cannot fail. Is this solution suitable for your needs ? --CQ3bIqlPgDWyQ28b Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEARECAAYFAkoWroMACgkQC3+MBN1Mb4igmACeKmtDEP4p6reGG/FXGNsluaNH ue0AnRgT0uBkgnJEs/CrpDyq88pS2olU =XyyQ -----END PGP SIGNATURE----- --CQ3bIqlPgDWyQ28b--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090522135411.GB1927>