take TASKQ_CANTSLEEP way from the softnet taskq.
authordlg <dlg@openbsd.org>
Thu, 11 Aug 2016 00:58:22 +0000 (00:58 +0000)
committerdlg <dlg@openbsd.org>
Thu, 11 Aug 2016 00:58:22 +0000 (00:58 +0000)
the big reason for this is to let us use rw locks in the network
stack, which is how at least two major efforts outside the tree
have approached making pf mpsafe.

this was discussed at length at n2k16. there was general agreement
that this is necessary for us to move smp work forward in the stack.

sys/net/if.c

index 1982514..8c32084 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: if.c,v 1.436 2016/07/13 16:45:19 mpi Exp $    */
+/*     $OpenBSD: if.c,v 1.437 2016/08/11 00:58:22 dlg Exp $    */
 /*     $NetBSD: if.c,v 1.35 1996/05/07 05:26:04 thorpej Exp $  */
 
 /*
@@ -241,8 +241,7 @@ ifinit(void)
 
        timeout_set(&net_tick_to, net_tick, &net_tick_to);
 
-       softnettq = taskq_create("softnet", 1, IPL_NET,
-           TASKQ_MPSAFE | TASKQ_CANTSLEEP);
+       softnettq = taskq_create("softnet", 1, IPL_NET, TASKQ_MPSAFE);
        if (softnettq == NULL)
                panic("unable to create softnet taskq");