Much improved sosend_*() functions

Andre Oppermann andre at freebsd.org
Fri Sep 29 16:30:28 PDT 2006


John-Mark Gurney wrote:
> Andre Oppermann wrote this message on Fri, Sep 29, 2006 at 23:59 +0200:
>> Just don't overengineer the stuff.  Mbufs are only used temporarily and
>> a bit theoretical waste is not much a problem (so far at least).
> 
> Well, I beg to differ... most gige cards grab mbuf+cluster for every
> single ring buffer they have.. which is usually 512... so every gige
> interface for the most part consumes 1meg of memory that is not
> reusable...  because if we run out of mbuf+clusters to replace in the
> receive ring, we will not tap into the 1meg of mbuf+clusters available
> to us...  so, if you have a quad gige, that's 4megs wasted, plus w/ the
> fact that we could only use ~65% of that memory, that's a lot of memory
> wasted...

The problem is the network cards again.  Only a few allow different
rx rings to be used (for example bge(4)) where you can have multiple
mbuf (+cluster) sizes and the card choses the smallest fit at receive
time.

> Yeh, everyone says you have gigs of memory, but do we really want to
> be known as the wasteful OS?

-- 
Andre


More information about the freebsd-net mailing list