cvs commit: src/sys/dev/em if_em.c if_em.h

Andrew Gallatin gallatin at cs.duke.edu
Thu Jan 12 16:33:43 PST 2006


Nate Lawson writes:
 > Scott Long wrote:
 > > Andrew Gallatin wrote:
 > > 
 > >> Scott Long writes:
 > >>  > However, taskqueues are really just a proof of concept for what I 
 > >> really
 > >>  > want, which is to allow drivers to register both a fast handler and an
 > >>  > ithread handler.  For drivers doing this, the ithread would be private
 > >>
 > >> Ah, the darwin / MacOSX model.  That would be very cool.
 > > 
 > > 
 > > Yep.  Working in IOKit was very interesting, and this is one of the few
 > > things that transfers well to FreeBSD.  C++ does have a certain elagence
 > > for drivers, but the cost of virtual methods in the fast path of the
 > > driver and stack is still far too high to justify using it.
 > 
 > Yeah, that's why newbus is only for configuration but interrupt handlers 
 > are called directly.  It's nice to have OO for config and relationships 
 > between devices but just direct calls for the fast path.

Amusingly, I was just today trying to figure out how to get at my
Darwin driver's if_output() routine so I can cut out the interposing
layers of C++ crud and improve transmit performance :)

Drew



More information about the cvs-all mailing list