Index: sys/kern/uipc_mbuf.c =================================================================== RCS file: /home/ncvs/src/sys/kern/uipc_mbuf.c,v retrieving revision 1.57 diff -u -r1.57 uipc_mbuf.c --- sys/kern/uipc_mbuf.c 2000/09/30 06:30:25 1.57 +++ sys/kern/uipc_mbuf.c 2000/10/15 06:19:43 @@ -60,6 +60,7 @@ int max_datalen; int nmbclusters; int nmbufs; +int nmbcnt; u_long m_mballoc_wid = 0; u_long m_clalloc_wid = 0; @@ -91,11 +92,14 @@ &nmbclusters, 0, "Maximum number of mbuf clusters available"); SYSCTL_INT(_kern_ipc, OID_AUTO, nmbufs, CTLFLAG_RD, &nmbufs, 0, "Maximum number of mbufs available"); +SYSCTL_INT(_kern_ipc, OID_AUTO, nmbcnt, CTLFLAG_RD, &nmbcnt, 0, + "Maximum number of ext_buf counters available"); #ifndef NMBCLUSTERS #define NMBCLUSTERS (512 + MAXUSERS * 16) #endif TUNABLE_INT_DECL("kern.ipc.nmbclusters", NMBCLUSTERS, nmbclusters); TUNABLE_INT_DECL("kern.ipc.nmbufs", NMBCLUSTERS * 4, nmbufs); +TUNABLE_INT_DECL("kern.ipc.nmbcnt", EXT_COUNTERS, nmbcnt); static void m_reclaim __P((void)); @@ -119,7 +123,7 @@ /* * Setup the mb_map, allocate requested VM space. */ - mb_map_size = nmbufs * MSIZE + nmbclusters * MCLBYTES + EXT_COUNTERS + mb_map_size = nmbufs * MSIZE + nmbclusters * MCLBYTES + nmbcnt * sizeof(union mext_refcnt); mb_map_size = roundup2(mb_map_size, PAGE_SIZE); mb_map = kmem_suballoc(kmem_map, (vm_offset_t *)&mbutl, &maxaddr, Index: sys/sys/mbuf.h =================================================================== RCS file: /home/ncvs/src/sys/sys/mbuf.h,v retrieving revision 1.59 diff -u -r1.59 mbuf.h --- sys/sys/mbuf.h 2000/10/12 16:33:41 1.59 +++ sys/sys/mbuf.h 2000/10/15 06:19:47 @@ -286,7 +286,7 @@ #define MEXT_REM_REF(m) do { \ KASSERT((m)->m_ext.ref_cnt->refcnt > 0, ("m_ext refcnt < 0")); \ atomic_subtract_long(&((m)->m_ext.ref_cnt->refcnt), 1); \ - } while(0) +} while(0) #define MEXT_ADD_REF(m) atomic_add_long(&((m)->m_ext.ref_cnt->refcnt), 1)