| /linux/drivers/net/ethernet/intel/ice/ |
| H A D | ice_xsk.c | 231 napi_schedule(&vsi->rx_rings[qid]->xdp_ring->q_vector->napi); in ice_xsk_pool_setup() 362 static u32 ice_clean_xdp_irq_zc(struct ice_tx_ring *xdp_ring, in ice_clean_xdp_irq_zc() argument 365 u16 ntc = xdp_ring->next_to_clean; in ice_clean_xdp_irq_zc() 367 u16 cnt = xdp_ring->count; in ice_clean_xdp_irq_zc() 374 last_rs = xdp_ring->next_to_use ? xdp_ring->next_to_use - 1 : cnt - 1; in ice_clean_xdp_irq_zc() 375 tx_desc = ICE_TX_DESC(xdp_ring, last_rs); in ice_clean_xdp_irq_zc() 387 if (likely(!xdp_ring->xdp_tx_active)) { in ice_clean_xdp_irq_zc() 392 ntc = xdp_ring->next_to_clean; in ice_clean_xdp_irq_zc() 394 tx_buf = &xdp_ring->tx_buf[ntc]; in ice_clean_xdp_irq_zc() 399 xdp_ring->xdp_tx_active--; in ice_clean_xdp_irq_zc() [all …]
|
| H A D | ice_txrx.c | 653 struct bpf_prog *xdp_prog, struct ice_tx_ring *xdp_ring, in ice_run_xdp() argument 670 spin_lock(&xdp_ring->tx_lock); in ice_run_xdp() 671 ret = __ice_xmit_xdp_ring(&xdp->base, xdp_ring, false); in ice_run_xdp() 673 spin_unlock(&xdp_ring->tx_lock); in ice_run_xdp() 704 struct ice_tx_ring *xdp_ring) in ice_xmit_xdp_ring() argument 714 return __ice_xmit_xdp_ring(&xdp, xdp_ring, true); in ice_xmit_xdp_ring() 736 struct ice_tx_ring *xdp_ring; in ice_xdp_xmit() local 751 xdp_ring = vsi->xdp_rings[queue_index]; in ice_xdp_xmit() 752 spin_lock(&xdp_ring->tx_lock); in ice_xdp_xmit() 757 xdp_ring = vsi->xdp_rings[queue_index]; in ice_xdp_xmit() [all …]
|
| H A D | ice_base.c | 1464 struct ice_tx_ring *xdp_ring = vsi->xdp_rings[q_idx]; in ice_qp_dis() local 1467 ice_fill_txq_meta(vsi, xdp_ring, &txq_meta); in ice_qp_dis() 1468 err = ice_vsi_stop_tx_ring(vsi, ICE_NO_RESET, 0, xdp_ring, in ice_qp_dis() 1500 struct ice_tx_ring *xdp_ring = vsi->xdp_rings[q_idx]; in ice_qp_ena() local 1505 ice_set_ring_xdp(xdp_ring); in ice_qp_ena()
|
| H A D | ice_main.c | 2537 struct ice_tx_ring *xdp_ring; in ice_xdp_alloc_setup_rings() local 2539 xdp_ring = kzalloc_obj(*xdp_ring); in ice_xdp_alloc_setup_rings() 2540 if (!xdp_ring) in ice_xdp_alloc_setup_rings() 2545 ice_free_tx_ring(xdp_ring); in ice_xdp_alloc_setup_rings() 2549 xdp_ring->ring_stats = ring_stats; in ice_xdp_alloc_setup_rings() 2550 xdp_ring->q_index = xdp_q_idx; in ice_xdp_alloc_setup_rings() 2551 xdp_ring->reg_idx = vsi->txq_map[xdp_q_idx]; in ice_xdp_alloc_setup_rings() 2552 xdp_ring->vsi = vsi; in ice_xdp_alloc_setup_rings() 2553 xdp_ring->netdev = NULL; in ice_xdp_alloc_setup_rings() 2554 xdp_ring->dev = dev; in ice_xdp_alloc_setup_rings() [all …]
|
| H A D | ice.h | 835 ring = vsi->rx_rings[qid]->xdp_ring; in ice_tx_xsk_pool()
|
| /linux/drivers/net/ethernet/intel/i40e/ |
| H A D | i40e_xsk.c | 202 struct i40e_ring *xdp_ring; in i40e_run_xdp_zc() local 222 xdp_ring = rx_ring->vsi->xdp_rings[rx_ring->queue_index]; in i40e_run_xdp_zc() 223 result = i40e_xmit_xdp_tx_ring(xdp, xdp_ring); in i40e_run_xdp_zc() 508 static void i40e_xmit_pkt(struct i40e_ring *xdp_ring, struct xdp_desc *desc, in i40e_xmit_pkt() argument 515 dma = xsk_buff_raw_get_dma(xdp_ring->xsk_pool, desc->addr); in i40e_xmit_pkt() 516 xsk_buff_raw_dma_sync_for_device(xdp_ring->xsk_pool, dma, desc->len); in i40e_xmit_pkt() 518 tx_desc = I40E_TX_DESC(xdp_ring, xdp_ring->next_to_use++); in i40e_xmit_pkt() 525 static void i40e_xmit_pkt_batch(struct i40e_ring *xdp_ring, struct xdp_desc *desc, in i40e_xmit_pkt_batch() argument 528 u16 ntu = xdp_ring->next_to_use; in i40e_xmit_pkt_batch() 537 dma = xsk_buff_raw_get_dma(xdp_ring->xsk_pool, desc[i].addr); in i40e_xmit_pkt_batch() [all …]
|
| H A D | i40e_txrx.c | 2245 struct i40e_ring *xdp_ring); 2247 int i40e_xmit_xdp_tx_ring(struct xdp_buff *xdp, struct i40e_ring *xdp_ring) in i40e_xmit_xdp_tx_ring() argument 2254 return i40e_xmit_xdp_ring(xdpf, xdp_ring); in i40e_xmit_xdp_tx_ring() 2266 struct i40e_ring *xdp_ring; in i40e_run_xdp() local 2279 xdp_ring = rx_ring->vsi->xdp_rings[rx_ring->queue_index]; in i40e_run_xdp() 2280 result = i40e_xmit_xdp_tx_ring(xdp, xdp_ring); in i40e_run_xdp() 2311 void i40e_xdp_ring_update_tail(struct i40e_ring *xdp_ring) in i40e_xdp_ring_update_tail() argument 2317 writel_relaxed(xdp_ring->next_to_use, xdp_ring->tail); in i40e_xdp_ring_update_tail() 2355 struct i40e_ring *xdp_ring = in i40e_finalize_xdp_rx() local 2358 i40e_xdp_ring_update_tail(xdp_ring); in i40e_finalize_xdp_rx() [all …]
|
| H A D | i40e_txrx_common.h | 9 int i40e_xmit_xdp_tx_ring(struct xdp_buff *xdp, struct i40e_ring *xdp_ring); 14 void i40e_xdp_ring_update_tail(struct i40e_ring *xdp_ring);
|
| H A D | i40e_debugfs.c | 272 struct i40e_ring *xdp_ring = READ_ONCE(vsi->xdp_rings[i]); in i40e_dbg_dump_vsi_seid() local 274 if (!xdp_ring) in i40e_dbg_dump_vsi_seid() 279 i, *xdp_ring->state, in i40e_dbg_dump_vsi_seid() 280 xdp_ring->queue_index, in i40e_dbg_dump_vsi_seid() 281 xdp_ring->reg_idx); in i40e_dbg_dump_vsi_seid() 285 xdp_ring->next_to_use, in i40e_dbg_dump_vsi_seid() 286 xdp_ring->next_to_clean, in i40e_dbg_dump_vsi_seid() 287 xdp_ring->ring_active); in i40e_dbg_dump_vsi_seid() 290 i, xdp_ring->stats.packets, in i40e_dbg_dump_vsi_seid() 291 xdp_ring->stats.bytes, in i40e_dbg_dump_vsi_seid() [all …]
|
| H A D | i40e_main.c | 4543 struct i40e_ring *xdp_ring = vsi->xdp_rings[qp_idx]; in i40e_map_vector_to_qp() local 4545 xdp_ring->q_vector = q_vector; in i40e_map_vector_to_qp() 4546 xdp_ring->next = q_vector->tx.ring; in i40e_map_vector_to_qp() 4547 q_vector->tx.ring = xdp_ring; in i40e_map_vector_to_qp()
|
| /linux/drivers/net/ethernet/amazon/ena/ |
| H A D | ena_xdp.h | 86 struct ena_ring *xdp_ring; in ena_xdp_execute() local 105 xdp_ring = rx_ring->xdp_ring; in ena_xdp_execute() 108 spin_lock(&xdp_ring->xdp_tx_lock); in ena_xdp_execute() 110 if (ena_xdp_xmit_frame(xdp_ring, rx_ring->adapter, xdpf, in ena_xdp_execute() 114 spin_unlock(&xdp_ring->xdp_tx_lock); in ena_xdp_execute()
|
| H A D | ena_netdev.h | 247 struct ena_ring *xdp_ring; member
|
| H A D | ena_netdev.c | 223 rxr->xdp_ring = &adapter->tx_ring[i + adapter->num_io_queues]; in ena_init_io_rings()
|
| /linux/net/xdp/ |
| H A D | xsk_queue.h | 16 struct xdp_ring { struct 30 struct xdp_ring ptrs; argument 36 struct xdp_ring ptrs; 45 struct xdp_ring *ring;
|
| /linux/drivers/net/ |
| H A D | veth.c | 69 struct ptr_ring xdp_ring; member 314 if (unlikely(ptr_ring_produce(&rq->xdp_ring, skb))) in veth_xdp_rx() 531 spin_lock(&rq->xdp_ring.producer_lock); in veth_xdp_xmit() 537 __ptr_ring_produce(&rq->xdp_ring, ptr))) in veth_xdp_xmit() 541 spin_unlock(&rq->xdp_ring.producer_lock); in veth_xdp_xmit() 909 void *ptr = __ptr_ring_consume(&rq->xdp_ring); in veth_xdp_rcv() 990 if (unlikely(!__ptr_ring_empty(&rq->xdp_ring))) { in veth_poll() 1042 err = ptr_ring_init(&rq->xdp_ring, VETH_RING_SIZE, GFP_KERNEL); in __veth_napi_enable_range() 1058 ptr_ring_cleanup(&priv->rq[i].xdp_ring, veth_ptr_free); in __veth_napi_enable_range() 1092 ptr_ring_cleanup(&rq->xdp_ring, veth_ptr_free); in veth_napi_del_range()
|
| /linux/drivers/net/ethernet/intel/ixgbevf/ |
| H A D | ixgbevf_main.c | 1053 struct ixgbevf_ring *xdp_ring; in ixgbevf_run_xdp() local 1067 xdp_ring = adapter->xdp_ring[rx_ring->queue_index]; in ixgbevf_run_xdp() 1068 result = ixgbevf_xmit_xdp_ring(xdp_ring, xdp); in ixgbevf_run_xdp() 1243 struct ixgbevf_ring *xdp_ring = in ixgbevf_clean_rx_irq() local 1244 adapter->xdp_ring[rx_ring->queue_index]; in ixgbevf_clean_rx_irq() 1250 ixgbevf_write_tail(xdp_ring, xdp_ring->next_to_use); in ixgbevf_clean_rx_irq() 1763 ixgbevf_configure_tx_ring(adapter, adapter->xdp_ring[i]); in ixgbevf_configure_tx() 2516 ixgbevf_clean_tx_ring(adapter->xdp_ring[i]); in ixgbevf_clean_all_tx_rings() 2556 u8 reg_idx = adapter->xdp_ring[i]->reg_idx; in ixgbevf_down() 2829 adapter->xdp_ring[xdp_idx] = ring; in ixgbevf_alloc_q_vector() [all …]
|
| H A D | ixgbevf.h | 320 struct ixgbevf_ring *xdp_ring[MAX_XDP_QUEUES]; member
|
| /linux/drivers/net/ethernet/intel/ixgbe/ |
| H A D | ixgbe_main.c | 634 ring = adapter->xdp_ring[n]; in ixgbe_dump() 1018 struct ixgbe_ring *xdp_ring = adapter->xdp_ring[i]; in ixgbe_update_xoff_received() local 1020 tc = xdp_ring->dcb_tc; in ixgbe_update_xoff_received() 1022 clear_bit(__IXGBE_HANG_CHECK_ARMED, xdp_ring->state); in ixgbe_update_xoff_received() 4073 ixgbe_configure_tx_ring(adapter, adapter->xdp_ring[i]); in ixgbe_configure_tx() 6442 struct ixgbe_ring *ring = adapter->xdp_ring[i]; in ixgbe_disable_tx() 6489 struct ixgbe_ring *ring = adapter->xdp_ring[i]; in ixgbe_disable_tx() 6677 ixgbe_clean_tx_ring(adapter->xdp_ring[i]); in ixgbe_clean_all_tx_rings() 6718 if (adapter->xdp_ring[0]) in ixgbe_down() 7135 err = ixgbe_setup_tx_resources(adapter->xdp_ring[j]); in ixgbe_setup_all_tx_resources() [all …]
|
| H A D | ixgbe.h | 703 struct ixgbe_ring *xdp_ring[IXGBE_MAX_XDP_QS]; member 874 return adapter->xdp_ring[index]; in ixgbe_determine_xdp_ring()
|
| H A D | ixgbe_ethtool.c | 1272 adapter->xdp_ring[i]->count = new_tx_count; in ixgbe_set_ringparam() 1316 memcpy(&temp_ring[i], adapter->xdp_ring[j], in ixgbe_set_ringparam() 1337 ixgbe_free_tx_resources(adapter->xdp_ring[j]); in ixgbe_set_ringparam() 1339 memcpy(adapter->xdp_ring[j], &temp_ring[i], in ixgbe_set_ringparam()
|
| /linux/drivers/net/ethernet/netronome/nfp/ |
| H A D | nfp_net_debugfs.c | 90 tx_ring = r_vec->xdp_ring; in __nfp_tx_q_show()
|
| H A D | nfp_net.h | 419 struct nfp_net_tx_ring *xdp_ring; member
|
| H A D | nfp_net_common.c | 799 r_vec->xdp_ring = idx < dp->num_tx_rings - dp->num_stack_tx_rings ? in nfp_net_vector_assign_rings()
|
| /linux/Documentation/networking/ |
| H A D | af_xdp.rst | 139 writes the data ring at the index pointed out by struct xdp_ring 141 the data ring at the index pointed out by struct xdp_ring consumer
|