Lines Matching defs:q_vector

405 	struct fm10k_intfc *interface = rx_ring->q_vector->interface;
595 * @q_vector: structure containing interrupt and ring information
598 static void fm10k_receive_skb(struct fm10k_q_vector *q_vector,
601 napi_gro_receive(&q_vector->napi, skb);
604 static bool fm10k_clean_rx_irq(struct fm10k_q_vector *q_vector,
654 fm10k_receive_skb(q_vector, skb);
670 q_vector->rx.total_packets += total_packets;
671 q_vector->rx.total_bytes += total_bytes;
1193 * @q_vector: structure containing interrupt and ring information
1196 static bool fm10k_clean_tx_irq(struct fm10k_q_vector *q_vector,
1199 struct fm10k_intfc *interface = q_vector->interface;
1203 unsigned int budget = q_vector->tx.work_limit;
1291 q_vector->tx.total_bytes += total_bytes;
1292 q_vector->tx.total_packets += total_packets;
1391 static void fm10k_qv_enable(struct fm10k_q_vector *q_vector)
1397 fm10k_update_itr(&q_vector->tx);
1400 fm10k_update_itr(&q_vector->rx);
1403 itr |= (q_vector->tx.itr & FM10K_ITR_MAX);
1406 itr |= (q_vector->rx.itr & FM10K_ITR_MAX) << FM10K_ITR_INTERVAL1_SHIFT;
1409 writel(itr, q_vector->itr);
1414 struct fm10k_q_vector *q_vector =
1420 fm10k_for_each_ring(ring, q_vector->tx)
1421 clean_complete &= fm10k_clean_tx_irq(q_vector, ring);
1426 if (q_vector->rx.count > 1)
1427 per_ring_budget = max(budget/q_vector->rx.count, 1);
1431 fm10k_for_each_ring(ring, q_vector->rx)
1432 clean_complete &= fm10k_clean_rx_irq(q_vector, ring,
1442 /* re-enable the q_vector */
1443 fm10k_qv_enable(q_vector);
1556 * We allocate one q_vector. If allocation fails we return -ENOMEM.
1563 struct fm10k_q_vector *q_vector;
1571 /* allocate q_vector and rings */
1572 q_vector = kzalloc(size, GFP_KERNEL);
1573 if (!q_vector)
1577 netif_napi_add(interface->netdev, &q_vector->napi,
1580 /* tie q_vector and interface together */
1581 interface->q_vector[v_idx] = q_vector;
1582 q_vector->interface = interface;
1583 q_vector->v_idx = v_idx;
1586 ring = q_vector->ring;
1589 q_vector->tx.ring = ring;
1590 q_vector->tx.work_limit = FM10K_DEFAULT_TX_WORK;
1591 q_vector->tx.itr = interface->tx_itr;
1592 q_vector->tx.count = txr_count;
1600 ring->q_vector = q_vector;
1618 q_vector->rx.ring = ring;
1619 q_vector->rx.itr = interface->rx_itr;
1620 q_vector->rx.count = rxr_count;
1629 ring->q_vector = q_vector;
1646 fm10k_dbg_q_vector_init(q_vector);
1656 * This function frees the memory allocated to the q_vector. In addition if
1658 * to freeing the q_vector.
1662 struct fm10k_q_vector *q_vector = interface->q_vector[v_idx];
1665 fm10k_dbg_q_vector_exit(q_vector);
1667 fm10k_for_each_ring(ring, q_vector->tx)
1670 fm10k_for_each_ring(ring, q_vector->rx)
1673 interface->q_vector[v_idx] = NULL;
1674 netif_napi_del(&q_vector->napi);
1675 kfree_rcu(q_vector, rcu);
1682 * We allocate one q_vector per queue interrupt. If allocation fails we
1743 * to freeing the q_vector.