From tedu@tedunangst.com Fri Dec 19 13:54:31 2014 Delivered-To: david@gwynne.id.au Received: by 10.152.48.80 with SMTP id j16csp144527lan; Thu, 18 Dec 2014 19:54:31 -0800 (PST) X-Received: by 10.140.46.52 with SMTP id j49mr9665891qga.30.1418961271304; Thu, 18 Dec 2014 19:54:31 -0800 (PST) Return-Path: Received: from ox.tedunangst.com (ox.tedunangst.com. [208.82.130.146]) by mx.google.com with ESMTPS id o44si10692559qge.27.2014.12.18.19.54.30 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 18 Dec 2014 19:54:31 -0800 (PST) Received-SPF: pass (google.com: domain of tedu@tedunangst.com designates 208.82.130.146 as permitted sender) client-ip=208.82.130.146; Authentication-Results: mx.google.com; spf=pass (google.com: domain of tedu@tedunangst.com designates 208.82.130.146 as permitted sender) smtp.mail=tedu@tedunangst.com Received: from localhost.localdomain (localhost [127.0.0.1]); by ox.tedunangst.com (OpenSMTPD) with ESMTP id 2064f161; Thu, 18 Dec 2014 22:54:53 -0500 (EST) Date: Thu, 18 Dec 2014 22:54:30 -0500 From: Ted Unangst To: David Gwynne Cc: hackers@openbsd.org Message-ID: References: <4F69A39C-5A15-49BF-AF65-42FBE27CE39B@gwynne.id.au> <97621c6569b441a2a37d22fb699b0a1e@tedunangst.com> <20141219025909.GT265@animata.net> <20141217005630.GK265@animata.net> Subject: Re: pools diffs again Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Status: RO X-Status: A Content-Length: 9680 Lines: 274 On Fri, Dec 19, 2014 at 13:29, David Gwynne wrote: > there isnt really a pool_alloc_nointr anymore, so things that ask for that > should be changed to pass PR_WAITOK in pool_inits flags argument and NULL > as their allocator. that would let them get the 8x thing too. Sounds good. Index: kern_descrip.c =================================================================== RCS file: /cvs/src/sys/kern/kern_descrip.c,v retrieving revision 1.114 diff -u -p -r1.114 kern_descrip.c --- kern_descrip.c 16 Dec 2014 18:30:03 -0000 1.114 +++ kern_descrip.c 19 Dec 2014 03:53:35 -0000 @@ -83,10 +83,10 @@ struct pool fdesc_pool; void filedesc_init(void) { - pool_init(&file_pool, sizeof(struct file), 0, 0, 0, "filepl", - &pool_allocator_nointr); - pool_init(&fdesc_pool, sizeof(struct filedesc0), 0, 0, 0, "fdescpl", - &pool_allocator_nointr); + pool_init(&file_pool, sizeof(struct file), 0, 0, PR_WAITOK, + "filepl", NULL); + pool_init(&fdesc_pool, sizeof(struct filedesc0), 0, 0, PR_WAITOK, + "fdescpl", NULL); LIST_INIT(&filehead); } Index: kern_event.c =================================================================== RCS file: /cvs/src/sys/kern/kern_event.c,v retrieving revision 1.60 diff -u -p -r1.60 kern_event.c --- kern_event.c 9 Dec 2014 07:05:06 -0000 1.60 +++ kern_event.c 19 Dec 2014 03:46:57 -0000 @@ -162,10 +162,10 @@ void kqueue_init(void) { - pool_init(&kqueue_pool, sizeof(struct kqueue), 0, 0, 0, "kqueuepl", - &pool_allocator_nointr); - pool_init(&knote_pool, sizeof(struct knote), 0, 0, 0, "knotepl", - &pool_allocator_nointr); + pool_init(&kqueue_pool, sizeof(struct kqueue), 0, 0, PR_WAITOK, + "kqueuepl", NULL); + pool_init(&knote_pool, sizeof(struct knote), 0, 0, PR_WAITOK, + "knotepl", NULL); } int Index: kern_proc.c =================================================================== RCS file: /cvs/src/sys/kern/kern_proc.c,v retrieving revision 1.62 diff -u -p -r1.62 kern_proc.c --- kern_proc.c 10 Dec 2014 02:44:47 -0000 1.62 +++ kern_proc.c 19 Dec 2014 03:48:00 -0000 @@ -93,18 +93,18 @@ procinit(void) if (!pidhashtbl || !pgrphashtbl || !uihashtbl) panic("procinit: malloc"); - pool_init(&proc_pool, sizeof(struct proc), 0, 0, 0, "procpl", - &pool_allocator_nointr); - pool_init(&process_pool, sizeof(struct process), 0, 0, 0, "processpl", - &pool_allocator_nointr); - pool_init(&rusage_pool, sizeof(struct rusage), 0, 0, 0, "zombiepl", - &pool_allocator_nointr); - pool_init(&ucred_pool, sizeof(struct ucred), 0, 0, 0, "ucredpl", - &pool_allocator_nointr); - pool_init(&pgrp_pool, sizeof(struct pgrp), 0, 0, 0, "pgrppl", - &pool_allocator_nointr); - pool_init(&session_pool, sizeof(struct session), 0, 0, 0, "sessionpl", - &pool_allocator_nointr); + pool_init(&proc_pool, sizeof(struct proc), 0, 0, PR_WAITOK, + "procpl", NULL); + pool_init(&process_pool, sizeof(struct process), 0, 0, PR_WAITOK, + "processpl", NULL); + pool_init(&rusage_pool, sizeof(struct rusage), 0, 0, PR_WAITOK, + "zombiepl", NULL); + pool_init(&ucred_pool, sizeof(struct ucred), 0, 0, PR_WAITOK, + "ucredpl", NULL); + pool_init(&pgrp_pool, sizeof(struct pgrp), 0, 0, PR_WAITOK, + "pgrppl", NULL); + pool_init(&session_pool, sizeof(struct session), 0, 0, PR_WAITOK, + "sessionpl", NULL); } struct uidinfo * Index: kern_resource.c =================================================================== RCS file: /cvs/src/sys/kern/kern_resource.c,v retrieving revision 1.52 diff -u -p -r1.52 kern_resource.c --- kern_resource.c 10 Dec 2014 02:44:47 -0000 1.52 +++ kern_resource.c 19 Dec 2014 03:48:13 -0000 @@ -505,8 +505,8 @@ limcopy(struct plimit *lim) static int initialized; if (!initialized) { - pool_init(&plimit_pool, sizeof(struct plimit), 0, 0, 0, - "plimitpl", &pool_allocator_nointr); + pool_init(&plimit_pool, sizeof(struct plimit), 0, 0, PR_WAITOK, + "plimitpl", NULL); initialized = 1; } Index: kern_sig.c =================================================================== RCS file: /cvs/src/sys/kern/kern_sig.c,v retrieving revision 1.176 diff -u -p -r1.176 kern_sig.c --- kern_sig.c 16 Dec 2014 18:30:04 -0000 1.176 +++ kern_sig.c 19 Dec 2014 03:48:24 -0000 @@ -147,8 +147,8 @@ signal_init(void) { timeout_set(&proc_stop_to, proc_stop_sweep, NULL); - pool_init(&sigacts_pool, sizeof(struct sigacts), 0, 0, 0, "sigapl", - &pool_allocator_nointr); + pool_init(&sigacts_pool, sizeof(struct sigacts), 0, 0, PR_WAITOK, + "sigapl", NULL); } /* Index: sys_pipe.c =================================================================== RCS file: /cvs/src/sys/kern/sys_pipe.c,v retrieving revision 1.67 diff -u -p -r1.67 sys_pipe.c --- sys_pipe.c 28 Sep 2014 18:52:04 -0000 1.67 +++ sys_pipe.c 19 Dec 2014 03:48:41 -0000 @@ -876,7 +876,7 @@ filt_pipewrite(struct knote *kn, long hi void pipe_init(void) { - pool_init(&pipe_pool, sizeof(struct pipe), 0, 0, 0, "pipepl", - &pool_allocator_nointr); + pool_init(&pipe_pool, sizeof(struct pipe), 0, 0, PR_WAITOK, "pipepl", + NULL); } Index: sysv_msg.c =================================================================== RCS file: /cvs/src/sys/kern/sysv_msg.c,v retrieving revision 1.29 diff -u -p -r1.29 sysv_msg.c --- sysv_msg.c 10 Dec 2014 02:44:47 -0000 1.29 +++ sysv_msg.c 19 Dec 2014 03:48:51 -0000 @@ -80,8 +80,8 @@ msginit(void) msginfo.msgssz = MSGSSZ; msginfo.msgseg = MSGSEG; - pool_init(&sysvmsgpl, sizeof(struct msg), 0, 0, 0, "sysvmsgpl", - &pool_allocator_nointr); + pool_init(&sysvmsgpl, sizeof(struct msg), 0, 0, PR_WAITOK, "sysvmsgpl", + NULL); TAILQ_INIT(&msg_queues); Index: sysv_sem.c =================================================================== RCS file: /cvs/src/sys/kern/sysv_sem.c,v retrieving revision 1.51 diff -u -p -r1.51 sysv_sem.c --- sysv_sem.c 10 Dec 2014 02:44:47 -0000 1.51 +++ sysv_sem.c 19 Dec 2014 03:49:30 -0000 @@ -62,10 +62,9 @@ void seminit(void) { - pool_init(&sema_pool, sizeof(struct semid_ds), 0, 0, 0, "semapl", - &pool_allocator_nointr); - pool_init(&semu_pool, SEMUSZ, 0, 0, 0, "semupl", - &pool_allocator_nointr); + pool_init(&sema_pool, sizeof(struct semid_ds), 0, 0, PR_WAITOK, + "semapl", NULL); + pool_init(&semu_pool, SEMUSZ, 0, 0, PR_WAITOK, "semupl", NULL); sema = mallocarray(seminfo.semmni, sizeof(struct semid_ds *), M_SEM, M_WAITOK|M_ZERO); semseqs = mallocarray(seminfo.semmni, sizeof(unsigned short), Index: sysv_shm.c =================================================================== RCS file: /cvs/src/sys/kern/sysv_shm.c,v retrieving revision 1.63 diff -u -p -r1.63 sysv_shm.c --- sysv_shm.c 17 Dec 2014 06:58:11 -0000 1.63 +++ sysv_shm.c 19 Dec 2014 03:49:49 -0000 @@ -526,8 +526,7 @@ shminit(void) { pool_init(&shm_pool, sizeof(struct shmid_ds) + - sizeof(struct shm_handle), 0, 0, 0, "shmpl", - &pool_allocator_nointr); + sizeof(struct shm_handle), 0, 0, PR_WAITOK, "shmpl", NULL); shmsegs = mallocarray(shminfo.shmmni, sizeof(struct shmid_ds *), M_SHM, M_WAITOK|M_ZERO); shmseqs = mallocarray(shminfo.shmmni, sizeof(unsigned short), Index: vfs_cache.c =================================================================== RCS file: /cvs/src/sys/kern/vfs_cache.c,v retrieving revision 1.39 diff -u -p -r1.39 vfs_cache.c --- vfs_cache.c 16 Dec 2014 18:30:04 -0000 1.39 +++ vfs_cache.c 19 Dec 2014 03:50:04 -0000 @@ -418,8 +418,8 @@ nchinit() { TAILQ_INIT(&nclruhead); TAILQ_INIT(&nclruneghead); - pool_init(&nch_pool, sizeof(struct namecache), 0, 0, 0, "nchpl", - &pool_allocator_nointr); + pool_init(&nch_pool, sizeof(struct namecache), 0, 0, PR_WAITOK, + "nchpl", NULL); } /* Index: vfs_init.c =================================================================== RCS file: /cvs/src/sys/kern/vfs_init.c,v retrieving revision 1.34 diff -u -p -r1.34 vfs_init.c --- vfs_init.c 8 Sep 2014 01:47:06 -0000 1.34 +++ vfs_init.c 19 Dec 2014 03:50:15 -0000 @@ -149,8 +149,7 @@ vfsinit(void) struct vfsconf *vfsconflist; int vfsconflistlen; - pool_init(&namei_pool, MAXPATHLEN, 0, 0, 0, "namei", - &pool_allocator_nointr); + pool_init(&namei_pool, MAXPATHLEN, 0, 0, PR_WAITOK, "namei", NULL); /* Initialize the vnode table. */ vntblinit(); Index: vfs_lockf.c =================================================================== RCS file: /cvs/src/sys/kern/vfs_lockf.c,v retrieving revision 1.18 diff -u -p -r1.18 vfs_lockf.c --- vfs_lockf.c 3 Nov 2014 21:28:35 -0000 1.18 +++ vfs_lockf.c 19 Dec 2014 03:50:35 -0000 @@ -76,8 +76,8 @@ int lockf_debug = DEBUG_SETLOCK|DEBUG_CL void lf_init(void) { - pool_init(&lockfpool, sizeof(struct lockf), 0, 0, 0, - "lockfpl", &pool_allocator_nointr); + pool_init(&lockfpool, sizeof(struct lockf), 0, 0, PR_WAITOK, + "lockfpl", NULL); } struct lockf *lf_alloc(uid_t, int); Index: vfs_subr.c =================================================================== RCS file: /cvs/src/sys/kern/vfs_subr.c,v retrieving revision 1.226 diff -u -p -r1.226 vfs_subr.c --- vfs_subr.c 17 Dec 2014 19:42:15 -0000 1.226 +++ vfs_subr.c 19 Dec 2014 03:50:59 -0000 @@ -143,10 +143,10 @@ vntblinit(void) { /* buffer cache may need a vnode for each buffer */ maxvnodes = 2 * desiredvnodes; - pool_init(&vnode_pool, sizeof(struct vnode), 0, 0, 0, "vnodes", - &pool_allocator_nointr); - pool_init(&uvm_vnode_pool, sizeof(struct uvm_vnode), 0, 0, 0, "uvmvnodes", - &pool_allocator_nointr); + pool_init(&vnode_pool, sizeof(struct vnode), 0, 0, PR_WAITOK, + "vnodes", NULL); + pool_init(&uvm_vnode_pool, sizeof(struct uvm_vnode), 0, 0, PR_WAITOK, + "uvmvnodes", NULL); TAILQ_INIT(&vnode_hold_list); TAILQ_INIT(&vnode_free_list); TAILQ_INIT(&mountlist);