From owner-cvs-src@FreeBSD.ORG Wed Nov 2 16:20:36 2005 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C5AF716A41F; Wed, 2 Nov 2005 16:20:36 +0000 (GMT) (envelope-from andre@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9448043D48; Wed, 2 Nov 2005 16:20:36 +0000 (GMT) (envelope-from andre@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id jA2GKakS085907; Wed, 2 Nov 2005 16:20:36 GMT (envelope-from andre@repoman.freebsd.org) Received: (from andre@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id jA2GKab1085906; Wed, 2 Nov 2005 16:20:36 GMT (envelope-from andre) Message-Id: <200511021620.jA2GKab1085906@repoman.freebsd.org> From: Andre Oppermann Date: Wed, 2 Nov 2005 16:20:36 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/kern kern_mbuf.c uipc_mbuf.c src/sys/sys mbuf.h param.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Nov 2005 16:20:37 -0000 andre 2005-11-02 16:20:36 UTC FreeBSD src repository Modified files: sys/kern kern_mbuf.c uipc_mbuf.c sys/sys mbuf.h param.h Log: Mandatory mbuf cluster reference counting and groundwork for UMA based jumbo 9k and jumbo 16k cluster support. All mbuf's with external storage attached are mandatory reference counted. For clusters and jumbo clusters UMA provides the refcnt storage directly. It does not have to be separatly allocated. Any other type of external storage gets its own refcnt allocated from an UMA mbuf refcnt zone instead of normal kernel malloc. The refcount API MEXT_ADD_REF() and MEXT_REM_REF() is no longer publically accessible. The proper m_* functions have to be used. mb_ctor_clust() and mb_dtor_clust() both handle normal 2K as well as 9k and 16k clusters. Clusters and jumbo clusters may be obtained without attaching it immideatly to an mbuf. This is for high performance cluster allocation in network drivers where mbufs are attached after the cluster has been filled. Tested by: rwatson Sponsored by: TCP/IP Optimizations Fundraise 2005 Revision Changes Path 1.12 +151 -42 src/sys/kern/kern_mbuf.c 1.156 +95 -89 src/sys/kern/uipc_mbuf.c 1.179 +19 -46 src/sys/sys/mbuf.h 1.251 +3 -0 src/sys/sys/param.h