| /linux/drivers/net/ethernet/intel/ice/ |
| A D | ice_txrx_lib.c | 251 if (ntc >= xdp_ring->count) in ice_clean_xdp_irq() 256 xdp_ring->next_dd = xdp_ring->next_dd + ICE_TX_THRESH; in ice_clean_xdp_irq() 257 if (xdp_ring->next_dd > xdp_ring->count) in ice_clean_xdp_irq() 259 xdp_ring->next_to_clean = ntc; in ice_clean_xdp_irq() 271 u16 i = xdp_ring->next_to_use; in ice_xmit_xdp_ring() 277 ice_clean_xdp_irq(xdp_ring); in ice_xmit_xdp_ring() 303 if (i == xdp_ring->count) { in ice_xmit_xdp_ring() 305 tx_desc = ICE_TX_DESC(xdp_ring, xdp_ring->next_rs); in ice_xmit_xdp_ring() 310 xdp_ring->next_to_use = i; in ice_xmit_xdp_ring() 312 if (i > xdp_ring->next_rs) { in ice_xmit_xdp_ring() [all …]
|
| A D | ice_xsk.c | 243 ice_set_ring_xdp(xdp_ring); in ice_qp_ena() 244 xdp_ring->xsk_pool = ice_tx_xsk_pool(xdp_ring); in ice_qp_ena() 517 xdp_ring = rx_ring->xdp_ring; in ice_clean_rx_irq_zc() 637 tx_buf = &xdp_ring->tx_buf[xdp_ring->next_to_use]; in ice_xmit_zc() 648 tx_desc = ICE_TX_DESC(xdp_ring, xdp_ring->next_to_use); in ice_xmit_zc() 653 xdp_ring->next_to_use++; in ice_xmit_zc() 654 if (xdp_ring->next_to_use == xdp_ring->count) in ice_xmit_zc() 698 ntc -= xdp_ring->count; in ice_clean_tx_irq_zc() 721 ntc -= xdp_ring->count; in ice_clean_tx_irq_zc() 730 ntc += xdp_ring->count; in ice_clean_tx_irq_zc() [all …]
|
| A D | ice_txrx_lib.h | 40 static inline void ice_xdp_ring_update_tail(struct ice_tx_ring *xdp_ring) in ice_xdp_ring_update_tail() argument 46 writel_relaxed(xdp_ring->next_to_use, xdp_ring->tail); in ice_xdp_ring_update_tail() 49 void ice_finalize_xdp_rx(struct ice_tx_ring *xdp_ring, unsigned int xdp_res); 50 int ice_xmit_xdp_buff(struct xdp_buff *xdp, struct ice_tx_ring *xdp_ring); 51 int ice_xmit_xdp_ring(void *data, u16 size, struct ice_tx_ring *xdp_ring);
|
| A D | ice_xsk.h | 15 bool ice_clean_tx_irq_zc(struct ice_tx_ring *xdp_ring, int budget); 20 void ice_xsk_clean_xdp_ring(struct ice_tx_ring *xdp_ring); 38 ice_clean_tx_irq_zc(struct ice_tx_ring __always_unused *xdp_ring, in ice_clean_tx_irq_zc() argument 64 static inline void ice_xsk_clean_xdp_ring(struct ice_tx_ring *xdp_ring) { } in ice_xsk_clean_xdp_ring() argument
|
| A D | ice_txrx.c | 558 spin_lock(&xdp_ring->tx_lock); in ice_run_xdp() 561 spin_unlock(&xdp_ring->tx_lock); in ice_run_xdp() 601 struct ice_tx_ring *xdp_ring; in ice_xdp_xmit() local 615 xdp_ring = vsi->xdp_rings[queue_index]; in ice_xdp_xmit() 616 spin_lock(&xdp_ring->tx_lock); in ice_xdp_xmit() 618 xdp_ring = vsi->xdp_rings[queue_index]; in ice_xdp_xmit() 632 ice_xdp_ring_update_tail(xdp_ring); in ice_xdp_xmit() 635 spin_unlock(&xdp_ring->tx_lock); in ice_xdp_xmit() 1100 struct ice_tx_ring *xdp_ring = NULL; in ice_clean_rx_irq() local 1115 xdp_ring = rx_ring->xdp_ring; in ice_clean_rx_irq() [all …]
|
| A D | ice_main.c | 2469 struct ice_tx_ring *xdp_ring; in ice_xdp_alloc_setup_rings() local 2471 xdp_ring = kzalloc(sizeof(*xdp_ring), GFP_KERNEL); in ice_xdp_alloc_setup_rings() 2473 if (!xdp_ring) in ice_xdp_alloc_setup_rings() 2476 xdp_ring->q_index = xdp_q_idx; in ice_xdp_alloc_setup_rings() 2478 xdp_ring->vsi = vsi; in ice_xdp_alloc_setup_rings() 2479 xdp_ring->netdev = NULL; in ice_xdp_alloc_setup_rings() 2482 xdp_ring->dev = dev; in ice_xdp_alloc_setup_rings() 2485 if (ice_setup_tx_ring(xdp_ring)) in ice_xdp_alloc_setup_rings() 2487 ice_set_ring_xdp(xdp_ring); in ice_xdp_alloc_setup_rings() 2488 xdp_ring->xsk_pool = ice_tx_xsk_pool(xdp_ring); in ice_xdp_alloc_setup_rings() [all …]
|
| A D | ice_txrx.h | 291 struct ice_tx_ring *xdp_ring; member
|
| /linux/drivers/net/ethernet/intel/i40e/ |
| A D | i40e_xsk.c | 152 struct i40e_ring *xdp_ring; in i40e_run_xdp_zc() local 407 tx_desc = I40E_TX_DESC(xdp_ring, xdp_ring->next_to_use++); in i40e_xmit_pkt() 418 u16 ntu = xdp_ring->next_to_use; in i40e_xmit_pkt_batch() 436 xdp_ring->next_to_use = ntu; in i40e_xmit_pkt_batch() 454 u16 ntu = xdp_ring->next_to_use ? xdp_ring->next_to_use - 1 : xdp_ring->count - 1; in i40e_set_rs_bit() 457 tx_desc = I40E_TX_DESC(xdp_ring, ntu); in i40e_set_rs_bit() 478 if (xdp_ring->next_to_use + nb_pkts >= xdp_ring->count) { in i40e_xmit_zc() 479 nb_processed = xdp_ring->count - xdp_ring->next_to_use; in i40e_xmit_zc() 481 xdp_ring->next_to_use = 0; in i40e_xmit_zc() 488 i40e_set_rs_bit(xdp_ring); in i40e_xmit_zc() [all …]
|
| A D | i40e_txrx.c | 2297 struct i40e_ring *xdp_ring; in i40e_run_xdp() local 2370 writel_relaxed(xdp_ring->next_to_use, xdp_ring->tail); in i40e_xdp_ring_update_tail() 2408 struct i40e_ring *xdp_ring = in i40e_finalize_xdp_rx() local 3689 struct i40e_ring *xdp_ring) in i40e_xmit_xdp_ring() argument 3691 u16 i = xdp_ring->next_to_use; in i40e_xmit_xdp_ring() 3699 xdp_ring->tx_stats.tx_busy++; in i40e_xmit_xdp_ring() 3706 tx_bi = &xdp_ring->tx_bi[i]; in i40e_xmit_xdp_ring() 3726 xdp_ring->xdp_tx_active++; in i40e_xmit_xdp_ring() 3728 if (i == xdp_ring->count) in i40e_xmit_xdp_ring() 3732 xdp_ring->next_to_use = i; in i40e_xmit_xdp_ring() [all …]
|
| A D | i40e_txrx_common.h | 7 int i40e_xmit_xdp_tx_ring(struct xdp_buff *xdp, struct i40e_ring *xdp_ring); 12 void i40e_xdp_ring_update_tail(struct i40e_ring *xdp_ring);
|
| A D | i40e_debugfs.c | 332 if (!xdp_ring) in i40e_dbg_dump_vsi_seid() 337 i, *xdp_ring->state, in i40e_dbg_dump_vsi_seid() 338 xdp_ring->queue_index, in i40e_dbg_dump_vsi_seid() 339 xdp_ring->reg_idx); in i40e_dbg_dump_vsi_seid() 343 xdp_ring->next_to_use, in i40e_dbg_dump_vsi_seid() 344 xdp_ring->next_to_clean, in i40e_dbg_dump_vsi_seid() 345 xdp_ring->ring_active); in i40e_dbg_dump_vsi_seid() 349 xdp_ring->stats.bytes, in i40e_dbg_dump_vsi_seid() 358 i, xdp_ring->size); in i40e_dbg_dump_vsi_seid() 361 i, xdp_ring->dcb_tc); in i40e_dbg_dump_vsi_seid() [all …]
|
| /linux/drivers/net/ethernet/intel/ixgbe/ |
| A D | ixgbe_xsk.c | 382 static bool ixgbe_xmit_zc(struct ixgbe_ring *xdp_ring, unsigned int budget) in ixgbe_xmit_zc() argument 384 struct xsk_buff_pool *pool = xdp_ring->xsk_pool; in ixgbe_xmit_zc() 393 if (unlikely(!ixgbe_desc_unused(xdp_ring)) || in ixgbe_xmit_zc() 394 !netif_carrier_ok(xdp_ring->netdev)) { in ixgbe_xmit_zc() 405 tx_bi = &xdp_ring->tx_buffer_info[xdp_ring->next_to_use]; in ixgbe_xmit_zc() 410 tx_desc = IXGBE_TX_DESC(xdp_ring, xdp_ring->next_to_use); in ixgbe_xmit_zc() 422 xdp_ring->next_to_use++; in ixgbe_xmit_zc() 423 if (xdp_ring->next_to_use == xdp_ring->count) in ixgbe_xmit_zc() 424 xdp_ring->next_to_use = 0; in ixgbe_xmit_zc() 428 ixgbe_xdp_ring_update_tail(xdp_ring); in ixgbe_xmit_zc() [all …]
|
| A D | ixgbe_main.c | 1004 struct ixgbe_ring *xdp_ring = adapter->xdp_ring[i]; in ixgbe_update_xoff_received() local 7100 struct ixgbe_ring *xdp_ring = READ_ONCE(adapter->xdp_ring[i]); in ixgbe_update_stats() local 7102 if (!xdp_ring) in ixgbe_update_stats() 10416 xdp_ring = adapter->xdp_ring[ring]; in ixgbe_txrx_ring_disable() 10419 if (xdp_ring) in ixgbe_txrx_ring_disable() 10423 if (xdp_ring) in ixgbe_txrx_ring_disable() 10430 if (xdp_ring) in ixgbe_txrx_ring_disable() 10435 if (xdp_ring) in ixgbe_txrx_ring_disable() 10454 xdp_ring = adapter->xdp_ring[ring]; in ixgbe_txrx_ring_enable() 10460 if (xdp_ring) in ixgbe_txrx_ring_enable() [all …]
|
| A D | ixgbe_lib.c | 264 adapter->xdp_ring[i]->reg_idx = reg_idx; in ixgbe_cache_ring_rss() 956 WRITE_ONCE(adapter->xdp_ring[xdp_idx], ring); in ixgbe_alloc_q_vector() 1028 WRITE_ONCE(adapter->xdp_ring[ring->queue_index], NULL); in ixgbe_free_q_vector() 1117 if (adapter->xdp_ring[i]) in ixgbe_alloc_q_vectors() 1118 adapter->xdp_ring[i]->ring_idx = i; in ixgbe_alloc_q_vectors()
|
| A D | ixgbe.h | 635 struct ixgbe_ring *xdp_ring[IXGBE_MAX_XDP_QS]; member 791 return adapter->xdp_ring[index]; in ixgbe_determine_xdp_ring()
|
| /linux/drivers/net/ethernet/amazon/ena/ |
| A D | ena_netdev.c | 198 struct ena_ring *xdp_ring; in ena_xdp_io_poll() local 202 xdp_ring = ena_napi->xdp_ring; in ena_xdp_io_poll() 232 xdp_ring->tx_stats.tx_poll++; in ena_xdp_io_poll() 289 &xdp_ring->syncp); in ena_xdp_tx_map_frame() 317 xdp_ring, in ena_xdp_xmit_frame() 343 struct ena_ring *xdp_ring; in ena_xdp_xmit() local 382 struct ena_ring *xdp_ring; in ena_xdp_execute() local 405 xdp_ring = rx_ring->xdp_ring; in ena_xdp_execute() 1897 if (unlikely(!xdp_ring)) in ena_clean_xdp_irq() 1926 netif_dbg(xdp_ring->adapter, tx_done, xdp_ring->netdev, in ena_clean_xdp_irq() [all …]
|
| A D | ena_netdev.h | 137 struct ena_ring *xdp_ring; member 260 struct ena_ring *xdp_ring; member
|
| /linux/net/xdp/ |
| 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;
|
| A D | xsk_queue.c | 40 q->ring = (struct xdp_ring *)__get_free_pages(gfp_flags, in xskq_create()
|
| /linux/drivers/net/ |
| A D | veth.c | 66 struct ptr_ring xdp_ring; member 283 if (unlikely(ptr_ring_produce(&rq->xdp_ring, skb))) { in veth_xdp_rx() 499 spin_lock(&rq->xdp_ring.producer_lock); in veth_xdp_xmit() 505 __ptr_ring_produce(&rq->xdp_ring, ptr))) in veth_xdp_xmit() 509 spin_unlock(&rq->xdp_ring.producer_lock); in veth_xdp_xmit() 856 void *ptr = __ptr_ring_consume(&rq->xdp_ring); in veth_xdp_rcv() 922 if (unlikely(!__ptr_ring_empty(&rq->xdp_ring))) { in veth_poll() 945 err = ptr_ring_init(&rq->xdp_ring, VETH_RING_SIZE, GFP_KERNEL); in __veth_napi_enable_range() 961 ptr_ring_cleanup(&priv->rq[i].xdp_ring, veth_ptr_free); in __veth_napi_enable_range() 989 ptr_ring_cleanup(&rq->xdp_ring, veth_ptr_free); in veth_napi_del_range()
|
| /linux/drivers/net/ethernet/intel/ixgbevf/ |
| 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() 1242 struct ixgbevf_ring *xdp_ring = in ixgbevf_clean_rx_irq() local 1243 adapter->xdp_ring[rx_ring->queue_index]; in ixgbevf_clean_rx_irq() 1249 ixgbevf_write_tail(xdp_ring, xdp_ring->next_to_use); in ixgbevf_clean_rx_irq() 2465 ixgbevf_clean_tx_ring(adapter->xdp_ring[i]); in ixgbevf_clean_all_tx_rings() 2505 u8 reg_idx = adapter->xdp_ring[i]->reg_idx; in ixgbevf_down() 2776 adapter->xdp_ring[xdp_idx] = ring; in ixgbevf_alloc_q_vector() 3380 if (adapter->xdp_ring[i]->desc) in ixgbevf_free_all_tx_resources() [all …]
|
| A D | ethtool.c | 269 adapter->xdp_ring[i]->count = new_tx_count; in ixgbevf_set_ringparam() 307 tx_ring[i] = *adapter->xdp_ring[j]; in ixgbevf_set_ringparam() 368 ixgbevf_free_tx_resources(adapter->xdp_ring[j]); in ixgbevf_set_ringparam() 369 *adapter->xdp_ring[j] = tx_ring[i]; in ixgbevf_set_ringparam() 470 ring = adapter->xdp_ring[j]; in ixgbevf_get_ethtool_stats()
|
| A D | ixgbevf.h | 336 struct ixgbevf_ring *xdp_ring[MAX_XDP_QUEUES]; member
|
| /linux/drivers/net/ethernet/netronome/nfp/ |
| A D | nfp_net_debugfs.c | 87 tx_ring = r_vec->xdp_ring; in nfp_tx_q_show()
|
| A D | nfp_net.h | 433 struct nfp_net_tx_ring *xdp_ring; member
|