Module Name:    src
Committed By:   rmind
Date:           Tue Oct 27 02:55:07 UTC 2009

Modified Files:
        src/sys/kern: kern_pmf.c

Log Message:
- Use pool(9) for pmf_event_workitem_t, instead of pool_cache(9).  Still,
  meta-data of this pool takes more space than the actual data..

- Reduce lowat/hiwat to 1..8, since intensity is very low.

- Remove unused pew_next_free from pmf_event_workitem_t.


To generate a diff of this commit:
cvs rdiff -u -r1.29 -r1.30 src/sys/kern/kern_pmf.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/kern/kern_pmf.c
diff -u src/sys/kern/kern_pmf.c:1.29 src/sys/kern/kern_pmf.c:1.30
--- src/sys/kern/kern_pmf.c:1.29	Wed Sep 16 16:34:50 2009
+++ src/sys/kern/kern_pmf.c	Tue Oct 27 02:55:07 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_pmf.c,v 1.29 2009/09/16 16:34:50 dyoung Exp $ */
+/* $NetBSD: kern_pmf.c,v 1.30 2009/10/27 02:55:07 rmind Exp $ */
 
 /*-
  * Copyright (c) 2007 Jared D. McNeill <jmcne...@invisible.ca>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_pmf.c,v 1.29 2009/09/16 16:34:50 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_pmf.c,v 1.30 2009/10/27 02:55:07 rmind Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -103,7 +103,6 @@
 	struct work				pew_work;
 	pmf_generic_event_t			pew_event;
 	device_t				pew_device;
-	SIMPLEQ_ENTRY(pmf_event_workitem)	pew_next_free;
 } pmf_event_workitem_t;
 
 typedef struct pmf_suspend_workitem {
@@ -112,7 +111,7 @@
 	struct pmf_qual	psw_qual;
 } pmf_suspend_workitem_t;
 
-static pool_cache_t pew_pc;
+static struct pool pew_pl;
 
 static pmf_event_workitem_t *pmf_event_workitem_get(void);
 static void pmf_event_workitem_put(pmf_event_workitem_t *);
@@ -1060,21 +1059,16 @@
 static void
 pmf_event_workitem_put(pmf_event_workitem_t *pew)
 {
+
 	KASSERT(pew != NULL);
-	pool_cache_put(pew_pc, pew);
+	pool_put(&pew_pl, pew);
 }
 
 static pmf_event_workitem_t *
 pmf_event_workitem_get(void)
 {
-	return pool_cache_get(pew_pc, PR_NOWAIT);
-}
 
-static int
-pew_constructor(void *arg, void *obj, int flags)
-{
-	memset(obj, 0, sizeof(pmf_event_workitem_t));
-	return 0;
+	return pool_get(&pew_pl, PR_NOWAIT);
 }
 
 void
@@ -1082,10 +1076,10 @@
 {
 	int err;
 
-	pew_pc = pool_cache_init(sizeof(pmf_event_workitem_t), 0, 0, 0,
-	    "pew pool", NULL, IPL_HIGH, pew_constructor, NULL, NULL);
-	pool_cache_setlowat(pew_pc, 16);
-	pool_cache_sethiwat(pew_pc, 256);
+	pool_init(&pew_pl, sizeof(pmf_event_workitem_t), 0, 0, 0,
+	    "pewpl", NULL, IPL_HIGH);
+	pool_setlowat(&pew_pl, 1);
+	pool_sethiwat(&pew_pl, 8);
 
 	KASSERT(pmf_event_workqueue == NULL);
 	err = workqueue_create(&pmf_event_workqueue, "pmfevent",

Reply via email to