[cap-talk] Object-capability vs. monolithic performance

Jed Donnelley capability at webstart.com
Fri Jan 5 02:23:53 CST 2007


At 08:51 PM 1/4/2007, David Hopwood wrote:
>Jonathan S. Shapiro wrote:
> > On Fri, 2007-01-05 at 00:07 +0000, David Hopwood wrote:
> >
> >>You suggested looking at Intel or 3Com chipsets. I have limited time
> >>available for this, so I only looked at the E1000 Linux driver, which is
> >>at <http://lxr.linux.no/source/drivers/net/e1000/>.
> >>
> >>I estimate that it has ~1450 lines that could be separated into a 
> performance-
> >>critical component (roughly, lines 2173 to 2919 and 3203 to 3822 
> of 'e1000_main.c'
> >>and 5810 to 5888 of 'e1000_hw.c', although I'm having to guess at 
> how often some
> >>of the functions are called). Again, this is without trying very 
> hard or changing
> >>the structure.
> >
> > Yes. You implied (or said, but I can't find it) that the rest could go
> > out of kernel.
>
>Yes.
>
> > I have found that the only thing harder than fully dekernelizing a
> > driver is splitting it this way. It invariably turns out that the low
> > performance part and the high performance part need to communicate
> > somewhere, and then you begin adding crud back in to let that be
> > possible.
>
>This suggests that you may be misinterpreting how I (and Jed?) was 
>thinking that
>such a driver would be structured:
>
>  - The environment of the driver when running inside the kernel can 
> be made to
>    look essentially the same as its environment when running outside...

I was focused on server code, but except for interrupt handling the same
applies to driver code.

--Jed  http://www.webstart.com/jed-signature.html 




More information about the cap-talk mailing list