@@ -1,4 +1,4 @@
-/* $NetBSD: taskq.c,v 1.4 2015/04/11 00:13:04 riastradh Exp $ */
+/* $NetBSD: taskq.c,v 1.5 2015/04/11 16:32:07 riastradh Exp $ */
/*
* CDDL HEADER START
@@ -905,7 +905,8 @@
uint_t bsize; /* # of buckets - always power of 2 */
ASSERT(instance == 0);
- ASSERT(flags == TASKQ_PREPOPULATE | TASKQ_NOINSTANCE);
+ ASSERT(!ISSET(flags, TASKQ_CPR_SAFE));
+ ASSERT(!ISSET(flags, TASKQ_DYNAMIC));
/*
* TASKQ_CPR_SAFE and TASKQ_DYNAMIC flags are mutually exclusive.
@@ -919,7 +920,10 @@
ASSERT(bsize >= 1);
bsize = MIN(bsize, taskq_maxbuckets);
- tq->tq_maxsize = nthreads;
+ ASSERT(!(flags & TASKQ_DYNAMIC));
+ if (flags & TASKQ_THREADS_CPU_PCT)
+ /* nthreads is % of CPUs we want to use. */
+ nthreads = (ncpus*nthreads)/100;
(void) strncpy(tq->tq_name, name, TASKQ_NAMELEN + 1);
tq->tq_name[TASKQ_NAMELEN] = '\0';