cvs commit: src/sys/kern kern_mbuf.c uipc_mbuf.c src/sys/sysmbuf.h param.h

Andre Oppermann andre at freebsd.org
Thu Dec 8 05:19:05 PST 2005


Andre Oppermann wrote:
> 
> andre       2005-12-08 13:13:06 UTC
> 
>   FreeBSD src repository
> 
>   Modified files:
>     sys/kern             kern_mbuf.c uipc_mbuf.c
>     sys/sys              mbuf.h param.h
>   Log:
>   Add an API for jumbo mbuf cluster allocation and also provide
>   4k clusters in addition to 9k and 16k ones.
> 
>    struct mbuf *m_getjcl(int how, short type, int flags, int size)
>    void *m_cljget(struct mbuf *m, int how, int size)
> 
>   m_getjcl() returns an mbuf with a cluster of the specified size attached
>   like m_getcl() does for 2k clusters.
> 
>   m_cljget() is different from m_clget() as it can allocate clusters
>   without attaching them to an mbuf.  In that case the return value
>   is the pointer to the cluster of the requested size.  If an mbuf was
>   specified, it gets the cluster attached to it and the return value
>   can be safely ignored.
> 
>   For size both take MCLBYTES, MJUM4BYTES, MJUM9BYTES, MJUM16BYTES.
> 
>   Reviewed by:    glebius
>   Tested by:      glebius
>   Sponsored by:   TCP/IP Optimization Fundraise 2005

This API may still fluctuate a bit as we gain more experience with
the implementation of jumbo clusters in various network drivers.

Please note that the recently added 9k and 16k jumbo clusters are
not physically contignous but may be chopped into chunks of page
size.

-- 
Andre


More information about the cvs-src mailing list