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()
888 skb = napi_alloc_skb(&rx_ring->q_vector->napi, IXGBEVF_RX_HDR_SIZE); in ixgbevf_construct_skb()
1120 static int ixgbevf_clean_rx_irq(struct ixgbevf_q_vector *q_vector, in ixgbevf_clean_rx_irq() argument
1125 struct ixgbevf_adapter *adapter = q_vector->adapter; in ixgbevf_clean_rx_irq()
1234 ixgbevf_rx_skb(q_vector, skb); in ixgbevf_clean_rx_irq()
1261 q_vector->rx.total_packets += total_rx_packets; in ixgbevf_clean_rx_irq()
1262 q_vector->rx.total_bytes += total_rx_bytes; in ixgbevf_clean_rx_irq()
1277 struct ixgbevf_q_vector *q_vector = in ixgbevf_poll() local
1279 struct ixgbevf_adapter *adapter = q_vector->adapter; in ixgbevf_poll()
1284 ixgbevf_for_each_ring(ring, q_vector->tx) { in ixgbevf_poll()
1285 if (!ixgbevf_clean_tx_irq(q_vector, ring, budget)) in ixgbevf_poll()
1295 if (q_vector->rx.count > 1) in ixgbevf_poll()
1296 per_ring_budget = max(budget/q_vector->rx.count, 1); in ixgbevf_poll()
1300 ixgbevf_for_each_ring(ring, q_vector->rx) { in ixgbevf_poll()
1301 int cleaned = ixgbevf_clean_rx_irq(q_vector, ring, in ixgbevf_poll()
1317 ixgbevf_set_itr(q_vector); in ixgbevf_poll()
1321 BIT(q_vector->v_idx)); in ixgbevf_poll()
1331 void ixgbevf_write_eitr(struct ixgbevf_q_vector *q_vector) in ixgbevf_write_eitr() argument
1333 struct ixgbevf_adapter *adapter = q_vector->adapter; in ixgbevf_write_eitr()
1335 int v_idx = q_vector->v_idx; in ixgbevf_write_eitr()
1336 u32 itr_reg = q_vector->itr & IXGBE_MAX_EITR; in ixgbevf_write_eitr()
1355 struct ixgbevf_q_vector *q_vector; in ixgbevf_configure_msix() local
1367 q_vector = adapter->q_vector[v_idx]; in ixgbevf_configure_msix()
1369 ixgbevf_for_each_ring(ring, q_vector->rx) in ixgbevf_configure_msix()
1372 ixgbevf_for_each_ring(ring, q_vector->tx) in ixgbevf_configure_msix()
1375 if (q_vector->tx.ring && !q_vector->rx.ring) { in ixgbevf_configure_msix()
1378 q_vector->itr = IXGBE_12K_ITR; in ixgbevf_configure_msix()
1380 q_vector->itr = adapter->tx_itr_setting; in ixgbevf_configure_msix()
1384 q_vector->itr = IXGBE_20K_ITR; in ixgbevf_configure_msix()
1386 q_vector->itr = adapter->rx_itr_setting; in ixgbevf_configure_msix()
1392 ixgbevf_write_eitr(q_vector); in ixgbevf_configure_msix()
1421 static void ixgbevf_update_itr(struct ixgbevf_q_vector *q_vector, in ixgbevf_update_itr() argument
1439 timepassed_us = q_vector->itr >> 2; in ixgbevf_update_itr()
1470 static void ixgbevf_set_itr(struct ixgbevf_q_vector *q_vector) in ixgbevf_set_itr() argument
1472 u32 new_itr = q_vector->itr; in ixgbevf_set_itr()
1475 ixgbevf_update_itr(q_vector, &q_vector->tx); in ixgbevf_set_itr()
1476 ixgbevf_update_itr(q_vector, &q_vector->rx); in ixgbevf_set_itr()
1478 current_itr = max(q_vector->rx.itr, q_vector->tx.itr); in ixgbevf_set_itr()
1495 if (new_itr != q_vector->itr) { in ixgbevf_set_itr()
1497 new_itr = (10 * new_itr * q_vector->itr) / in ixgbevf_set_itr()
1498 ((9 * new_itr) + q_vector->itr); in ixgbevf_set_itr()
1501 q_vector->itr = new_itr; in ixgbevf_set_itr()
1503 ixgbevf_write_eitr(q_vector); in ixgbevf_set_itr()
1528 struct ixgbevf_q_vector *q_vector = data; in ixgbevf_msix_clean_rings() local
1531 if (q_vector->rx.ring || q_vector->tx.ring) in ixgbevf_msix_clean_rings()
1532 napi_schedule_irqoff(&q_vector->napi); in ixgbevf_msix_clean_rings()
1552 struct ixgbevf_q_vector *q_vector = adapter->q_vector[vector]; in ixgbevf_request_msix_irqs() local
1555 if (q_vector->tx.ring && q_vector->rx.ring) { in ixgbevf_request_msix_irqs()
1556 snprintf(q_vector->name, sizeof(q_vector->name), in ixgbevf_request_msix_irqs()
1559 } else if (q_vector->rx.ring) { in ixgbevf_request_msix_irqs()
1560 snprintf(q_vector->name, sizeof(q_vector->name), in ixgbevf_request_msix_irqs()
1562 } else if (q_vector->tx.ring) { in ixgbevf_request_msix_irqs()
1563 snprintf(q_vector->name, sizeof(q_vector->name), in ixgbevf_request_msix_irqs()
1570 q_vector->name, q_vector); in ixgbevf_request_msix_irqs()
1593 adapter->q_vector[vector]); in ixgbevf_request_msix_irqs()
1641 if (!adapter->q_vector[i]->rx.ring && in ixgbevf_free_irq()
1642 !adapter->q_vector[i]->tx.ring) in ixgbevf_free_irq()
1646 adapter->q_vector[i]); in ixgbevf_free_irq()
2155 struct ixgbevf_q_vector *q_vector; in ixgbevf_napi_enable_all() local
2159 q_vector = adapter->q_vector[q_idx]; in ixgbevf_napi_enable_all()
2160 napi_enable(&q_vector->napi); in ixgbevf_napi_enable_all()
2167 struct ixgbevf_q_vector *q_vector; in ixgbevf_napi_disable_all() local
2171 q_vector = adapter->q_vector[q_idx]; in ixgbevf_napi_disable_all()
2172 napi_disable(&q_vector->napi); in ixgbevf_napi_disable_all()
2710 struct ixgbevf_q_vector *q_vector; in ixgbevf_alloc_q_vector() local
2716 size = sizeof(*q_vector) + (sizeof(*ring) * ring_count); in ixgbevf_alloc_q_vector()
2719 q_vector = kzalloc(size, GFP_KERNEL); in ixgbevf_alloc_q_vector()
2720 if (!q_vector) in ixgbevf_alloc_q_vector()
2724 netif_napi_add(adapter->netdev, &q_vector->napi, ixgbevf_poll, 64); in ixgbevf_alloc_q_vector()
2727 adapter->q_vector[v_idx] = q_vector; in ixgbevf_alloc_q_vector()
2728 q_vector->adapter = adapter; in ixgbevf_alloc_q_vector()
2729 q_vector->v_idx = v_idx; in ixgbevf_alloc_q_vector()
2732 ring = q_vector->ring; in ixgbevf_alloc_q_vector()
2740 ring->q_vector = q_vector; in ixgbevf_alloc_q_vector()
2743 ixgbevf_add_ring(ring, &q_vector->tx); in ixgbevf_alloc_q_vector()
2768 ring->q_vector = q_vector; in ixgbevf_alloc_q_vector()
2771 ixgbevf_add_ring(ring, &q_vector->tx); in ixgbevf_alloc_q_vector()
2797 ring->q_vector = q_vector; in ixgbevf_alloc_q_vector()
2800 ixgbevf_add_ring(ring, &q_vector->rx); in ixgbevf_alloc_q_vector()
2832 struct ixgbevf_q_vector *q_vector = adapter->q_vector[v_idx]; in ixgbevf_free_q_vector() local
2835 ixgbevf_for_each_ring(ring, q_vector->tx) { in ixgbevf_free_q_vector()
2842 ixgbevf_for_each_ring(ring, q_vector->rx) in ixgbevf_free_q_vector()
2845 adapter->q_vector[v_idx] = NULL; in ixgbevf_free_q_vector()
2846 netif_napi_del(&q_vector->napi); in ixgbevf_free_q_vector()
2851 kfree_rcu(q_vector, rcu); in ixgbevf_free_q_vector()
3216 struct ixgbevf_q_vector *qv = adapter->q_vector[i]; in ixgbevf_check_hang_subtask()