Lines Matching refs:q_vector

111 static void ixgbevf_set_itr(struct ixgbevf_q_vector *q_vector);
265 static bool ixgbevf_clean_tx_irq(struct ixgbevf_q_vector *q_vector, in ixgbevf_clean_tx_irq() argument
268 struct ixgbevf_adapter *adapter = q_vector->adapter; in ixgbevf_clean_tx_irq()
362 q_vector->tx.total_bytes += total_bytes; in ixgbevf_clean_tx_irq()
363 q_vector->tx.total_packets += total_packets; in ixgbevf_clean_tx_irq()
427 static void ixgbevf_rx_skb(struct ixgbevf_q_vector *q_vector, in ixgbevf_rx_skb() argument
430 napi_gro_receive(&q_vector->napi, skb); in ixgbevf_rx_skb()
885 skb = napi_alloc_skb(&rx_ring->q_vector->napi, IXGBEVF_RX_HDR_SIZE); in ixgbevf_construct_skb()
1107 static int ixgbevf_clean_rx_irq(struct ixgbevf_q_vector *q_vector, in ixgbevf_clean_rx_irq() argument
1112 struct ixgbevf_adapter *adapter = q_vector->adapter; in ixgbevf_clean_rx_irq()
1213 ixgbevf_rx_skb(q_vector, skb); in ixgbevf_clean_rx_irq()
1240 q_vector->rx.total_packets += total_rx_packets; in ixgbevf_clean_rx_irq()
1241 q_vector->rx.total_bytes += total_rx_bytes; in ixgbevf_clean_rx_irq()
1256 struct ixgbevf_q_vector *q_vector = in ixgbevf_poll() local
1258 struct ixgbevf_adapter *adapter = q_vector->adapter; in ixgbevf_poll()
1263 ixgbevf_for_each_ring(ring, q_vector->tx) { in ixgbevf_poll()
1264 if (!ixgbevf_clean_tx_irq(q_vector, ring, budget)) in ixgbevf_poll()
1274 if (q_vector->rx.count > 1) in ixgbevf_poll()
1275 per_ring_budget = max(budget/q_vector->rx.count, 1); in ixgbevf_poll()
1279 ixgbevf_for_each_ring(ring, q_vector->rx) { in ixgbevf_poll()
1280 int cleaned = ixgbevf_clean_rx_irq(q_vector, ring, in ixgbevf_poll()
1293 ixgbevf_set_itr(q_vector); in ixgbevf_poll()
1297 BIT(q_vector->v_idx)); in ixgbevf_poll()
1306 void ixgbevf_write_eitr(struct ixgbevf_q_vector *q_vector) in ixgbevf_write_eitr() argument
1308 struct ixgbevf_adapter *adapter = q_vector->adapter; in ixgbevf_write_eitr()
1310 int v_idx = q_vector->v_idx; in ixgbevf_write_eitr()
1311 u32 itr_reg = q_vector->itr & IXGBE_MAX_EITR; in ixgbevf_write_eitr()
1330 struct ixgbevf_q_vector *q_vector; in ixgbevf_configure_msix() local
1342 q_vector = adapter->q_vector[v_idx]; in ixgbevf_configure_msix()
1344 ixgbevf_for_each_ring(ring, q_vector->rx) in ixgbevf_configure_msix()
1347 ixgbevf_for_each_ring(ring, q_vector->tx) in ixgbevf_configure_msix()
1350 if (q_vector->tx.ring && !q_vector->rx.ring) { in ixgbevf_configure_msix()
1353 q_vector->itr = IXGBE_12K_ITR; in ixgbevf_configure_msix()
1355 q_vector->itr = adapter->tx_itr_setting; in ixgbevf_configure_msix()
1359 q_vector->itr = IXGBE_20K_ITR; in ixgbevf_configure_msix()
1361 q_vector->itr = adapter->rx_itr_setting; in ixgbevf_configure_msix()
1367 ixgbevf_write_eitr(q_vector); in ixgbevf_configure_msix()
1396 static void ixgbevf_update_itr(struct ixgbevf_q_vector *q_vector, in ixgbevf_update_itr() argument
1414 timepassed_us = q_vector->itr >> 2; in ixgbevf_update_itr()
1442 static void ixgbevf_set_itr(struct ixgbevf_q_vector *q_vector) in ixgbevf_set_itr() argument
1444 u32 new_itr = q_vector->itr; in ixgbevf_set_itr()
1447 ixgbevf_update_itr(q_vector, &q_vector->tx); in ixgbevf_set_itr()
1448 ixgbevf_update_itr(q_vector, &q_vector->rx); in ixgbevf_set_itr()
1450 current_itr = max(q_vector->rx.itr, q_vector->tx.itr); in ixgbevf_set_itr()
1467 if (new_itr != q_vector->itr) { in ixgbevf_set_itr()
1469 new_itr = (10 * new_itr * q_vector->itr) / in ixgbevf_set_itr()
1470 ((9 * new_itr) + q_vector->itr); in ixgbevf_set_itr()
1473 q_vector->itr = new_itr; in ixgbevf_set_itr()
1475 ixgbevf_write_eitr(q_vector); in ixgbevf_set_itr()
1500 struct ixgbevf_q_vector *q_vector = data; in ixgbevf_msix_clean_rings() local
1503 if (q_vector->rx.ring || q_vector->tx.ring) in ixgbevf_msix_clean_rings()
1504 napi_schedule_irqoff(&q_vector->napi); in ixgbevf_msix_clean_rings()
1524 struct ixgbevf_q_vector *q_vector = adapter->q_vector[vector]; in ixgbevf_request_msix_irqs() local
1527 if (q_vector->tx.ring && q_vector->rx.ring) { in ixgbevf_request_msix_irqs()
1528 snprintf(q_vector->name, sizeof(q_vector->name), in ixgbevf_request_msix_irqs()
1531 } else if (q_vector->rx.ring) { in ixgbevf_request_msix_irqs()
1532 snprintf(q_vector->name, sizeof(q_vector->name), in ixgbevf_request_msix_irqs()
1534 } else if (q_vector->tx.ring) { in ixgbevf_request_msix_irqs()
1535 snprintf(q_vector->name, sizeof(q_vector->name), in ixgbevf_request_msix_irqs()
1542 q_vector->name, q_vector); in ixgbevf_request_msix_irqs()
1565 adapter->q_vector[vector]); in ixgbevf_request_msix_irqs()
1613 if (!adapter->q_vector[i]->rx.ring && in ixgbevf_free_irq()
1614 !adapter->q_vector[i]->tx.ring) in ixgbevf_free_irq()
1618 adapter->q_vector[i]); in ixgbevf_free_irq()
2132 struct ixgbevf_q_vector *q_vector; in ixgbevf_napi_enable_all() local
2136 q_vector = adapter->q_vector[q_idx]; in ixgbevf_napi_enable_all()
2137 napi_enable(&q_vector->napi); in ixgbevf_napi_enable_all()
2144 struct ixgbevf_q_vector *q_vector; in ixgbevf_napi_disable_all() local
2148 q_vector = adapter->q_vector[q_idx]; in ixgbevf_napi_disable_all()
2149 napi_disable(&q_vector->napi); in ixgbevf_napi_disable_all()
2683 struct ixgbevf_q_vector *q_vector; in ixgbevf_alloc_q_vector() local
2689 size = sizeof(*q_vector) + (sizeof(*ring) * ring_count); in ixgbevf_alloc_q_vector()
2692 q_vector = kzalloc(size, GFP_KERNEL); in ixgbevf_alloc_q_vector()
2693 if (!q_vector) in ixgbevf_alloc_q_vector()
2697 netif_napi_add(adapter->netdev, &q_vector->napi, ixgbevf_poll, 64); in ixgbevf_alloc_q_vector()
2700 adapter->q_vector[v_idx] = q_vector; in ixgbevf_alloc_q_vector()
2701 q_vector->adapter = adapter; in ixgbevf_alloc_q_vector()
2702 q_vector->v_idx = v_idx; in ixgbevf_alloc_q_vector()
2705 ring = q_vector->ring; in ixgbevf_alloc_q_vector()
2713 ring->q_vector = q_vector; in ixgbevf_alloc_q_vector()
2716 ixgbevf_add_ring(ring, &q_vector->tx); in ixgbevf_alloc_q_vector()
2741 ring->q_vector = q_vector; in ixgbevf_alloc_q_vector()
2744 ixgbevf_add_ring(ring, &q_vector->tx); in ixgbevf_alloc_q_vector()
2770 ring->q_vector = q_vector; in ixgbevf_alloc_q_vector()
2773 ixgbevf_add_ring(ring, &q_vector->rx); in ixgbevf_alloc_q_vector()
2805 struct ixgbevf_q_vector *q_vector = adapter->q_vector[v_idx]; in ixgbevf_free_q_vector() local
2808 ixgbevf_for_each_ring(ring, q_vector->tx) { in ixgbevf_free_q_vector()
2815 ixgbevf_for_each_ring(ring, q_vector->rx) in ixgbevf_free_q_vector()
2818 adapter->q_vector[v_idx] = NULL; in ixgbevf_free_q_vector()
2819 netif_napi_del(&q_vector->napi); in ixgbevf_free_q_vector()
2824 kfree_rcu(q_vector, rcu); in ixgbevf_free_q_vector()
3189 struct ixgbevf_q_vector *qv = adapter->q_vector[i]; in ixgbevf_check_hang_subtask()