aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/subr_gtaskqueue.c
diff options
context:
space:
mode:
authorLeandro Lupori <luporl@FreeBSD.org>2018-08-09 14:04:51 +0000
committerLeandro Lupori <luporl@FreeBSD.org>2018-08-09 14:04:51 +0000
commitc8e2123b6a217469f58f46af93be80fef2eaad2d (patch)
tree3e95b1b8ef36cc5c4bb20573cd1d8a5cd4a6aadc /sys/kern/subr_gtaskqueue.c
parente327ad33776a859ad365e87043f2800da48cdf84 (diff)
Notes
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 8a18ed248816d..96dc530373a3d 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)
{