Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/kern - Use pool(9) for pmf_event_workitem_t, instead of ...
details: https://anonhg.NetBSD.org/src/rev/9ec1d4aa3b91
branches: trunk
changeset: 748562:9ec1d4aa3b91
user: rmind <rmind%NetBSD.org@localhost>
date: Tue Oct 27 02:55:07 2009 +0000
description:
- 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.
diffstat:
sys/kern/kern_pmf.c | 26 ++++++++++----------------
1 files changed, 10 insertions(+), 16 deletions(-)
diffs (75 lines):
diff -r bf69a85ed0e6 -r 9ec1d4aa3b91 sys/kern/kern_pmf.c
--- a/sys/kern/kern_pmf.c Tue Oct 27 01:44:01 2009 +0000
+++ b/sys/kern/kern_pmf.c Tue Oct 27 02:55:07 2009 +0000
@@ -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 <jmcneill%invisible.ca@localhost>
@@ -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",
Home |
Main Index |
Thread Index |
Old Index