M. Warner Losh wrote:
In message: <4a16ac32.2040...@samsco.org>
Scott Long <sco...@samsco.org> 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
Busdma isn't a good example anymore. I've tried to be very responsive
and accommodating to requests for change; see the
bus_dmamap_load_mbuf_sg() routine for example. It also lets you break
the "normal" semantics without penalty via BUS_DMA_NOWAIT. About the
only thing left in busdma that is cumbersome without an alternative is
allocating static memory. Even then, I provided an alternative for a
number of years, and not a single person used it, so it eventually got
removed.
Scott
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"