[EMAIL PROTECTED] 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


_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to