taskq
"display a taskq", taskq, taskq_help },
int ret = taskq(tqi.tqi_array[idx].tq_addr, flags,
extern int taskq(uintptr_t, uint_t, int, const mdb_arg_t *);
taskq_t *taskq = pd->pd_taskq;
if (taskq_dispatch(taskq, process_req_hwp, areq,
taskq_t *taskq = new_pd->pd_taskq;
if (taskq_dispatch(taskq, process_req_hwp, areq, TQ_NOSLEEP) ==
taskq_t *taskq;
taskq = pd->pd_taskq;
EMPTY_TASKQ(taskq)) {
ASSERT(taskq != NULL);
if (EMPTY_TASKQ(taskq) &&
if (taskq->tq_nalloc >= crypto_taskq_maxalloc) {
taskq_wait(taskq);
(void) taskq_dispatch(taskq, process_req_hwp,
taskq = pd->pd_taskq;
ASSERT(taskq != NULL);
if (taskq->tq_nalloc >= crypto_taskq_maxalloc) {
if (taskq_dispatch(taskq,
struct taskq *smi_taskq; /* for async work */
vn_rele_async(vnode_t *vp, taskq_t *taskq)
VERIFY(taskq_dispatch(taskq, (task_func_t *)vn_rele_inactive,
struct taskq *dp_unlinked_drain_taskq;
#define HANDLE_BUF_PKT(taskq, stack, dropper, buf_pkt) \
if (taskq_dispatch(taskq, sadb_clear_buf_pkt, \
taskq->get_count--;
taskq->get_head = (taskq->get_count) ? tthread->next : NULL;
else if (taskq->put_head) {
mutex_enter(&taskq->put_lock);
taskq->get_head = taskq->put_head;
taskq->get_count = taskq->put_count;
taskq->put_head = NULL;
taskq->put_count = 0;
mutex_exit(&taskq->put_lock);
tthread = taskq->get_head;
taskq->get_count--;
taskq->get_head = (taskq->get_count) ? tthread->next : NULL;
mutex_exit(&taskq->get_lock);
emlxs_taskq_create(emlxs_hba_t *hba, emlxs_taskq_t *taskq)
if (taskq->open) {
bzero(taskq, sizeof (emlxs_taskq_t));
mutex_init(&taskq->get_lock, NULL, MUTEX_DRIVER,
mutex_enter(&taskq->get_lock);
taskq->hba = hba;
mutex_init(&taskq->put_lock, NULL, MUTEX_DRIVER,
tthread = &taskq->thread_list[i];
tthread->taskq = taskq;
taskq->open = 1;
mutex_exit(&taskq->get_lock);
emlxs_taskq_destroy(emlxs_taskq_t *taskq)
if (!taskq->open) {
mutex_enter(&taskq->get_lock);
if (!taskq->open) {
mutex_exit(&taskq->get_lock);
taskq->open = 0;
mutex_exit(&taskq->get_lock);
tthread = &taskq->thread_list[i];
mutex_destroy(&taskq->put_lock);
mutex_destroy(&taskq->get_lock);
emlxs_taskq_t *taskq;
taskq = tthread->taskq;
mutex_enter(&taskq->put_lock);
tthread->next = taskq->put_head;
taskq->put_head = tthread;
taskq->put_count++;
mutex_exit(&taskq->put_lock);
func(taskq->hba, arg);
emlxs_taskq_dispatch(emlxs_taskq_t *taskq, void (*func) (), void *arg)
mutex_enter(&taskq->get_lock);
if (!taskq->open) {
mutex_exit(&taskq->get_lock);
if (taskq->get_head) {
tthread = taskq->get_head;
(void) ddi_taskq_dispatch(ring->taskq,
tx_ring_p->taskq = ddi_taskq_create(hxgep->dip, qname, 1,
if (tx_ring_p->taskq == NULL) {
if (tx_ring_p->taskq) {
ddi_taskq_destroy(tx_ring_p->taskq);
tx_ring_p->taskq = NULL;
if (tx_ring_p->taskq) {
ddi_taskq_destroy(tx_ring_p->taskq);
tx_ring_p->taskq = NULL;
ddi_taskq_t *taskq;
if (instance->unroll.taskq == 1) {
if (instance->taskq) {
ddi_taskq_destroy(instance->taskq);
instance->unroll.taskq = 0;
if ((instance->taskq == NULL) || (mrevt =
if ((ddi_taskq_dispatch(instance->taskq,
if ((instance->taskq = ddi_taskq_create(dip,
instance->taskq = NULL;
instance->unroll.taskq = 1;
uint8_t taskq; /* Task q's created. */
ddi_taskq_t *taskq;
(void) ddi_taskq_dispatch(ring->taskq,
tx_ring_p->taskq = ddi_taskq_create(nxgep->dip, qname, 1,
if (tx_ring_p->taskq == NULL) {
if (tx_ring_p->taskq) {
ddi_taskq_destroy(tx_ring_p->taskq);
tx_ring_p->taskq = NULL;
if (tx_ring_p->taskq) {
ddi_taskq_destroy(tx_ring_p->taskq);
tx_ring_p->taskq = NULL;
taskq_t *taskq;
taskq = ph_data->p_taskq;
taskq = system_taskq;
if (taskq_dispatch(taskq, func, arg, tq_flag) == TASKQID_INVALID) {
extern void emlxs_taskq_destroy(emlxs_taskq_t *taskq);
emlxs_taskq_t *taskq);
extern uint32_t emlxs_taskq_dispatch(emlxs_taskq_t *taskq,
struct emlxs_taskq *taskq;
ddi_taskq_t *taskq;
struct taskq *satahba_taskq; /* cmd completion task queue */
typedef struct taskq taskq_t;
void vn_rele_async(struct vnode *vp, struct taskq *taskq);
#define VN_RELE_ASYNC(vp, taskq) { \
vn_rele_async(vp, taskq); \
struct taskq;
if (tzp->taskq != NULL) {
ddi_taskq_destroy(tzp->taskq);
if (tzp->taskq == NULL) {
tzp->taskq = ddi_taskq_create(tzmon_dip,
if (tzp->taskq == NULL) {
(void) ddi_taskq_dispatch(tzp->taskq,
ddi_taskq_t *taskq;
if ((acb->taskq = ddi_taskq_create(dev_info, "arcmsr_dr_taskq", 1,
ddi_taskq_destroy(acb->taskq);
if ((ddi_taskq_dispatch(acb->taskq,
if ((ddi_taskq_dispatch(acb->taskq,
if ((ddi_taskq_dispatch(acb->taskq,
ddi_taskq_t *taskq;
mdeg.taskq = taskq_create("mdeg_taskq", 1, minclsyspri, 1,
taskq_destroy(mdeg.taskq);
ASSERT(!taskq_member(mdeg.taskq, curthread));
ASSERT(!taskq_member(mdeg.taskq, curthread));
(void) taskq_dispatch(mdeg.taskq, mdeg_notify_client,
taskq_wait(mdeg.taskq);
taskq_t *taskq; /* for internal processing */