Lines Matching refs:pri

48  * To use the unbound thread pool at priority pri, call
49 * threadpool_get(&pool, pri). When you're done, call
50 * threadpool_put(pool, pri).
52 * To use the per-CPU thread pools at priority pri, call
53 * threadpool_percpu_get(&pool_percpu, pri), and then use the thread
57 * pri).
108 "pri_t"/*pri*/);
110 "pri_t"/*pri*/);
112 "pri_t"/*pri*/);
114 "struct threadpool *"/*pool*/, "pri_t"/*pri*/);
116 "struct threadpool *"/*pool*/, "pri_t"/*pri*/);
119 "pri_t"/*pri*/);
121 "pri_t"/*pri*/);
123 "pri_t"/*pri*/);
125 "struct threadpool *"/*pool*/, "pri_t"/*pri*/);
127 "struct threadpool *"/*pool*/, "pri_t"/*pri*/);
130 "struct cpu_info *"/*ci*/, "pri_t"/*pri*/);
132 "struct cpu_info *"/*ci*/, "pri_t"/*pri*/, "struct threadpool *"/*pool*/);
134 "struct cpu_info *"/*ci*/, "pri_t"/*pri*/, "int"/*error*/);
237 threadpool_lookup_unbound(pri_t pri)
242 if (tpu->tpu_pool.tp_pri == pri)
274 threadpool_lookup_percpu(pri_t pri)
279 if (tpp->tpp_pri == pri)
360 threadnamesuffix(char *buf, size_t buflen, struct cpu_info *ci, int pri)
367 if (pri != PRI_NONE)
368 snprintf(buf + strlen(buf), buflen - strlen(buf), "@%d", pri);
374 threadpool_pri_is_valid(pri_t pri)
376 return (pri == PRI_NONE || (pri >= PRI_USER && pri < PRI_COUNT));
381 pri_t pri)
388 KASSERT(threadpool_pri_is_valid(pri));
390 SDT_PROBE2(sdt, kernel, threadpool, create, ci, pri);
399 pool->tp_pri = pri;
408 if (pri < PRI_KERNEL)
410 threadnamesuffix(suffix, sizeof(suffix), ci, pri);
411 error = kthread_create(pri, ktflags, ci, &threadpool_dispatcher_thread,
421 SDT_PROBE3(sdt, kernel, threadpool, create__success, ci, pri, pool);
434 SDT_PROBE3(sdt, kernel, threadpool, create__failure, ci, pri, error);
494 threadpool_get(struct threadpool **poolp, pri_t pri)
501 SDT_PROBE1(sdt, kernel, threadpool, get, pri);
503 if (! threadpool_pri_is_valid(pri))
507 tpu = threadpool_lookup_unbound(pri);
510 SDT_PROBE1(sdt, kernel, threadpool, get__create, pri);
512 error = threadpool_create(&tmp->tpu_pool, NULL, pri);
518 tpu = threadpool_lookup_unbound(pri);
524 SDT_PROBE1(sdt, kernel, threadpool, get__race, pri);
542 threadpool_put(struct threadpool *pool, pri_t pri)
548 KASSERT(threadpool_pri_is_valid(pri));
550 SDT_PROBE2(sdt, kernel, threadpool, put, pool, pri);
553 KASSERT(tpu == threadpool_lookup_unbound(pri));
556 SDT_PROBE2(sdt, kernel, threadpool, put__destroy, pool, pri);
572 threadpool_percpu_get(struct threadpool_percpu **pool_percpup, pri_t pri)
579 SDT_PROBE1(sdt, kernel, threadpool, percpu__get, pri);
581 if (! threadpool_pri_is_valid(pri))
585 pool_percpu = threadpool_lookup_percpu(pri);
588 SDT_PROBE1(sdt, kernel, threadpool, percpu__get__create, pri);
589 error = threadpool_percpu_create(&tmp, pri);
594 pool_percpu = threadpool_lookup_percpu(pri);
601 pri);
617 threadpool_percpu_put(struct threadpool_percpu *pool_percpu, pri_t pri)
622 KASSERT(threadpool_pri_is_valid(pri));
624 SDT_PROBE2(sdt, kernel, threadpool, percpu__put, pool_percpu, pri);
627 KASSERT(pool_percpu == threadpool_lookup_percpu(pri));
631 pool_percpu, pri);
675 threadpool_percpu_create(struct threadpool_percpu **pool_percpup, pri_t pri)
681 pool_percpu->tpp_pri = pri;
684 (void *)(intptr_t)pri);
716 pri_t pri = (intptr_t)(void *)vpri;
720 error = threadpool_create(*poolp, ci, pri);