Module Name: src Committed By: pooka Date: Sun Sep 13 18:45:12 UTC 2009
Modified Files: src/common/include/prop: proplib.h src/common/lib/libprop: prop_kern.c prop_object_impl.h src/sys/compat/sa: compat_sa.c src/sys/dev: rnd.c src/sys/dev/ata: ata.c src/sys/kern: init_main.c kern_lwp.c kern_malloc.c kern_malloc_debug.c kern_time.c subr_pool.c src/sys/netbt: bt_proto.c l2cap.h l2cap_misc.c rfcomm.h rfcomm_session.c src/sys/netinet: igmp.c src/sys/sys: malloc.h pool.h savar.h src/sys/uvm: uvm_aobj.c uvm_swap.c Log Message: Wipe out the last vestiges of POOL_INIT with one swift stroke. In most cases, use a proper constructor. For proplib, give a local equivalent of POOL_INIT for the kernel object implementation. This way the code structure can be preserved, and a local link set is not hazardous anyway (unless proplib is split to several modules, but that'll be the day). tested by booting a kernel in qemu and compile-testing i386/ALL To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/common/include/prop/proplib.h cvs rdiff -u -r1.9 -r1.10 src/common/lib/libprop/prop_kern.c cvs rdiff -u -r1.29 -r1.30 src/common/lib/libprop/prop_object_impl.h cvs rdiff -u -r1.10 -r1.11 src/sys/compat/sa/compat_sa.c cvs rdiff -u -r1.74 -r1.75 src/sys/dev/rnd.c cvs rdiff -u -r1.106 -r1.107 src/sys/dev/ata/ata.c cvs rdiff -u -r1.398 -r1.399 src/sys/kern/init_main.c cvs rdiff -u -r1.132 -r1.133 src/sys/kern/kern_lwp.c cvs rdiff -u -r1.126 -r1.127 src/sys/kern/kern_malloc.c cvs rdiff -u -r1.20 -r1.21 src/sys/kern/kern_malloc_debug.c cvs rdiff -u -r1.160 -r1.161 src/sys/kern/kern_time.c cvs rdiff -u -r1.173 -r1.174 src/sys/kern/subr_pool.c cvs rdiff -u -r1.11 -r1.12 src/sys/netbt/bt_proto.c cvs rdiff -u -r1.8 -r1.9 src/sys/netbt/l2cap.h src/sys/netbt/rfcomm.h cvs rdiff -u -r1.6 -r1.7 src/sys/netbt/l2cap_misc.c cvs rdiff -u -r1.14 -r1.15 src/sys/netbt/rfcomm_session.c cvs rdiff -u -r1.49 -r1.50 src/sys/netinet/igmp.c cvs rdiff -u -r1.104 -r1.105 src/sys/sys/malloc.h cvs rdiff -u -r1.64 -r1.65 src/sys/sys/pool.h cvs rdiff -u -r1.28 -r1.29 src/sys/sys/savar.h cvs rdiff -u -r1.106 -r1.107 src/sys/uvm/uvm_aobj.c cvs rdiff -u -r1.145 -r1.146 src/sys/uvm/uvm_swap.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/common/include/prop/proplib.h diff -u src/common/include/prop/proplib.h:1.6 src/common/include/prop/proplib.h:1.7 --- src/common/include/prop/proplib.h:1.6 Mon Apr 28 20:22:51 2008 +++ src/common/include/prop/proplib.h Sun Sep 13 18:45:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: proplib.h,v 1.6 2008/04/28 20:22:51 martin Exp $ */ +/* $NetBSD: proplib.h,v 1.7 2009/09/13 18:45:10 pooka Exp $ */ /*- * Copyright (c) 2006 The NetBSD Foundation, Inc. @@ -43,4 +43,8 @@ #include <prop/plistref.h> +#ifdef _KERNEL +void prop_kern_init(void); +#endif + #endif /* _PROPLIB_PROPLIB_H_ */ Index: src/common/lib/libprop/prop_kern.c diff -u src/common/lib/libprop/prop_kern.c:1.9 src/common/lib/libprop/prop_kern.c:1.10 --- src/common/lib/libprop/prop_kern.c:1.9 Mon Apr 28 20:22:53 2008 +++ src/common/lib/libprop/prop_kern.c Sun Sep 13 18:45:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: prop_kern.c,v 1.9 2008/04/28 20:22:53 martin Exp $ */ +/* $NetBSD: prop_kern.c,v 1.10 2009/09/13 18:45:10 pooka Exp $ */ /*- * Copyright (c) 2006 The NetBSD Foundation, Inc. @@ -224,12 +224,27 @@ #include <sys/systm.h> #include <sys/proc.h> #include <sys/resource.h> +#include <sys/pool.h> #include <uvm/uvm.h> +#include "prop_object_impl.h" + /* Arbitrary limit ioctl input to 64KB */ unsigned int prop_object_copyin_limit = 65536; +/* initialize proplib for use in the kernel */ +void +prop_kern_init(void) +{ + __link_set_decl(prop_linkpools, struct prop_pool_init); + struct prop_pool_init * const *pi; + + __link_set_foreach(pi, prop_linkpools) + pool_init((*pi)->pp, (*pi)->size, 0, 0, 0, (*pi)->wchan, + &pool_allocator_nointr, IPL_NONE); +} + static int _prop_object_copyin_ioctl(const struct plistref *pref, const prop_type_t type, const u_long cmd, prop_object_t *objp) Index: src/common/lib/libprop/prop_object_impl.h diff -u src/common/lib/libprop/prop_object_impl.h:1.29 src/common/lib/libprop/prop_object_impl.h:1.30 --- src/common/lib/libprop/prop_object_impl.h:1.29 Sat Jan 3 18:31:34 2009 +++ src/common/lib/libprop/prop_object_impl.h Sun Sep 13 18:45:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: prop_object_impl.h,v 1.29 2009/01/03 18:31:34 pooka Exp $ */ +/* $NetBSD: prop_object_impl.h,v 1.30 2009/09/13 18:45:10 pooka Exp $ */ /*- * Copyright (c) 2006 The NetBSD Foundation, Inc. @@ -263,8 +263,17 @@ #define _PROP_POOL_GET(p) pool_get(&(p), PR_WAITOK) #define _PROP_POOL_PUT(p, v) pool_put(&(p), (v)) -#define _PROP_POOL_INIT(p, s, d) \ - POOL_INIT(p, s, 0, 0, 0, d, &pool_allocator_nointr, IPL_NONE); +struct prop_pool_init { + struct pool *pp; + size_t size; + const char *wchan; +}; +#define _PROP_POOL_INIT(pp, size, wchan) \ +struct pool pp; \ +static const struct prop_pool_init _link_ ## pp[1] = { \ + { &pp, size, wchan } \ +}; \ +__link_set_add_rodata(prop_linkpools, _link_ ## pp); #define _PROP_MALLOC_DEFINE(t, s, l) \ MALLOC_DEFINE(t, s, l); Index: src/sys/compat/sa/compat_sa.c diff -u src/sys/compat/sa/compat_sa.c:1.10 src/sys/compat/sa/compat_sa.c:1.11 --- src/sys/compat/sa/compat_sa.c:1.10 Thu Apr 16 07:42:28 2009 +++ src/sys/compat/sa/compat_sa.c Sun Sep 13 18:45:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: compat_sa.c,v 1.10 2009/04/16 07:42:28 skrll Exp $ */ +/* $NetBSD: compat_sa.c,v 1.11 2009/09/13 18:45:10 pooka Exp $ */ /*- * Copyright (c) 2001, 2004, 2005, 2006 The NetBSD Foundation, Inc. @@ -41,7 +41,7 @@ #include "opt_ktrace.h" #include "opt_multiprocessor.h" #include "opt_sa.h" -__KERNEL_RCSID(0, "$NetBSD: compat_sa.c,v 1.10 2009/04/16 07:42:28 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: compat_sa.c,v 1.11 2009/09/13 18:45:10 pooka Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -82,26 +82,22 @@ /* * memory pool for sadata structures */ -static POOL_INIT(sadata_pool, sizeof(struct sadata), 0, 0, 0, "sadatapl", - &pool_allocator_nointr, IPL_NONE); +static struct pool sadata_pool; /* * memory pool for pending upcalls */ -static POOL_INIT(saupcall_pool, sizeof(struct sadata_upcall), 0, 0, 0, - "saupcpl", &pool_allocator_nointr, IPL_NONE); +static struct pool saupcall_pool; /* * memory pool for sastack structs */ -static POOL_INIT(sastack_pool, sizeof(struct sastack), 0, 0, 0, "sastackpl", - &pool_allocator_nointr, IPL_NONE); +static struct pool sastack_pool; /* * memory pool for sadata_vp structures */ -static POOL_INIT(savp_pool, sizeof(struct sadata_vp), 0, 0, 0, "savppl", - &pool_allocator_nointr, IPL_NONE); +static struct pool savp_pool; static struct sadata_vp *sa_newsavp(struct proc *); static void sa_freevp(struct proc *, struct sadata *, struct sadata_vp *); @@ -165,6 +161,20 @@ kmutex_t saupcall_mutex; SIMPLEQ_HEAD(, sadata_upcall) saupcall_freelist; +void +sa_init(void) +{ + + pool_init(&sadata_pool, sizeof(struct sadata), 0, 0, 0, "sadatapl", + &pool_allocator_nointr, IPL_NONE); + pool_init(&saupcall_pool, sizeof(struct sadata_upcall), 0, 0, 0, + "saupcpl", &pool_allocator_nointr, IPL_NONE); + pool_init(&sastack_pool, sizeof(struct sastack), 0, 0, 0, "sastackpl", + &pool_allocator_nointr, IPL_NONE); + pool_init(&savp_pool, sizeof(struct sadata_vp), 0, 0, 0, "savppl", + &pool_allocator_nointr, IPL_NONE); +} + /* * sa_critpath API * permit other parts of the kernel to make SA_LWP_STATE_{UN,}LOCK calls. Index: src/sys/dev/rnd.c diff -u src/sys/dev/rnd.c:1.74 src/sys/dev/rnd.c:1.75 --- src/sys/dev/rnd.c:1.74 Tue Sep 8 20:57:59 2009 +++ src/sys/dev/rnd.c Sun Sep 13 18:45:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: rnd.c,v 1.74 2009/09/08 20:57:59 pooka Exp $ */ +/* $NetBSD: rnd.c,v 1.75 2009/09/13 18:45:10 pooka Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rnd.c,v 1.74 2009/09/08 20:57:59 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rnd.c,v 1.75 2009/09/13 18:45:10 pooka Exp $"); #include <sys/param.h> #include <sys/ioctl.h> @@ -49,6 +49,7 @@ #include <sys/vnode.h> #include <sys/pool.h> #include <sys/kauth.h> +#include <sys/once.h> #ifdef __HAVE_CPU_COUNTER #include <machine/cpu_counter.h> @@ -117,8 +118,7 @@ /* * Memory pool for sample buffers */ -POOL_INIT(rnd_mempool, sizeof(rnd_sample_t), 0, 0, 0, "rndsample", NULL, - IPL_VM); +static struct pool rnd_mempool; /* * Our random pool. This is defined here rather than using the general @@ -268,6 +268,16 @@ return (1); } +static int +rnd_mempool_init(void) +{ + + pool_init(&rnd_mempool, sizeof(rnd_sample_t), 0, 0, 0, "rndsample", + NULL, IPL_VM); + return 0; +} +static ONCE_DECL(rnd_mempoolinit_ctrl); + /* * "Attach" the random device. This is an (almost) empty stub, since * pseudo-devices don't get attached until after config, after the @@ -279,6 +289,8 @@ { u_int32_t c; + RUN_ONCE(&rnd_mempoolinit_ctrl, rnd_mempool_init); + /* Trap unwary players who don't call rnd_init() early */ KASSERT(rnd_ready); @@ -816,6 +828,8 @@ { u_int32_t ts; + RUN_ONCE(&rnd_mempoolinit_ctrl, rnd_mempool_init); + ts = rnd_counter(); strlcpy(rs->data.name, name, sizeof(rs->data.name)); Index: src/sys/dev/ata/ata.c diff -u src/sys/dev/ata/ata.c:1.106 src/sys/dev/ata/ata.c:1.107 --- src/sys/dev/ata/ata.c:1.106 Tue May 12 12:10:29 2009 +++ src/sys/dev/ata/ata.c Sun Sep 13 18:45:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: ata.c,v 1.106 2009/05/12 12:10:29 cegger Exp $ */ +/* $NetBSD: ata.c,v 1.107 2009/09/13 18:45:10 pooka Exp $ */ /* * Copyright (c) 1998, 2001 Manuel Bouyer. All rights reserved. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ata.c,v 1.106 2009/05/12 12:10:29 cegger Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ata.c,v 1.107 2009/09/13 18:45:10 pooka Exp $"); #include "opt_ata.h" @@ -50,6 +50,7 @@ #include <sys/simplelock.h> #include <sys/intr.h> #include <sys/bus.h> +#include <sys/once.h> #include <dev/ata/ataconf.h> #include <dev/ata/atareg.h> @@ -78,8 +79,7 @@ #define ATADEBUG_PRINT(args, level) #endif -POOL_INIT(ata_xfer_pool, sizeof(struct ata_xfer), 0, 0, 0, "ataspl", NULL, - IPL_BIO); +static struct pool ata_xfer_pool; /* * A queue of atabus instances, used to ensure the same bus probe order @@ -429,6 +429,15 @@ return (1); } +static int +atabus_xferpool_init(void) +{ + + pool_init(&ata_xfer_pool, sizeof(struct ata_xfer), 0, 0, 0, "ataspl", + NULL, IPL_BIO); + return 0; +} + /* * atabus_attach: * @@ -440,6 +449,7 @@ struct atabus_softc *sc = device_private(self); struct ata_channel *chp = aux; struct atabus_initq *initq; + static ONCE_DECL(poolinit_ctrl); int error; sc->sc_chan = chp; @@ -452,6 +462,8 @@ if (ata_addref(chp)) return; + RUN_ONCE(&poolinit_ctrl, atabus_xferpool_init); + initq = malloc(sizeof(*initq), M_DEVBUF, M_WAITOK); initq->atabus_sc = sc; TAILQ_INSERT_TAIL(&atabus_initq_head, initq, atabus_initq); Index: src/sys/kern/init_main.c diff -u src/sys/kern/init_main.c:1.398 src/sys/kern/init_main.c:1.399 --- src/sys/kern/init_main.c:1.398 Thu Sep 3 15:20:08 2009 +++ src/sys/kern/init_main.c Sun Sep 13 18:45:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: init_main.c,v 1.398 2009/09/03 15:20:08 pooka Exp $ */ +/* $NetBSD: init_main.c,v 1.399 2009/09/13 18:45:10 pooka Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -97,13 +97,14 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: init_main.c,v 1.398 2009/09/03 15:20:08 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: init_main.c,v 1.399 2009/09/13 18:45:10 pooka Exp $"); #include "opt_ddb.h" #include "opt_ipsec.h" #include "opt_modular.h" #include "opt_ntp.h" #include "opt_pipe.h" +#include "opt_sa.h" #include "opt_syscall_debug.h" #include "opt_sysv.h" #include "opt_fileassoc.h" @@ -195,6 +196,9 @@ #ifdef WAPBL #include <sys/wapbl.h> #endif +#ifdef KERN_SA +#include <sys/savar.h> +#endif #include <net80211/ieee80211_netbsd.h> #include <sys/syscall.h> @@ -228,6 +232,8 @@ #include <secmodel/secmodel.h> +#include <prop/proplib.h> + #ifdef COMPAT_50 #include <compat/sys/time.h> struct timeval50 boottime50; @@ -311,6 +317,8 @@ uvm_init(); + prop_kern_init(); + #if ((NKSYMS > 0) || (NDDB > 0) || (NMODULAR > 0)) ksyms_init(); #endif @@ -360,6 +368,9 @@ #endif /* Initialize process and pgrp structures. */ +#ifdef KERN_SA + sa_init(); +#endif procinit(); lwpinit(); Index: src/sys/kern/kern_lwp.c diff -u src/sys/kern/kern_lwp.c:1.132 src/sys/kern/kern_lwp.c:1.133 --- src/sys/kern/kern_lwp.c:1.132 Fri Jul 10 23:07:54 2009 +++ src/sys/kern/kern_lwp.c Sun Sep 13 18:45:11 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_lwp.c,v 1.132 2009/07/10 23:07:54 dyoung Exp $ */ +/* $NetBSD: kern_lwp.c,v 1.133 2009/09/13 18:45:11 pooka Exp $ */ /*- * Copyright (c) 2001, 2006, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -210,7 +210,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_lwp.c,v 1.132 2009/07/10 23:07:54 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_lwp.c,v 1.133 2009/09/13 18:45:11 pooka Exp $"); #include "opt_ddb.h" #include "opt_lockdebug.h" @@ -243,8 +243,7 @@ struct lwplist alllwp = LIST_HEAD_INITIALIZER(alllwp); -POOL_INIT(lwp_uc_pool, sizeof(ucontext_t), 0, 0, 0, "lwpucpl", - &pool_allocator_nointr, IPL_NONE); +struct pool lwp_uc_pool; static pool_cache_t lwp_cache; static specificdata_domain_t lwp_specificdata_domain; @@ -253,6 +252,8 @@ lwpinit(void) { + pool_init(&lwp_uc_pool, sizeof(ucontext_t), 0, 0, 0, "lwpucpl", + &pool_allocator_nointr, IPL_NONE); lwp_specificdata_domain = specificdata_domain_create(); KASSERT(lwp_specificdata_domain != NULL); lwp_sys_init(); Index: src/sys/kern/kern_malloc.c diff -u src/sys/kern/kern_malloc.c:1.126 src/sys/kern/kern_malloc.c:1.127 --- src/sys/kern/kern_malloc.c:1.126 Wed Jan 7 21:06:31 2009 +++ src/sys/kern/kern_malloc.c Sun Sep 13 18:45:11 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_malloc.c,v 1.126 2009/01/07 21:06:31 pooka Exp $ */ +/* $NetBSD: kern_malloc.c,v 1.127 2009/09/13 18:45:11 pooka Exp $ */ /* * Copyright (c) 1987, 1991, 1993 @@ -66,7 +66,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_malloc.c,v 1.126 2009/01/07 21:06:31 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_malloc.c,v 1.127 2009/09/13 18:45:11 pooka Exp $"); #include <sys/param.h> #include <sys/proc.h> @@ -941,6 +941,10 @@ /* Attach all of the statically-linked malloc types. */ __link_set_foreach(ksp, malloc_types) malloc_type_attach(*ksp); + +#ifdef MALLOC_DEBUG + debug_malloc_init(); +#endif } #ifdef DDB Index: src/sys/kern/kern_malloc_debug.c diff -u src/sys/kern/kern_malloc_debug.c:1.20 src/sys/kern/kern_malloc_debug.c:1.21 --- src/sys/kern/kern_malloc_debug.c:1.20 Thu Aug 7 01:40:21 2008 +++ src/sys/kern/kern_malloc_debug.c Sun Sep 13 18:45:11 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_malloc_debug.c,v 1.20 2008/08/07 01:40:21 matt Exp $ */ +/* $NetBSD: kern_malloc_debug.c,v 1.21 2009/09/13 18:45:11 pooka Exp $ */ /* * Copyright (c) 1999, 2000 Artur Grabowski <a...@openbsd.org> @@ -56,7 +56,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_malloc_debug.c,v 1.20 2008/08/07 01:40:21 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_malloc_debug.c,v 1.21 2009/09/13 18:45:11 pooka Exp $"); #include <sys/param.h> #include <sys/proc.h> @@ -111,8 +111,15 @@ int debug_malloc_pages; int debug_malloc_chunks_on_freelist; -POOL_INIT(debug_malloc_pool, sizeof(struct debug_malloc_entry), 0, 0, 0, - "mdbepl", NULL, IPL_VM); +static struct pool debug_malloc_pool; + +void +debug_malloc_init(void) +{ + + pool_init(&debug_malloc_pool, sizeof(struct debug_malloc_entry), + 0, 0, 0, "mdbepl", NULL, IPL_VM); +} int debug_malloc(unsigned long size, struct malloc_type *type, int flags, Index: src/sys/kern/kern_time.c diff -u src/sys/kern/kern_time.c:1.160 src/sys/kern/kern_time.c:1.161 --- src/sys/kern/kern_time.c:1.160 Sun Mar 29 19:21:19 2009 +++ src/sys/kern/kern_time.c Sun Sep 13 18:45:11 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_time.c,v 1.160 2009/03/29 19:21:19 christos Exp $ */ +/* $NetBSD: kern_time.c,v 1.161 2009/09/13 18:45:11 pooka Exp $ */ /*- * Copyright (c) 2000, 2004, 2005, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_time.c,v 1.160 2009/03/29 19:21:19 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_time.c,v 1.161 2009/09/13 18:45:11 pooka Exp $"); #include <sys/param.h> #include <sys/resourcevar.h> @@ -93,10 +93,7 @@ static void *timer_sih; static TAILQ_HEAD(, ptimer) timer_queue; -POOL_INIT(ptimer_pool, sizeof(struct ptimer), 0, 0, 0, "ptimerpl", - &pool_allocator_nointr, IPL_NONE); -POOL_INIT(ptimers_pool, sizeof(struct ptimers), 0, 0, 0, "ptimerspl", - &pool_allocator_nointr, IPL_NONE); +struct pool ptimer_pool, ptimers_pool; /* * Initialize timekeeping. @@ -105,7 +102,10 @@ time_init(void) { - /* nothing yet */ + pool_init(&ptimer_pool, sizeof(struct ptimer), 0, 0, 0, "ptimerpl", + &pool_allocator_nointr, IPL_NONE); + pool_init(&ptimers_pool, sizeof(struct ptimers), 0, 0, 0, "ptimerspl", + &pool_allocator_nointr, IPL_NONE); } void Index: src/sys/kern/subr_pool.c diff -u src/sys/kern/subr_pool.c:1.173 src/sys/kern/subr_pool.c:1.174 --- src/sys/kern/subr_pool.c:1.173 Sat Aug 29 00:09:02 2009 +++ src/sys/kern/subr_pool.c Sun Sep 13 18:45:11 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_pool.c,v 1.173 2009/08/29 00:09:02 rmind Exp $ */ +/* $NetBSD: subr_pool.c,v 1.174 2009/09/13 18:45:11 pooka Exp $ */ /*- * Copyright (c) 1997, 1999, 2000, 2002, 2007, 2008 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: subr_pool.c,v 1.173 2009/08/29 00:09:02 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: subr_pool.c,v 1.174 2009/09/13 18:45:11 pooka Exp $"); #include "opt_ddb.h" #include "opt_pool.h" @@ -587,17 +587,10 @@ pool_subsystem_init(void) { struct pool_allocator *pa; - __link_set_decl(pools, struct link_pool_init); - struct link_pool_init * const *pi; mutex_init(&pool_head_lock, MUTEX_DEFAULT, IPL_NONE); cv_init(&pool_busy, "poolbusy"); - __link_set_foreach(pi, pools) - pool_init((*pi)->pp, (*pi)->size, (*pi)->align, - (*pi)->align_offset, (*pi)->flags, (*pi)->wchan, - (*pi)->palloc, (*pi)->ipl); - while ((pa = SLIST_FIRST(&pa_deferinitq)) != NULL) { KASSERT(pa->pa_backingmapptr != NULL); KASSERT(*pa->pa_backingmapptr != NULL); Index: src/sys/netbt/bt_proto.c diff -u src/sys/netbt/bt_proto.c:1.11 src/sys/netbt/bt_proto.c:1.12 --- src/sys/netbt/bt_proto.c:1.11 Mon Aug 10 18:25:20 2009 +++ src/sys/netbt/bt_proto.c Sun Sep 13 18:45:11 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: bt_proto.c,v 1.11 2009/08/10 18:25:20 plunky Exp $ */ +/* $NetBSD: bt_proto.c,v 1.12 2009/09/13 18:45:11 pooka Exp $ */ /*- * Copyright (c) 2005 Iain Hibbert. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: bt_proto.c,v 1.11 2009/08/10 18:25:20 plunky Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bt_proto.c,v 1.12 2009/09/13 18:45:11 pooka Exp $"); #include <sys/param.h> #include <sys/domain.h> @@ -97,6 +97,7 @@ .pr_flags = (PR_CONNREQUIRED | PR_ATOMIC | PR_LISTEN), .pr_ctloutput = l2cap_ctloutput, .pr_usrreq = l2cap_usrreq, + .pr_init = l2cap_init, }, { /* RFCOMM */ .pr_type = SOCK_STREAM, @@ -105,6 +106,7 @@ .pr_flags = (PR_CONNREQUIRED | PR_LISTEN | PR_WANTRCVD), .pr_ctloutput = rfcomm_ctloutput, .pr_usrreq = rfcomm_usrreq, + .pr_init = rfcomm_init, }, }; Index: src/sys/netbt/l2cap.h diff -u src/sys/netbt/l2cap.h:1.8 src/sys/netbt/l2cap.h:1.9 --- src/sys/netbt/l2cap.h:1.8 Mon Sep 8 23:36:55 2008 +++ src/sys/netbt/l2cap.h Sun Sep 13 18:45:11 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: l2cap.h,v 1.8 2008/09/08 23:36:55 gmcgarry Exp $ */ +/* $NetBSD: l2cap.h,v 1.9 2009/09/13 18:45:11 pooka Exp $ */ /*- * Copyright (c) 2005 Iain Hibbert. @@ -54,7 +54,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: l2cap.h,v 1.8 2008/09/08 23:36:55 gmcgarry Exp $ + * $Id: l2cap.h,v 1.9 2009/09/13 18:45:11 pooka Exp $ * $FreeBSD: src/sys/netgraph/bluetooth/include/l2cap.h,v 1.4 2005/08/31 18:13:23 emax Exp $ */ @@ -455,6 +455,7 @@ struct l2cap_req *l2cap_request_lookup(struct hci_link *, uint8_t); void l2cap_request_free(struct l2cap_req *); void l2cap_rtx(void *); +void l2cap_init(void); /* l2cap_signal.c */ void l2cap_recv_signal(struct mbuf *, struct hci_link *); Index: src/sys/netbt/rfcomm.h diff -u src/sys/netbt/rfcomm.h:1.8 src/sys/netbt/rfcomm.h:1.9 --- src/sys/netbt/rfcomm.h:1.8 Mon Sep 8 23:36:55 2008 +++ src/sys/netbt/rfcomm.h Sun Sep 13 18:45:11 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: rfcomm.h,v 1.8 2008/09/08 23:36:55 gmcgarry Exp $ */ +/* $NetBSD: rfcomm.h,v 1.9 2009/09/13 18:45:11 pooka Exp $ */ /*- * Copyright (c) 2006 Itronix Inc. @@ -55,7 +55,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: rfcomm.h,v 1.8 2008/09/08 23:36:55 gmcgarry Exp $ + * $Id: rfcomm.h,v 1.9 2009/09/13 18:45:11 pooka Exp $ * $FreeBSD: src/sys/netgraph/bluetooth/include/ng_btsocket_rfcomm.h,v 1.4 2005/01/11 01:39:53 emax Exp $ */ @@ -401,6 +401,7 @@ int rfcomm_session_send_frame(struct rfcomm_session *, int, int); int rfcomm_session_send_uih(struct rfcomm_session *, struct rfcomm_dlc *, int, struct mbuf *); int rfcomm_session_send_mcc(struct rfcomm_session *, int, uint8_t, void *, int); +void rfcomm_init(void); /* rfcomm_socket.c */ int rfcomm_usrreq(struct socket *, int, struct mbuf *, struct mbuf *, struct mbuf *, struct lwp *); Index: src/sys/netbt/l2cap_misc.c diff -u src/sys/netbt/l2cap_misc.c:1.6 src/sys/netbt/l2cap_misc.c:1.7 --- src/sys/netbt/l2cap_misc.c:1.6 Thu Apr 24 11:38:37 2008 +++ src/sys/netbt/l2cap_misc.c Sun Sep 13 18:45:11 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: l2cap_misc.c,v 1.6 2008/04/24 11:38:37 ad Exp $ */ +/* $NetBSD: l2cap_misc.c,v 1.7 2009/09/13 18:45:11 pooka Exp $ */ /*- * Copyright (c) 2005 Iain Hibbert. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: l2cap_misc.c,v 1.6 2008/04/24 11:38:37 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: l2cap_misc.c,v 1.7 2009/09/13 18:45:11 pooka Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -49,10 +49,7 @@ struct l2cap_channel_list l2cap_listen_list = LIST_HEAD_INITIALIZER(l2cap_listen_list); -POOL_INIT(l2cap_req_pool, sizeof(struct l2cap_req), 0, 0, 0, "l2cap_req", NULL, - IPL_SOFTNET); -POOL_INIT(l2cap_pdu_pool, sizeof(struct l2cap_pdu), 0, 0, 0, "l2cap_pdu", NULL, - IPL_SOFTNET); +struct pool l2cap_req_pool, l2cap_pdu_pool; const l2cap_qos_t l2cap_default_qos = { 0, /* flags */ @@ -70,6 +67,16 @@ int l2cap_response_timeout = 30; /* seconds */ int l2cap_response_extended_timeout = 180; /* seconds */ +void +l2cap_init(void) +{ + + pool_init(&l2cap_req_pool, sizeof(struct l2cap_req), 0, 0, 0, + "l2cap_req", NULL, IPL_SOFTNET); + pool_init(&l2cap_pdu_pool, sizeof(struct l2cap_pdu), 0, 0, 0, + "l2cap_pdu", NULL, IPL_SOFTNET); +} + /* * Set Link Mode on channel */ Index: src/sys/netbt/rfcomm_session.c diff -u src/sys/netbt/rfcomm_session.c:1.14 src/sys/netbt/rfcomm_session.c:1.15 --- src/sys/netbt/rfcomm_session.c:1.14 Wed Aug 6 15:01:24 2008 +++ src/sys/netbt/rfcomm_session.c Sun Sep 13 18:45:11 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: rfcomm_session.c,v 1.14 2008/08/06 15:01:24 plunky Exp $ */ +/* $NetBSD: rfcomm_session.c,v 1.15 2009/09/13 18:45:11 pooka Exp $ */ /*- * Copyright (c) 2006 Itronix Inc. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rfcomm_session.c,v 1.14 2008/08/06 15:01:24 plunky Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rfcomm_session.c,v 1.15 2009/09/13 18:45:11 pooka Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -95,8 +95,7 @@ struct rfcomm_session_list rfcomm_session_listen = LIST_HEAD_INITIALIZER(rfcomm_session_listen); -POOL_INIT(rfcomm_credit_pool, sizeof(struct rfcomm_credit), - 0, 0, 0, "rfcomm_credit", NULL, IPL_SOFTNET); +static struct pool rfcomm_credit_pool; /* * RFCOMM System Parameters (see section 5.3) @@ -152,6 +151,14 @@ #define FCS(f, d) crctable[(f) ^ (d)] +void +rfcomm_init(void) +{ + + pool_init(&rfcomm_credit_pool, sizeof(struct rfcomm_credit), + 0, 0, 0, "rfcomm_credit", NULL, IPL_SOFTNET); +} + /* * rfcomm_session_alloc(list, sockaddr) * Index: src/sys/netinet/igmp.c diff -u src/sys/netinet/igmp.c:1.49 src/sys/netinet/igmp.c:1.50 --- src/sys/netinet/igmp.c:1.49 Sun May 4 07:22:14 2008 +++ src/sys/netinet/igmp.c Sun Sep 13 18:45:11 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: igmp.c,v 1.49 2008/05/04 07:22:14 thorpej Exp $ */ +/* $NetBSD: igmp.c,v 1.50 2009/09/13 18:45:11 pooka Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: igmp.c,v 1.49 2008/05/04 07:22:14 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: igmp.c,v 1.50 2009/09/13 18:45:11 pooka Exp $"); #include "opt_mrouting.h" @@ -68,8 +68,7 @@ #define IP_MULTICASTOPTS 0 -POOL_INIT(igmp_rti_pool, sizeof(struct router_info), 0, 0, 0, "igmppl", NULL, - IPL_SOFTNET); +static struct pool igmp_rti_pool; static percpu_t *igmpstat_percpu; @@ -150,6 +149,8 @@ igmp_init(void) { + pool_init(&igmp_rti_pool, sizeof(struct router_info), 0, 0, 0, + "igmppl", NULL, IPL_SOFTNET); igmpstat_percpu = percpu_alloc(sizeof(uint64_t) * IGMP_NSTATS); } Index: src/sys/sys/malloc.h diff -u src/sys/sys/malloc.h:1.104 src/sys/sys/malloc.h:1.105 --- src/sys/sys/malloc.h:1.104 Wed Jan 7 21:06:31 2009 +++ src/sys/sys/malloc.h Sun Sep 13 18:45:11 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: malloc.h,v 1.104 2009/01/07 21:06:31 pooka Exp $ */ +/* $NetBSD: malloc.h,v 1.105 2009/09/13 18:45:11 pooka Exp $ */ /* * Copyright (c) 1987, 1993 @@ -105,6 +105,7 @@ #endif /* MALLOCLOG */ #ifdef MALLOC_DEBUG +void debug_malloc_init(void); int debug_malloc(unsigned long, struct malloc_type *, int, void **); int debug_free(void *, struct malloc_type *); Index: src/sys/sys/pool.h diff -u src/sys/sys/pool.h:1.64 src/sys/sys/pool.h:1.65 --- src/sys/sys/pool.h:1.64 Fri Jul 4 16:38:59 2008 +++ src/sys/sys/pool.h Sun Sep 13 18:45:12 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: pool.h,v 1.64 2008/07/04 16:38:59 ad Exp $ */ +/* $NetBSD: pool.h,v 1.65 2009/09/13 18:45:12 pooka Exp $ */ /*- * Copyright (c) 1997, 1998, 1999, 2000, 2007 The NetBSD Foundation, Inc. @@ -265,23 +265,6 @@ extern struct pool_allocator pool_allocator_nointr_fullpage; #endif -struct link_pool_init { /* same as args to pool_init() */ - struct pool *pp; - size_t size; - u_int align; - u_int align_offset; - int flags; - const char *wchan; - struct pool_allocator *palloc; - int ipl; -}; -#define POOL_INIT(pp, size, align, align_offset, flags, wchan, palloc, ipl)\ -struct pool pp; \ -static const struct link_pool_init _link_ ## pp[1] = { \ - { &pp, size, align, align_offset, flags, wchan, palloc, ipl } \ -}; \ -__link_set_add_rodata(pools, _link_ ## pp) - void pool_subsystem_init(void); void pool_init(struct pool *, size_t, u_int, u_int, Index: src/sys/sys/savar.h diff -u src/sys/sys/savar.h:1.28 src/sys/sys/savar.h:1.29 --- src/sys/sys/savar.h:1.28 Fri Oct 17 08:16:57 2008 +++ src/sys/sys/savar.h Sun Sep 13 18:45:12 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: savar.h,v 1.28 2008/10/17 08:16:57 cegger Exp $ */ +/* $NetBSD: savar.h,v 1.29 2009/09/13 18:45:12 pooka Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -170,6 +170,8 @@ #define SA_MAXNUMSTACKS 16 /* Maximum number of upcall stacks per VP. */ +void sa_init(void); + struct sadata_upcall *sadata_upcall_alloc(int); void sadata_upcall_free(struct sadata_upcall *); void sadata_upcall_drain(void); Index: src/sys/uvm/uvm_aobj.c diff -u src/sys/uvm/uvm_aobj.c:1.106 src/sys/uvm/uvm_aobj.c:1.107 --- src/sys/uvm/uvm_aobj.c:1.106 Wed Feb 18 13:16:58 2009 +++ src/sys/uvm/uvm_aobj.c Sun Sep 13 18:45:12 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_aobj.c,v 1.106 2009/02/18 13:16:58 yamt Exp $ */ +/* $NetBSD: uvm_aobj.c,v 1.107 2009/09/13 18:45:12 pooka Exp $ */ /* * Copyright (c) 1998 Chuck Silvers, Charles D. Cranor and @@ -43,7 +43,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uvm_aobj.c,v 1.106 2009/02/18 13:16:58 yamt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uvm_aobj.c,v 1.107 2009/09/13 18:45:12 pooka Exp $"); #include "opt_uvmhist.h" @@ -140,8 +140,7 @@ * uao_swhash_elt_pool: pool of uao_swhash_elt structures * NOTE: Pages for this pool must not come from a pageable kernel map! */ -static POOL_INIT(uao_swhash_elt_pool, sizeof(struct uao_swhash_elt), 0, 0, 0, - "uaoeltpl", NULL, IPL_VM); +static struct pool uao_swhash_elt_pool; static struct pool_cache uvm_aobj_cache; @@ -552,6 +551,8 @@ mutex_init(&uao_list_lock, MUTEX_DEFAULT, IPL_NONE); pool_cache_bootstrap(&uvm_aobj_cache, sizeof(struct uvm_aobj), 0, 0, 0, "aobj", NULL, IPL_NONE, NULL, NULL, NULL); + pool_init(&uao_swhash_elt_pool, sizeof(struct uao_swhash_elt), + 0, 0, 0, "uaoeltpl", NULL, IPL_VM); } /* Index: src/sys/uvm/uvm_swap.c diff -u src/sys/uvm/uvm_swap.c:1.145 src/sys/uvm/uvm_swap.c:1.146 --- src/sys/uvm/uvm_swap.c:1.145 Sun Mar 1 01:13:14 2009 +++ src/sys/uvm/uvm_swap.c Sun Sep 13 18:45:12 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_swap.c,v 1.145 2009/03/01 01:13:14 mrg Exp $ */ +/* $NetBSD: uvm_swap.c,v 1.146 2009/09/13 18:45:12 pooka Exp $ */ /* * Copyright (c) 1995, 1996, 1997, 2009 Matthew R. Green @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uvm_swap.c,v 1.145 2009/03/01 01:13:14 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uvm_swap.c,v 1.146 2009/09/13 18:45:12 pooka Exp $"); #include "fs_nfs.h" #include "opt_uvmhist.h" @@ -204,10 +204,7 @@ /* * We keep a of pool vndbuf's and vndxfer structures. */ -POOL_INIT(vndxfer_pool, sizeof(struct vndxfer), 0, 0, 0, "swp vnx", NULL, - IPL_BIO); -POOL_INIT(vndbuf_pool, sizeof(struct vndbuf), 0, 0, 0, "swp vnd", NULL, - IPL_BIO); +static struct pool vndxfer_pool, vndbuf_pool; /* * local variables @@ -313,6 +310,11 @@ CTLTYPE_INT, "swapout", SYSCTL_DESCR("Set 0 to disable swapout of kernel stacks"), NULL, 0, &uvm.swapout_enabled, 0, CTL_VM, CTL_CREATE, CTL_EOL); + + pool_init(&vndxfer_pool, sizeof(struct vndxfer), 0, 0, 0, "swp vnx", + NULL, IPL_BIO); + pool_init(&vndbuf_pool, sizeof(struct vndbuf), 0, 0, 0, "swp vnd", + NULL, IPL_BIO); } /*