Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Jan 2006 17:36:53 -0700
From:      Scott Long <scottl@samsco.org>
To:        Nate Lawson <nate@root.org>
Cc:        cvs-src@FreeBSD.org, src-committers@FreeBSD.org, Andrew Gallatin <gallatin@cs.duke.edu>, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/dev/em if_em.c if_em.h
Message-ID:  <43C6F625.4030101@samsco.org>
In-Reply-To: <43C6E2EB.7040902@root.org>
References:  <200601110030.k0B0UPOx009098@repoman.freebsd.org>	<20060112152119.A6776@grasshopper.cs.duke.edu>	<43C6C4EA.20303@samsco.org> <17350.53992.494972.787933@grasshopper.cs.duke.edu> <43C6DAED.3040901@samsco.org> <43C6E2EB.7040902@root.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Nate Lawson wrote:
> 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.
> 

It's not just the interrupt handlers, everything is abstracted behind 
virtual methods in IOKit.

Scott




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43C6F625.4030101>