Lines Matching refs:q_vector
1092 static bool ixgbe_clean_tx_irq(struct ixgbe_q_vector *q_vector, in ixgbe_clean_tx_irq() argument
1095 struct ixgbe_adapter *adapter = q_vector->adapter; in ixgbe_clean_tx_irq()
1099 unsigned int budget = q_vector->tx.work_limit; in ixgbe_clean_tx_irq()
1187 q_vector->tx.total_bytes += total_bytes; in ixgbe_clean_tx_irq()
1188 q_vector->tx.total_packets += total_packets; in ixgbe_clean_tx_irq()
1312 static void ixgbe_update_dca(struct ixgbe_q_vector *q_vector) in ixgbe_update_dca() argument
1314 struct ixgbe_adapter *adapter = q_vector->adapter; in ixgbe_update_dca()
1318 if (q_vector->cpu == cpu) in ixgbe_update_dca()
1321 ixgbe_for_each_ring(ring, q_vector->tx) in ixgbe_update_dca()
1324 ixgbe_for_each_ring(ring, q_vector->rx) in ixgbe_update_dca()
1327 q_vector->cpu = cpu; in ixgbe_update_dca()
1345 adapter->q_vector[i]->cpu = -1; in ixgbe_setup_dca()
1346 ixgbe_update_dca(adapter->q_vector[i]); in ixgbe_setup_dca()
1646 ixgbe_ptp_rx_hwtstamp(rx_ring->q_vector->adapter, skb); in ixgbe_process_skb_fields()
1659 static void ixgbe_rx_skb(struct ixgbe_q_vector *q_vector, in ixgbe_rx_skb() argument
1662 if (ixgbe_qv_busy_polling(q_vector)) in ixgbe_rx_skb()
1665 napi_gro_receive(&q_vector->napi, skb); in ixgbe_rx_skb()
1973 skb = napi_alloc_skb(&rx_ring->q_vector->napi, in ixgbe_fetch_rx_buffer()
2045 static int ixgbe_clean_rx_irq(struct ixgbe_q_vector *q_vector, in ixgbe_clean_rx_irq() argument
2051 struct ixgbe_adapter *adapter = q_vector->adapter; in ixgbe_clean_rx_irq()
2126 skb_mark_napi_id(skb, &q_vector->napi); in ixgbe_clean_rx_irq()
2127 ixgbe_rx_skb(q_vector, skb); in ixgbe_clean_rx_irq()
2137 q_vector->rx.total_packets += total_rx_packets; in ixgbe_clean_rx_irq()
2138 q_vector->rx.total_bytes += total_rx_bytes; in ixgbe_clean_rx_irq()
2147 struct ixgbe_q_vector *q_vector = in ixgbe_low_latency_recv() local
2149 struct ixgbe_adapter *adapter = q_vector->adapter; in ixgbe_low_latency_recv()
2156 if (!ixgbe_qv_lock_poll(q_vector)) in ixgbe_low_latency_recv()
2159 ixgbe_for_each_ring(ring, q_vector->rx) { in ixgbe_low_latency_recv()
2160 found = ixgbe_clean_rx_irq(q_vector, ring, 4); in ixgbe_low_latency_recv()
2171 ixgbe_qv_unlock_poll(q_vector); in ixgbe_low_latency_recv()
2186 struct ixgbe_q_vector *q_vector; in ixgbe_configure_msix() local
2202 q_vector = adapter->q_vector[v_idx]; in ixgbe_configure_msix()
2204 ixgbe_for_each_ring(ring, q_vector->rx) in ixgbe_configure_msix()
2207 ixgbe_for_each_ring(ring, q_vector->tx) in ixgbe_configure_msix()
2210 ixgbe_write_eitr(q_vector); in ixgbe_configure_msix()
2260 static void ixgbe_update_itr(struct ixgbe_q_vector *q_vector, in ixgbe_update_itr() argument
2278 timepassed_us = q_vector->itr >> 2; in ixgbe_update_itr()
2317 void ixgbe_write_eitr(struct ixgbe_q_vector *q_vector) in ixgbe_write_eitr() argument
2319 struct ixgbe_adapter *adapter = q_vector->adapter; in ixgbe_write_eitr()
2321 int v_idx = q_vector->v_idx; in ixgbe_write_eitr()
2322 u32 itr_reg = q_vector->itr & IXGBE_MAX_EITR; in ixgbe_write_eitr()
2345 static void ixgbe_set_itr(struct ixgbe_q_vector *q_vector) in ixgbe_set_itr() argument
2347 u32 new_itr = q_vector->itr; in ixgbe_set_itr()
2350 ixgbe_update_itr(q_vector, &q_vector->tx); in ixgbe_set_itr()
2351 ixgbe_update_itr(q_vector, &q_vector->rx); in ixgbe_set_itr()
2353 current_itr = max(q_vector->rx.itr, q_vector->tx.itr); in ixgbe_set_itr()
2370 if (new_itr != q_vector->itr) { in ixgbe_set_itr()
2372 new_itr = (10 * new_itr * q_vector->itr) / in ixgbe_set_itr()
2373 ((9 * new_itr) + q_vector->itr); in ixgbe_set_itr()
2376 q_vector->itr = new_itr; in ixgbe_set_itr()
2378 ixgbe_write_eitr(q_vector); in ixgbe_set_itr()
2755 struct ixgbe_q_vector *q_vector = data; in ixgbe_msix_clean_rings() local
2759 if (q_vector->rx.ring || q_vector->tx.ring) in ixgbe_msix_clean_rings()
2760 napi_schedule(&q_vector->napi); in ixgbe_msix_clean_rings()
2774 struct ixgbe_q_vector *q_vector = in ixgbe_poll() local
2776 struct ixgbe_adapter *adapter = q_vector->adapter; in ixgbe_poll()
2783 ixgbe_update_dca(q_vector); in ixgbe_poll()
2786 ixgbe_for_each_ring(ring, q_vector->tx) in ixgbe_poll()
2787 clean_complete &= !!ixgbe_clean_tx_irq(q_vector, ring); in ixgbe_poll()
2789 if (!ixgbe_qv_lock_napi(q_vector)) in ixgbe_poll()
2794 if (q_vector->rx.count > 1) in ixgbe_poll()
2795 per_ring_budget = max(budget/q_vector->rx.count, 1); in ixgbe_poll()
2799 ixgbe_for_each_ring(ring, q_vector->rx) { in ixgbe_poll()
2800 int cleaned = ixgbe_clean_rx_irq(q_vector, ring, in ixgbe_poll()
2807 ixgbe_qv_unlock_napi(q_vector); in ixgbe_poll()
2815 ixgbe_set_itr(q_vector); in ixgbe_poll()
2817 ixgbe_irq_enable_queues(adapter, ((u64)1 << q_vector->v_idx)); in ixgbe_poll()
2836 struct ixgbe_q_vector *q_vector = adapter->q_vector[vector]; in ixgbe_request_msix_irqs() local
2839 if (q_vector->tx.ring && q_vector->rx.ring) { in ixgbe_request_msix_irqs()
2840 snprintf(q_vector->name, sizeof(q_vector->name) - 1, in ixgbe_request_msix_irqs()
2843 } else if (q_vector->rx.ring) { in ixgbe_request_msix_irqs()
2844 snprintf(q_vector->name, sizeof(q_vector->name) - 1, in ixgbe_request_msix_irqs()
2846 } else if (q_vector->tx.ring) { in ixgbe_request_msix_irqs()
2847 snprintf(q_vector->name, sizeof(q_vector->name) - 1, in ixgbe_request_msix_irqs()
2854 q_vector->name, q_vector); in ixgbe_request_msix_irqs()
2864 &q_vector->affinity_mask); in ixgbe_request_msix_irqs()
2883 adapter->q_vector[vector]); in ixgbe_request_msix_irqs()
2901 struct ixgbe_q_vector *q_vector = adapter->q_vector[0]; in ixgbe_intr() local
2953 napi_schedule(&q_vector->napi); in ixgbe_intr()
3002 struct ixgbe_q_vector *q_vector = adapter->q_vector[vector]; in ixgbe_free_irq() local
3006 if (!q_vector->rx.ring && !q_vector->tx.ring) in ixgbe_free_irq()
3012 free_irq(entry->vector, q_vector); in ixgbe_free_irq()
3058 struct ixgbe_q_vector *q_vector = adapter->q_vector[0]; in ixgbe_configure_msi_and_legacy() local
3060 ixgbe_write_eitr(q_vector); in ixgbe_configure_msi_and_legacy()
3107 if (!ring->q_vector || (ring->q_vector->itr < IXGBE_100K_ITR)) in ixgbe_configure_tx_ring()
3130 struct ixgbe_q_vector *q_vector = ring->q_vector; in ixgbe_configure_tx_ring() local
3132 if (q_vector) in ixgbe_configure_tx_ring()
3134 &q_vector->affinity_mask, in ixgbe_configure_tx_ring()
4292 ixgbe_qv_init_lock(adapter->q_vector[q_idx]); in ixgbe_napi_enable_all()
4293 napi_enable(&adapter->q_vector[q_idx]->napi); in ixgbe_napi_enable_all()
4302 napi_disable(&adapter->q_vector[q_idx]->napi); in ixgbe_napi_disable_all()
4303 while (!ixgbe_qv_disable(adapter->q_vector[q_idx])) { in ixgbe_napi_disable_all()
5486 if (tx_ring->q_vector) in ixgbe_setup_tx_resources()
5487 ring_node = tx_ring->q_vector->numa_node; in ixgbe_setup_tx_resources()
5570 if (rx_ring->q_vector) in ixgbe_setup_rx_resources()
5571 ring_node = rx_ring->q_vector->numa_node; in ixgbe_setup_rx_resources()
6340 struct ixgbe_q_vector *qv = adapter->q_vector[i]; in ixgbe_check_hang_subtask()
7333 struct ixgbe_q_vector *q_vector = ring->q_vector; in ixgbe_atr() local
7349 if (!q_vector) in ixgbe_atr()
7363 struct ixgbe_adapter *adapter = q_vector->adapter; in ixgbe_atr()
7443 ixgbe_fdir_add_signature_filter_82599(&q_vector->adapter->hw, in ixgbe_atr()
7778 ixgbe_msix_clean_rings(0, adapter->q_vector[i]); in ixgbe_netpoll()