summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2015-02-24 22:17:12 +0000
committeradrian <adrian@FreeBSD.org>2015-02-24 22:17:12 +0000
commitfb45b18a632431fb6067cb119924327d6aaf2783 (patch)
tree52cfef9e898c544e5b26d56688d32929fb19abe7
parent3903a681113acec3726f42bff3025abf877608e5 (diff)
downloadFreeBSD-src-fb45b18a632431fb6067cb119924327d6aaf2783.zip
FreeBSD-src-fb45b18a632431fb6067cb119924327d6aaf2783.tar.gz
Change uses of taskqueue_start_threads_pinned() -> taskqueue_start_threads_cpuset()
Differential Revision: https://reviews.freebsd.org/D1897 Reviewed by: jfv
-rw-r--r--sys/dev/e1000/if_igb.c9
-rw-r--r--sys/dev/ixgbe/ixgbe.c9
-rwxr-xr-xsys/dev/ixl/if_ixl.c9
-rw-r--r--sys/dev/ixl/if_ixlv.c9
4 files changed, 28 insertions, 8 deletions
diff --git a/sys/dev/e1000/if_igb.c b/sys/dev/e1000/if_igb.c
index c875945..ad6fcc5 100644
--- a/sys/dev/e1000/if_igb.c
+++ b/sys/dev/e1000/if_igb.c
@@ -2460,6 +2460,9 @@ igb_allocate_msix(struct adapter *adapter)
struct igb_queue *que = adapter->queues;
int error, rid, vector = 0;
int cpu_id = 0;
+#ifdef RSS
+ cpuset_t cpu_mask;
+#endif
/* Be sure to start with all interrupts disabled */
E1000_WRITE_REG(&adapter->hw, E1000_IMC, ~0);
@@ -2566,8 +2569,10 @@ igb_allocate_msix(struct adapter *adapter)
* round-robin bucket -> queue -> CPU allocation.
*/
#ifdef RSS
- taskqueue_start_threads_pinned(&que->tq, 1, PI_NET,
- cpu_id,
+ CPU_ZERO(&cpu_mask);
+ CPU_SET(cpu_id, &cpu_mask);
+ taskqueue_start_threads_cpuset(&que->tq, 1, PI_NET,
+ &cpu_mask,
"%s que (bucket %d)",
device_get_nameunit(adapter->dev),
cpu_id);
diff --git a/sys/dev/ixgbe/ixgbe.c b/sys/dev/ixgbe/ixgbe.c
index 7231c56..d70bbcc 100644
--- a/sys/dev/ixgbe/ixgbe.c
+++ b/sys/dev/ixgbe/ixgbe.c
@@ -2373,6 +2373,9 @@ ixgbe_allocate_msix(struct adapter *adapter)
struct tx_ring *txr = adapter->tx_rings;
int error, rid, vector = 0;
int cpu_id = 0;
+#ifdef RSS
+ cpuset_t cpu_mask;
+#endif
#ifdef RSS
/*
@@ -2460,8 +2463,10 @@ ixgbe_allocate_msix(struct adapter *adapter)
que->tq = taskqueue_create_fast("ixgbe_que", M_NOWAIT,
taskqueue_thread_enqueue, &que->tq);
#ifdef RSS
- taskqueue_start_threads_pinned(&que->tq, 1, PI_NET,
- cpu_id,
+ CPU_ZERO(&cpu_mask);
+ CPU_SET(cpu_id, &cpu_mask);
+ taskqueue_start_threads_cpuset(&que->tq, 1, PI_NET,
+ &cpu_mask,
"%s (bucket %d)",
device_get_nameunit(adapter->dev),
cpu_id);
diff --git a/sys/dev/ixl/if_ixl.c b/sys/dev/ixl/if_ixl.c
index ca34f62..61aef44 100755
--- a/sys/dev/ixl/if_ixl.c
+++ b/sys/dev/ixl/if_ixl.c
@@ -1880,6 +1880,9 @@ ixl_assign_vsi_msix(struct ixl_pf *pf)
struct ixl_queue *que = vsi->queues;
struct tx_ring *txr;
int error, rid, vector = 0;
+#ifdef RSS
+ cpuset_t cpu_mask;
+#endif
/* Admin Que is vector 0*/
rid = vector + 1;
@@ -1942,8 +1945,10 @@ ixl_assign_vsi_msix(struct ixl_pf *pf)
que->tq = taskqueue_create_fast("ixl_que", M_NOWAIT,
taskqueue_thread_enqueue, &que->tq);
#ifdef RSS
- taskqueue_start_threads_pinned(&que->tq, 1, PI_NET,
- cpu_id, "%s (bucket %d)",
+ CPU_ZERO(&cpu_mask);
+ CPU_SET(cpu_id, &cpu_mask);
+ taskqueue_start_threads_cpuset(&que->tq, 1, PI_NET,
+ &cpu_mask, "%s (bucket %d)",
device_get_nameunit(dev), cpu_id);
#else
taskqueue_start_threads(&que->tq, 1, PI_NET,
diff --git a/sys/dev/ixl/if_ixlv.c b/sys/dev/ixl/if_ixlv.c
index f1e106e..836853f 100644
--- a/sys/dev/ixl/if_ixlv.c
+++ b/sys/dev/ixl/if_ixlv.c
@@ -1382,6 +1382,9 @@ ixlv_assign_msix(struct ixlv_sc *sc)
struct ixl_queue *que = vsi->queues;
struct tx_ring *txr;
int error, rid, vector = 1;
+#ifdef RSS
+ cpuset_t cpu_mask;
+#endif
for (int i = 0; i < vsi->num_queues; i++, vector++, que++) {
int cpu_id = i;
@@ -1416,8 +1419,10 @@ ixlv_assign_msix(struct ixlv_sc *sc)
que->tq = taskqueue_create_fast("ixlv_que", M_NOWAIT,
taskqueue_thread_enqueue, &que->tq);
#ifdef RSS
- taskqueue_start_threads_pinned(&que->tq, 1, PI_NET,
- cpu_id, "%s (bucket %d)",
+ CPU_ZERO(&cpu_mask);
+ CPU_SET(cpu_id, &cpu_mask);
+ taskqueue_start_threads_cpuset(&que->tq, 1, PI_NET,
+ &cpu_mask, "%s (bucket %d)",
device_get_nameunit(dev), cpu_id);
#else
taskqueue_start_threads(&que->tq, 1, PI_NET,
OpenPOWER on IntegriCloud