sowmini.varadhan at sun.com wrote:
> On (06/17/07 08:09), Masayuki Murayama wrote:
>   
>> I recommend to make a new common layer for managing tx/rx
>> buffers, tx/rx descriptor rings, and MII link. In my experience
>> on writing various nic drivers, they were common.
>> Actually I tried to make such a common layer, and it reduced
>> the lines in hardware depend section. Typically it was 1500 - 2500
>> lines for a driver.
>>     
>
> Could you elaborate on the details of your own effort? Having such a
> layer may open up new possibilities for Brussels.. 
>   

Actually, this project, the idea of having a common layer, would really 
really help drivers and is on my personal wish list for a Nemo 2 
(GLDv3.1?  GLDv4?) project.  I've been pitching a Nemo 2 project around 
for a few weeks now, but so far I can't seem to get management to hear 
my clarion call. :-)

Part of the reason I want to centralize this, apart from simplifying 
device drivers, is that it can allow the framework to make decisions on 
the drivers behalf, to get optimum performance.  (For example, the 
choice as to when to bcopy, vs. dma, vs. dvma is one that device driver 
authors often are faced with, and often have answered poorly.  It would 
be nice if the framework could provide answers based on observed system 
performance.)

The MII layer is another thing that I proposed, because I can see a lot 
of (in some cases badly written) replicated code across all drivers, for 
dealing with MII.  Often that code is inconsistent.  For example, iprb 
uses a common MII module that doesn't support tuning of autonegotiation, 
whereas e1000g uses its own code to do this, whereas hme have yet an 
entirely different code.  This anarchy really, really needs to end.

    -- Garrett



Reply via email to