Index: head/sys/dev/hyperv/netvsc/if_hn.c =================================================================== --- head/sys/dev/hyperv/netvsc/if_hn.c +++ head/sys/dev/hyperv/netvsc/if_hn.c @@ -424,11 +424,6 @@ SYSCTL_INT(_hw_hn, OID_AUTO, use_txdesc_bufring, CTLFLAG_RD, &hn_use_txdesc_bufring, 0, "Use buf_ring for TX descriptors"); -/* Bind TX taskqueue to the target CPU */ -static int hn_bind_tx_taskq = -1; -SYSCTL_INT(_hw_hn, OID_AUTO, bind_tx_taskq, CTLFLAG_RDTUN, - &hn_bind_tx_taskq, 0, "Bind TX taskqueue to the specified cpu"); - #ifdef HN_IFSTART_SUPPORT /* Use ifnet.if_start instead of ifnet.if_transmit */ static int hn_use_if_start = 0; @@ -906,20 +901,8 @@ if (hn_tx_taskq == NULL) { sc->hn_tx_taskq = taskqueue_create("hn_tx", M_WAITOK, taskqueue_thread_enqueue, &sc->hn_tx_taskq); - if (hn_bind_tx_taskq >= 0) { - int cpu = hn_bind_tx_taskq; - cpuset_t cpu_set; - - if (cpu > mp_ncpus - 1) - cpu = mp_ncpus - 1; - CPU_SETOF(cpu, &cpu_set); - taskqueue_start_threads_cpuset(&sc->hn_tx_taskq, 1, - PI_NET, &cpu_set, "%s tx", - device_get_nameunit(dev)); - } else { - taskqueue_start_threads(&sc->hn_tx_taskq, 1, PI_NET, - "%s tx", device_get_nameunit(dev)); - } + taskqueue_start_threads(&sc->hn_tx_taskq, 1, PI_NET, "%s tx", + device_get_nameunit(dev)); } else { sc->hn_tx_taskq = hn_tx_taskq; } @@ -5360,18 +5343,7 @@ hn_tx_taskq = taskqueue_create("hn_tx", M_WAITOK, taskqueue_thread_enqueue, &hn_tx_taskq); - if (hn_bind_tx_taskq >= 0) { - int cpu = hn_bind_tx_taskq; - cpuset_t cpu_set; - - if (cpu > mp_ncpus - 1) - cpu = mp_ncpus - 1; - CPU_SETOF(cpu, &cpu_set); - taskqueue_start_threads_cpuset(&hn_tx_taskq, 1, PI_NET, - &cpu_set, "hn tx"); - } else { - taskqueue_start_threads(&hn_tx_taskq, 1, PI_NET, "hn tx"); - } + taskqueue_start_threads(&hn_tx_taskq, 1, PI_NET, "hn tx"); } SYSINIT(hn_txtq_create, SI_SUB_DRIVERS, SI_ORDER_SECOND, hn_tx_taskq_create, NULL);