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