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-src
mailing list