aboutsummaryrefslogtreecommitdiff
path: root/sys/kern
diff options
context:
space:
mode:
authorStephen Hurd <shurd@FreeBSD.org>2018-05-02 19:36:29 +0000
committerStephen Hurd <shurd@FreeBSD.org>2018-05-02 19:36:29 +0000
commitf3e1324b41e54f1a3b148541ddcacdbe647d2214 (patch)
tree605fb041714cffab9218069efe9ade83faf4843d /sys/kern
parentadb947a67ad23f81deea85fd765d98493db1713d (diff)
Notes
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/subr_gtaskqueue.c12
-rw-r--r--sys/kern/subr_witness.c8
2 files changed, 17 insertions, 3 deletions
diff --git a/sys/kern/subr_gtaskqueue.c b/sys/kern/subr_gtaskqueue.c
index 20e96321fb70..14677a164540 100644
--- a/sys/kern/subr_gtaskqueue.c
+++ b/sys/kern/subr_gtaskqueue.c
@@ -53,6 +53,7 @@ static void gtaskqueue_thread_enqueue(void *);
static void gtaskqueue_thread_loop(void *arg);
TASKQGROUP_DEFINE(softirq, mp_ncpus, 1);
+TASKQGROUP_DEFINE(config, 1, 1);
struct gtaskqueue_busy {
struct gtask *tb_running;
@@ -662,7 +663,7 @@ SYSINIT(tqg_record_smp_started, SI_SUB_SMP, SI_ORDER_FOURTH,
void
taskqgroup_attach(struct taskqgroup *qgroup, struct grouptask *gtask,
- void *uniq, int irq, char *name)
+ void *uniq, int irq, const char *name)
{
cpuset_t mask;
int qid, error;
@@ -977,3 +978,12 @@ taskqgroup_destroy(struct taskqgroup *qgroup)
{
}
+
+void
+taskqgroup_config_gtask_init(void *ctx, struct grouptask *gtask, gtask_fn_t *fn,
+ const char *name)
+{
+
+ GROUPTASK_INIT(gtask, 0, fn, ctx);
+ taskqgroup_attach(qgroup_config, gtask, gtask, -1, name);
+}
diff --git a/sys/kern/subr_witness.c b/sys/kern/subr_witness.c
index a5df44ee1b18..19e3656e0f28 100644
--- a/sys/kern/subr_witness.c
+++ b/sys/kern/subr_witness.c
@@ -532,18 +532,22 @@ static struct witness_order_list_entry order_lists[] = {
* IPv4 multicast:
* protocol locks before interface locks, after UDP locks.
*/
+ { "in_multi_sx", &lock_class_sx },
{ "udpinp", &lock_class_rw },
- { "in_multi_mtx", &lock_class_mtx_sleep },
+ { "in_multi_list_mtx", &lock_class_mtx_sleep },
{ "igmp_mtx", &lock_class_mtx_sleep },
+ { "ifnet_rw", &lock_class_rw },
{ "if_addr_lock", &lock_class_rw },
{ NULL, NULL },
/*
* IPv6 multicast:
* protocol locks before interface locks, after UDP locks.
*/
+ { "in6_multi_sx", &lock_class_sx },
{ "udpinp", &lock_class_rw },
- { "in6_multi_mtx", &lock_class_mtx_sleep },
+ { "in6_multi_list_mtx", &lock_class_mtx_sleep },
{ "mld_mtx", &lock_class_mtx_sleep },
+ { "ifnet_rw", &lock_class_rw },
{ "if_addr_lock", &lock_class_rw },
{ NULL, NULL },
/*