aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/subr_gtaskqueue.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/subr_gtaskqueue.c')
-rw-r--r--sys/kern/subr_gtaskqueue.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/sys/kern/subr_gtaskqueue.c b/sys/kern/subr_gtaskqueue.c
index 8a18ed248816..96dc530373a3 100644
--- a/sys/kern/subr_gtaskqueue.c
+++ b/sys/kern/subr_gtaskqueue.c
@@ -857,6 +857,24 @@ taskqgroup_bind(struct taskqgroup *qgroup)
}
}
+static void
+taskqgroup_config_init(void *arg)
+{
+ struct taskqgroup *qgroup = qgroup_config;
+ LIST_HEAD(, grouptask) gtask_head = LIST_HEAD_INITIALIZER(NULL);
+
+ LIST_SWAP(&gtask_head, &qgroup->tqg_queue[0].tgc_tasks,
+ grouptask, gt_list);
+ qgroup->tqg_queue[0].tgc_cnt = 0;
+ taskqgroup_cpu_create(qgroup, 0, 0);
+
+ qgroup->tqg_cnt = 1;
+ qgroup->tqg_stride = 1;
+}
+
+SYSINIT(taskqgroup_config_init, SI_SUB_TASKQ, SI_ORDER_SECOND,
+ taskqgroup_config_init, NULL);
+
static int
_taskqgroup_adjust(struct taskqgroup *qgroup, int cnt, int stride)
{