Symbol: gtask
src/libs/compat/freebsd_iflib/compat/sys/_task.h
18
STAILQ_ENTRY(gtask) ta_link; /* (q) link for queue */
src/libs/compat/freebsd_iflib/compat/sys/gtaskqueue.h
100
grouptaskqueue_enqueue((gtask)->gt_taskqueue, &(gtask)->gt_task)
src/libs/compat/freebsd_iflib/compat/sys/gtaskqueue.h
53
struct gtask gt_task;
src/libs/compat/freebsd_iflib/compat/sys/gtaskqueue.h
67
int gtaskqueue_cancel(struct gtaskqueue *queue, struct gtask *gtask);
src/libs/compat/freebsd_iflib/compat/sys/gtaskqueue.h
68
void gtaskqueue_drain(struct gtaskqueue *queue, struct gtask *task);
src/libs/compat/freebsd_iflib/compat/sys/gtaskqueue.h
73
int grouptaskqueue_enqueue(struct gtaskqueue *queue, struct gtask *task);
src/libs/compat/freebsd_iflib/compat/sys/gtaskqueue.h
80
void taskqgroup_detach(struct taskqgroup *qgroup, struct grouptask *gtask);
src/libs/compat/freebsd_iflib/compat/sys/gtaskqueue.h
84
void taskqgroup_config_gtask_init(void *ctx, struct grouptask *gtask,
src/libs/compat/freebsd_iflib/compat/sys/gtaskqueue.h
86
void taskqgroup_config_gtask_deinit(struct grouptask *gtask);
src/libs/compat/freebsd_iflib/compat/sys/gtaskqueue.h
88
#define GTASK_INIT(gtask, flags, priority, func, context) do { \
src/libs/compat/freebsd_iflib/compat/sys/gtaskqueue.h
89
(gtask)->ta_flags = flags; \
src/libs/compat/freebsd_iflib/compat/sys/gtaskqueue.h
90
(gtask)->ta_priority = (priority); \
src/libs/compat/freebsd_iflib/compat/sys/gtaskqueue.h
91
(gtask)->ta_func = (func); \
src/libs/compat/freebsd_iflib/compat/sys/gtaskqueue.h
92
(gtask)->ta_context = (context); \
src/libs/compat/freebsd_iflib/compat/sys/gtaskqueue.h
95
#define GROUPTASK_INIT(gtask, priority, func, context) \
src/libs/compat/freebsd_iflib/compat/sys/gtaskqueue.h
96
GTASK_INIT(&(gtask)->gt_task, TASK_SKIP_WAKEUP, priority, func, context)
src/libs/compat/freebsd_iflib/compat/sys/gtaskqueue.h
99
#define GROUPTASK_ENQUEUE(gtask) \
src/libs/compat/freebsd_iflib/iflib.c
1603
struct grouptask *gtask = info->ifi_task;
src/libs/compat/freebsd_iflib/iflib.c
1613
GROUPTASK_ENQUEUE(gtask);
src/libs/compat/freebsd_iflib/iflib.c
1621
struct grouptask *gtask = info->ifi_task;
src/libs/compat/freebsd_iflib/iflib.c
1661
GROUPTASK_ENQUEUE(gtask);
src/libs/compat/freebsd_iflib/iflib.c
6235
int qid, struct grouptask *gtask, struct taskqgroup *tqg, void *uniq,
src/libs/compat/freebsd_iflib/iflib.c
6245
err = taskqgroup_attach_cpu(tqg, gtask, uniq, cpuid, dev,
src/libs/compat/freebsd_iflib/iflib.c
6275
struct grouptask *gtask;
src/libs/compat/freebsd_iflib/iflib.c
6294
gtask = &subctx->ifc_rxqs[qid].ifr_task;
src/libs/compat/freebsd_iflib/iflib.c
6298
NET_GROUPTASK_INIT(gtask, 0, fn, q);
src/libs/compat/freebsd_iflib/iflib.c
6308
info->ifi_task = gtask;
src/libs/compat/freebsd_iflib/iflib.c
6311
NET_GROUPTASK_INIT(gtask, 0, fn, q);
src/libs/compat/freebsd_iflib/iflib.c
6322
err = iflib_irq_set_affinity(ctx, irq, type, qid, gtask, tqg, q,
src/libs/compat/freebsd_iflib/iflib.c
6327
taskqgroup_attach(tqg, gtask, q, dev, irq->ii_res, name);
src/libs/compat/freebsd_iflib/iflib.c
6339
struct grouptask *gtask;
src/libs/compat/freebsd_iflib/iflib.c
6355
gtask = &ctx->ifc_txqs[qid].ift_task;
src/libs/compat/freebsd_iflib/iflib.c
6359
GROUPTASK_INIT(gtask, 0, fn, q);
src/libs/compat/freebsd_iflib/iflib.c
6365
gtask = &ctx->ifc_rxqs[qid].ifr_task;
src/libs/compat/freebsd_iflib/iflib.c
6369
NET_GROUPTASK_INIT(gtask, 0, fn, q);
src/libs/compat/freebsd_iflib/iflib.c
6374
gtask = &ctx->ifc_rxqs[qid].ifr_task;
src/libs/compat/freebsd_iflib/iflib.c
6378
NET_GROUPTASK_INIT(gtask, 0, fn, q);
src/libs/compat/freebsd_iflib/iflib.c
6384
gtask = NULL;
src/libs/compat/freebsd_iflib/iflib.c
6395
info->ifi_task = gtask;
src/libs/compat/freebsd_iflib/iflib.c
6408
err = iflib_irq_set_affinity(ctx, irq, type, qid, gtask, tqg, q,
src/libs/compat/freebsd_iflib/iflib.c
6413
taskqgroup_attach(tqg, gtask, q, dev, irq->ii_res, name);
src/libs/compat/freebsd_iflib/iflib.c
6424
struct grouptask *gtask;
src/libs/compat/freebsd_iflib/iflib.c
6433
gtask = &ctx->ifc_txqs[qid].ift_task;
src/libs/compat/freebsd_iflib/iflib.c
6436
GROUPTASK_INIT(gtask, 0, fn, q);
src/libs/compat/freebsd_iflib/iflib.c
6440
gtask = &ctx->ifc_rxqs[qid].ifr_task;
src/libs/compat/freebsd_iflib/iflib.c
6443
NET_GROUPTASK_INIT(gtask, 0, fn, q);
src/libs/compat/freebsd_iflib/iflib.c
6451
err = iflib_irq_set_affinity(ctx, irq, type, qid, gtask, tqg, q, name);
src/libs/compat/freebsd_iflib/iflib.c
6454
taskqgroup_attach(tqg, gtask, q, dev, irq ? irq->ii_res : NULL,
src/libs/compat/freebsd_iflib/iflib.c
6483
struct grouptask *gtask;
src/libs/compat/freebsd_iflib/iflib.c
6489
gtask = &rxq->ifr_task;
src/libs/compat/freebsd_iflib/iflib.c
6496
info->ifi_task = gtask;
src/libs/compat/freebsd_iflib/iflib.c
6505
NET_GROUPTASK_INIT(gtask, 0, _task_fn_rx, rxq);
src/libs/compat/freebsd_iflib/iflib.c
6507
taskqgroup_attach(qgroup_if_io_tqg, gtask, rxq, dev, res, name);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
1003
while ((gtask = LIST_FIRST(&gtask_head))) {
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
1004
LIST_REMOVE(gtask, gt_list);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
1005
if (gtask->gt_cpu == -1)
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
1006
taskqgroup_attach_deferred(qgroup, gtask);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
1007
else if (taskqgroup_attach_cpu_deferred(qgroup, gtask))
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
1008
taskqgroup_attach_deferred(qgroup, gtask);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
1015
LIST_FOREACH(gtask, &qgroup->tqg_queue[i].tgc_tasks, gt_list)
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
1016
MPASS(gtask->gt_taskqueue != NULL);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
1066
taskqgroup_config_gtask_init(void *ctx, struct grouptask *gtask, gtask_fn_t *fn,
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
1070
GROUPTASK_INIT(gtask, 0, fn, ctx);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
1071
taskqgroup_attach(qgroup_config, gtask, gtask, NULL, NULL, name);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
1075
taskqgroup_config_gtask_deinit(struct grouptask *gtask)
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
1078
taskqgroup_detach(qgroup_config, gtask);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
117
gtask_dump(struct gtask *gtask)
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
120
gtask, gtask->ta_flags, gtask->ta_priority, gtask->ta_func, gtask->ta_context);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
203
struct gtask *gtask = &grouptask->gt_task;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
207
gtask_dump(gtask);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
212
gtask->ta_flags |= TASK_NOENQUEUE;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
213
gtaskqueue_drain_locked(queue, gtask);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
221
struct gtask *gtask = &grouptask->gt_task;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
225
gtask_dump(gtask);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
230
gtask->ta_flags &= ~TASK_NOENQUEUE;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
235
grouptaskqueue_enqueue(struct gtaskqueue *queue, struct gtask *gtask)
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
239
gtask_dump(gtask);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
244
if (gtask->ta_flags & TASK_ENQUEUED) {
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
248
if (gtask->ta_flags & TASK_NOENQUEUE) {
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
252
STAILQ_INSERT_TAIL(&queue->tq_queue, gtask, ta_link);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
253
gtask->ta_flags |= TASK_ENQUEUED;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
273
struct gtask t_barrier;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
363
struct gtask *gtask;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
376
gtask = STAILQ_FIRST(&queue->tq_queue);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
377
KASSERT(gtask != NULL, ("task is NULL"));
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
379
gtask->ta_flags &= ~TASK_ENQUEUED;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
380
tb.tb_running = gtask;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
383
KASSERT(gtask->ta_func != NULL, ("task->ta_func is NULL"));
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
384
gtask->ta_func(gtask->ta_context);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
388
wakeup(gtask);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
399
task_is_running(struct gtaskqueue *queue, struct gtask *gtask)
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
405
if (tb->tb_running == gtask)
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
412
gtaskqueue_cancel_locked(struct gtaskqueue *queue, struct gtask *gtask)
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
415
if (gtask->ta_flags & TASK_ENQUEUED)
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
416
STAILQ_REMOVE(&queue->tq_queue, gtask, gtask, ta_link);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
417
gtask->ta_flags &= ~TASK_ENQUEUED;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
418
return (task_is_running(queue, gtask) ? EBUSY : 0);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
422
gtaskqueue_cancel(struct gtaskqueue *queue, struct gtask *gtask)
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
427
error = gtaskqueue_cancel_locked(queue, gtask);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
434
gtaskqueue_drain_locked(struct gtaskqueue *queue, struct gtask *gtask)
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
436
while ((gtask->ta_flags & TASK_ENQUEUED) || task_is_running(queue, gtask))
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
437
TQ_SLEEP(queue, gtask, &queue->tq_mutex, PWAIT, "-", 0);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
441
gtaskqueue_drain(struct gtaskqueue *queue, struct gtask *gtask)
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
449
gtaskqueue_drain_locked(queue, gtask);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
60
static int task_is_running(struct gtaskqueue *queue, struct gtask *gtask);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
61
static void gtaskqueue_drain_locked(struct gtaskqueue *queue, struct gtask *gtask);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
633
struct gtask bt_task;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
67
struct gtask *tb_running;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
71
static struct gtask * const TB_DRAIN_WAITER = (struct gtask *)0x1;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
733
taskqgroup_attach(struct taskqgroup *qgroup, struct grouptask *gtask,
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
738
gtask->gt_uniq = uniq;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
739
snprintf(gtask->gt_name, GROUPTASK_NAMELEN, "%s", name ? name : "grouptask");
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
740
gtask->gt_dev = dev;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
741
gtask->gt_irq = irq;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
742
gtask->gt_cpu = -1;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
746
LIST_INSERT_HEAD(&qgroup->tqg_queue[qid].tgc_tasks, gtask, gt_list);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
747
gtask->gt_taskqueue = qgroup->tqg_queue[qid].tgc_taskq;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
750
gtask->gt_cpu = cpu;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
755
__func__, gtask->gt_name, error);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
76
STAILQ_HEAD(, gtask) tq_queue;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
761
taskqgroup_attach_deferred(struct taskqgroup *qgroup, struct grouptask *gtask)
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
766
qid = taskqgroup_find(qgroup, gtask->gt_uniq);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
768
if (gtask->gt_dev != NULL && gtask->gt_irq != NULL) {
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
770
error = bus_bind_intr(gtask->gt_dev, gtask->gt_irq, cpu);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
774
__func__, gtask->gt_name, error);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
778
LIST_INSERT_HEAD(&qgroup->tqg_queue[qid].tgc_tasks, gtask, gt_list);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
780
gtask->gt_taskqueue = qgroup->tqg_queue[qid].tgc_taskq;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
785
taskqgroup_attach_cpu(struct taskqgroup *qgroup, struct grouptask *gtask,
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
791
gtask->gt_uniq = uniq;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
792
snprintf(gtask->gt_name, GROUPTASK_NAMELEN, "%s", name ? name : "grouptask");
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
793
gtask->gt_dev = dev;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
794
gtask->gt_irq = irq;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
795
gtask->gt_cpu = cpu;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
805
printf("%s: qid not found for %s cpu=%d\n", __func__, gtask->gt_name, cpu);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
811
LIST_INSERT_HEAD(&qgroup->tqg_queue[qid].tgc_tasks, gtask, gt_list);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
812
gtask->gt_taskqueue = qgroup->tqg_queue[qid].tgc_taskq;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
820
__func__, gtask->gt_name, error);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
826
taskqgroup_attach_cpu_deferred(struct taskqgroup *qgroup, struct grouptask *gtask)
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
833
dev = gtask->gt_dev;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
834
irq = gtask->gt_irq;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
835
cpu = gtask->gt_cpu;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
845
printf("%s: qid not found for %s cpu=%d\n", __func__, gtask->gt_name, cpu);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
849
LIST_INSERT_HEAD(&qgroup->tqg_queue[qid].tgc_tasks, gtask, gt_list);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
851
gtask->gt_taskqueue = qgroup->tqg_queue[qid].tgc_taskq;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
858
__func__, gtask->gt_name, error);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
864
taskqgroup_detach(struct taskqgroup *qgroup, struct grouptask *gtask)
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
868
grouptask_block(gtask);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
871
if (qgroup->tqg_queue[i].tgc_taskq == gtask->gt_taskqueue)
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
874
panic("%s: task %s not in group", __func__, gtask->gt_name);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
876
LIST_REMOVE(gtask, gt_list);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
878
gtask->gt_taskqueue = NULL;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
879
gtask->gt_task.ta_flags &= ~TASK_NOENQUEUE;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
885
struct taskq_bind_task *gtask = (struct taskq_bind_task *)ctx;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
891
CPU_SET(gtask->bt_cpuid, &mask);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
894
sched_bind(curthread, gtask->bt_cpuid);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
900
free(gtask, M_DEVBUF);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
906
struct taskq_bind_task *gtask;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
917
gtask = malloc(sizeof (*gtask), M_DEVBUF, M_WAITOK);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
918
GTASK_INIT(&gtask->bt_task, 0, 0, taskqgroup_binder, gtask);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
919
gtask->bt_cpuid = qgroup->tqg_queue[i].tgc_cpu;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
921
&gtask->bt_task);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
947
struct grouptask *gtask;
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
995
while ((gtask = LIST_FIRST(&qgroup->tqg_queue[i].tgc_tasks))) {
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
996
LIST_REMOVE(gtask, gt_list);
src/libs/compat/freebsd_iflib/subr_gtaskqueue.c
998
LIST_INSERT_HEAD(&gtask_head, gtask, gt_list);