Lines Matching refs:q_vector
109 static void ixgbevf_set_itr(struct ixgbevf_q_vector *q_vector);
264 static bool ixgbevf_clean_tx_irq(struct ixgbevf_q_vector *q_vector, in ixgbevf_clean_tx_irq() argument
267 struct ixgbevf_adapter *adapter = q_vector->adapter; in ixgbevf_clean_tx_irq()
363 q_vector->tx.total_bytes += total_bytes; in ixgbevf_clean_tx_irq()
364 q_vector->tx.total_packets += total_packets; in ixgbevf_clean_tx_irq()
429 static void ixgbevf_rx_skb(struct ixgbevf_q_vector *q_vector, in ixgbevf_rx_skb() argument
432 napi_gro_receive(&q_vector->napi, skb); in ixgbevf_rx_skb()
883 skb = napi_alloc_skb(&rx_ring->q_vector->napi, IXGBEVF_RX_HDR_SIZE); in ixgbevf_construct_skb()
1116 static int ixgbevf_clean_rx_irq(struct ixgbevf_q_vector *q_vector, in ixgbevf_clean_rx_irq() argument
1121 struct ixgbevf_adapter *adapter = q_vector->adapter; in ixgbevf_clean_rx_irq()
1229 ixgbevf_rx_skb(q_vector, skb); in ixgbevf_clean_rx_irq()
1256 q_vector->rx.total_packets += total_rx_packets; in ixgbevf_clean_rx_irq()
1257 q_vector->rx.total_bytes += total_rx_bytes; in ixgbevf_clean_rx_irq()
1272 struct ixgbevf_q_vector *q_vector = in ixgbevf_poll() local
1274 struct ixgbevf_adapter *adapter = q_vector->adapter; in ixgbevf_poll()
1279 ixgbevf_for_each_ring(ring, q_vector->tx) { in ixgbevf_poll()
1280 if (!ixgbevf_clean_tx_irq(q_vector, ring, budget)) in ixgbevf_poll()
1290 if (q_vector->rx.count > 1) in ixgbevf_poll()
1291 per_ring_budget = max(budget/q_vector->rx.count, 1); in ixgbevf_poll()
1295 ixgbevf_for_each_ring(ring, q_vector->rx) { in ixgbevf_poll()
1296 int cleaned = ixgbevf_clean_rx_irq(q_vector, ring, in ixgbevf_poll()
1312 ixgbevf_set_itr(q_vector); in ixgbevf_poll()
1316 BIT(q_vector->v_idx)); in ixgbevf_poll()
1326 void ixgbevf_write_eitr(struct ixgbevf_q_vector *q_vector) in ixgbevf_write_eitr() argument
1328 struct ixgbevf_adapter *adapter = q_vector->adapter; in ixgbevf_write_eitr()
1330 int v_idx = q_vector->v_idx; in ixgbevf_write_eitr()
1331 u32 itr_reg = q_vector->itr & IXGBE_MAX_EITR; in ixgbevf_write_eitr()
1350 struct ixgbevf_q_vector *q_vector; in ixgbevf_configure_msix() local
1362 q_vector = adapter->q_vector[v_idx]; in ixgbevf_configure_msix()
1364 ixgbevf_for_each_ring(ring, q_vector->rx) in ixgbevf_configure_msix()
1367 ixgbevf_for_each_ring(ring, q_vector->tx) in ixgbevf_configure_msix()
1370 if (q_vector->tx.ring && !q_vector->rx.ring) { in ixgbevf_configure_msix()
1373 q_vector->itr = IXGBE_12K_ITR; in ixgbevf_configure_msix()
1375 q_vector->itr = adapter->tx_itr_setting; in ixgbevf_configure_msix()
1379 q_vector->itr = IXGBE_20K_ITR; in ixgbevf_configure_msix()
1381 q_vector->itr = adapter->rx_itr_setting; in ixgbevf_configure_msix()
1387 ixgbevf_write_eitr(q_vector); in ixgbevf_configure_msix()
1416 static void ixgbevf_update_itr(struct ixgbevf_q_vector *q_vector, in ixgbevf_update_itr() argument
1434 timepassed_us = q_vector->itr >> 2; in ixgbevf_update_itr()
1465 static void ixgbevf_set_itr(struct ixgbevf_q_vector *q_vector) in ixgbevf_set_itr() argument
1467 u32 new_itr = q_vector->itr; in ixgbevf_set_itr()
1470 ixgbevf_update_itr(q_vector, &q_vector->tx); in ixgbevf_set_itr()
1471 ixgbevf_update_itr(q_vector, &q_vector->rx); in ixgbevf_set_itr()
1473 current_itr = max(q_vector->rx.itr, q_vector->tx.itr); in ixgbevf_set_itr()
1490 if (new_itr != q_vector->itr) { in ixgbevf_set_itr()
1492 new_itr = (10 * new_itr * q_vector->itr) / in ixgbevf_set_itr()
1493 ((9 * new_itr) + q_vector->itr); in ixgbevf_set_itr()
1496 q_vector->itr = new_itr; in ixgbevf_set_itr()
1498 ixgbevf_write_eitr(q_vector); in ixgbevf_set_itr()
1523 struct ixgbevf_q_vector *q_vector = data; in ixgbevf_msix_clean_rings() local
1526 if (q_vector->rx.ring || q_vector->tx.ring) in ixgbevf_msix_clean_rings()
1527 napi_schedule_irqoff(&q_vector->napi); in ixgbevf_msix_clean_rings()
1547 struct ixgbevf_q_vector *q_vector = adapter->q_vector[vector]; in ixgbevf_request_msix_irqs() local
1550 if (q_vector->tx.ring && q_vector->rx.ring) { in ixgbevf_request_msix_irqs()
1551 snprintf(q_vector->name, sizeof(q_vector->name), in ixgbevf_request_msix_irqs()
1554 } else if (q_vector->rx.ring) { in ixgbevf_request_msix_irqs()
1555 snprintf(q_vector->name, sizeof(q_vector->name), in ixgbevf_request_msix_irqs()
1557 } else if (q_vector->tx.ring) { in ixgbevf_request_msix_irqs()
1558 snprintf(q_vector->name, sizeof(q_vector->name), in ixgbevf_request_msix_irqs()
1565 q_vector->name, q_vector); in ixgbevf_request_msix_irqs()
1588 adapter->q_vector[vector]); in ixgbevf_request_msix_irqs()
1636 if (!adapter->q_vector[i]->rx.ring && in ixgbevf_free_irq()
1637 !adapter->q_vector[i]->tx.ring) in ixgbevf_free_irq()
1641 adapter->q_vector[i]); in ixgbevf_free_irq()
2150 struct ixgbevf_q_vector *q_vector; in ixgbevf_napi_enable_all() local
2154 q_vector = adapter->q_vector[q_idx]; in ixgbevf_napi_enable_all()
2155 napi_enable(&q_vector->napi); in ixgbevf_napi_enable_all()
2162 struct ixgbevf_q_vector *q_vector; in ixgbevf_napi_disable_all() local
2166 q_vector = adapter->q_vector[q_idx]; in ixgbevf_napi_disable_all()
2167 napi_disable(&q_vector->napi); in ixgbevf_napi_disable_all()
2706 struct ixgbevf_q_vector *q_vector; in ixgbevf_alloc_q_vector() local
2712 size = sizeof(*q_vector) + (sizeof(*ring) * ring_count); in ixgbevf_alloc_q_vector()
2715 q_vector = kzalloc(size, GFP_KERNEL); in ixgbevf_alloc_q_vector()
2716 if (!q_vector) in ixgbevf_alloc_q_vector()
2720 netif_napi_add(adapter->netdev, &q_vector->napi, ixgbevf_poll, 64); in ixgbevf_alloc_q_vector()
2723 adapter->q_vector[v_idx] = q_vector; in ixgbevf_alloc_q_vector()
2724 q_vector->adapter = adapter; in ixgbevf_alloc_q_vector()
2725 q_vector->v_idx = v_idx; in ixgbevf_alloc_q_vector()
2728 ring = q_vector->ring; in ixgbevf_alloc_q_vector()
2736 ring->q_vector = q_vector; in ixgbevf_alloc_q_vector()
2739 ixgbevf_add_ring(ring, &q_vector->tx); in ixgbevf_alloc_q_vector()
2764 ring->q_vector = q_vector; in ixgbevf_alloc_q_vector()
2767 ixgbevf_add_ring(ring, &q_vector->tx); in ixgbevf_alloc_q_vector()
2793 ring->q_vector = q_vector; in ixgbevf_alloc_q_vector()
2796 ixgbevf_add_ring(ring, &q_vector->rx); in ixgbevf_alloc_q_vector()
2828 struct ixgbevf_q_vector *q_vector = adapter->q_vector[v_idx]; in ixgbevf_free_q_vector() local
2831 ixgbevf_for_each_ring(ring, q_vector->tx) { in ixgbevf_free_q_vector()
2838 ixgbevf_for_each_ring(ring, q_vector->rx) in ixgbevf_free_q_vector()
2841 adapter->q_vector[v_idx] = NULL; in ixgbevf_free_q_vector()
2842 netif_napi_del(&q_vector->napi); in ixgbevf_free_q_vector()
2847 kfree_rcu(q_vector, rcu); in ixgbevf_free_q_vector()
3212 struct ixgbevf_q_vector *qv = adapter->q_vector[i]; in ixgbevf_check_hang_subtask()