Home
last modified time | relevance | path

Searched refs:tx_queue (Results 1 - 25 of 314) sorted by relevance

12345678910>>...13

/kernel/linux/linux-5.10/drivers/net/ethernet/sfc/falcon/
H A Dtx.c25 static inline u8 *ef4_tx_get_copy_buffer(struct ef4_tx_queue *tx_queue, in ef4_tx_get_copy_buffer() argument
28 unsigned int index = ef4_tx_queue_get_insert_index(tx_queue); in ef4_tx_get_copy_buffer()
30 &tx_queue->cb_page[index >> (PAGE_SHIFT - EF4_TX_CB_ORDER)]; in ef4_tx_get_copy_buffer()
35 ef4_nic_alloc_buffer(tx_queue->efx, page_buf, PAGE_SIZE, in ef4_tx_get_copy_buffer()
43 u8 *ef4_tx_get_copy_buffer_limited(struct ef4_tx_queue *tx_queue, in ef4_tx_get_copy_buffer_limited() argument
48 return ef4_tx_get_copy_buffer(tx_queue, buffer); in ef4_tx_get_copy_buffer_limited()
51 static void ef4_dequeue_buffer(struct ef4_tx_queue *tx_queue, in ef4_dequeue_buffer() argument
57 struct device *dma_dev = &tx_queue->efx->pci_dev->dev; in ef4_dequeue_buffer()
72 netif_vdbg(tx_queue->efx, tx_done, tx_queue in ef4_dequeue_buffer()
147 ef4_enqueue_skb_copy(struct ef4_tx_queue *tx_queue, struct sk_buff *skb) ef4_enqueue_skb_copy() argument
180 ef4_tx_map_chunk(struct ef4_tx_queue *tx_queue, dma_addr_t dma_addr, size_t len) ef4_tx_map_chunk() argument
206 ef4_tx_map_data(struct ef4_tx_queue *tx_queue, struct sk_buff *skb) ef4_tx_map_data() argument
268 ef4_enqueue_unwind(struct ef4_tx_queue *tx_queue) ef4_enqueue_unwind() argument
296 ef4_enqueue_skb(struct ef4_tx_queue *tx_queue, struct sk_buff *skb) ef4_enqueue_skb() argument
354 ef4_dequeue_buffers(struct ef4_tx_queue *tx_queue, unsigned int index, unsigned int *pkts_compl, unsigned int *bytes_compl) ef4_dequeue_buffers() argument
397 struct ef4_tx_queue *tx_queue; ef4_hard_start_xmit() local
413 ef4_init_tx_queue_core_txq(struct ef4_tx_queue *tx_queue) ef4_init_tx_queue_core_txq() argument
431 struct ef4_tx_queue *tx_queue; ef4_setup_tc() local
491 ef4_xmit_done(struct ef4_tx_queue *tx_queue, unsigned int index) ef4_xmit_done() argument
533 ef4_tx_cb_page_count(struct ef4_tx_queue *tx_queue) ef4_tx_cb_page_count() argument
538 ef4_probe_tx_queue(struct ef4_tx_queue *tx_queue) ef4_probe_tx_queue() argument
582 ef4_init_tx_queue(struct ef4_tx_queue *tx_queue) ef4_init_tx_queue() argument
606 ef4_fini_tx_queue(struct ef4_tx_queue *tx_queue) ef4_fini_tx_queue() argument
628 ef4_remove_tx_queue(struct ef4_tx_queue *tx_queue) ef4_remove_tx_queue() argument
[all...]
H A Dnic.h63 ef4_tx_desc(struct ef4_tx_queue *tx_queue, unsigned int index) in ef4_tx_desc() argument
65 return ((ef4_qword_t *) (tx_queue->txd.buf.addr)) + index; in ef4_tx_desc()
69 static inline struct ef4_tx_queue *ef4_tx_queue_partner(struct ef4_tx_queue *tx_queue) in ef4_tx_queue_partner() argument
71 if (tx_queue->queue & EF4_TXQ_TYPE_OFFLOAD) in ef4_tx_queue_partner()
72 return tx_queue - EF4_TXQ_TYPE_OFFLOAD; in ef4_tx_queue_partner()
74 return tx_queue + EF4_TXQ_TYPE_OFFLOAD; in ef4_tx_queue_partner()
80 static inline bool __ef4_nic_tx_is_empty(struct ef4_tx_queue *tx_queue, in __ef4_nic_tx_is_empty() argument
83 unsigned int empty_read_count = READ_ONCE(tx_queue->empty_read_count); in __ef4_nic_tx_is_empty()
99 static inline bool ef4_nic_may_push_tx_desc(struct ef4_tx_queue *tx_queue, in ef4_nic_may_push_tx_desc() argument
102 bool was_empty = __ef4_nic_tx_is_empty(tx_queue, write_coun in ef4_nic_may_push_tx_desc()
315 ef4_nic_probe_tx(struct ef4_tx_queue *tx_queue) ef4_nic_probe_tx() argument
319 ef4_nic_init_tx(struct ef4_tx_queue *tx_queue) ef4_nic_init_tx() argument
323 ef4_nic_remove_tx(struct ef4_tx_queue *tx_queue) ef4_nic_remove_tx() argument
327 ef4_nic_push_buffers(struct ef4_tx_queue *tx_queue) ef4_nic_push_buffers() argument
[all...]
/kernel/linux/linux-6.6/drivers/net/ethernet/sfc/falcon/
H A Dtx.c25 static inline u8 *ef4_tx_get_copy_buffer(struct ef4_tx_queue *tx_queue, in ef4_tx_get_copy_buffer() argument
28 unsigned int index = ef4_tx_queue_get_insert_index(tx_queue); in ef4_tx_get_copy_buffer()
30 &tx_queue->cb_page[index >> (PAGE_SHIFT - EF4_TX_CB_ORDER)]; in ef4_tx_get_copy_buffer()
35 ef4_nic_alloc_buffer(tx_queue->efx, page_buf, PAGE_SIZE, in ef4_tx_get_copy_buffer()
43 u8 *ef4_tx_get_copy_buffer_limited(struct ef4_tx_queue *tx_queue, in ef4_tx_get_copy_buffer_limited() argument
48 return ef4_tx_get_copy_buffer(tx_queue, buffer); in ef4_tx_get_copy_buffer_limited()
51 static void ef4_dequeue_buffer(struct ef4_tx_queue *tx_queue, in ef4_dequeue_buffer() argument
57 struct device *dma_dev = &tx_queue->efx->pci_dev->dev; in ef4_dequeue_buffer()
72 netif_vdbg(tx_queue->efx, tx_done, tx_queue in ef4_dequeue_buffer()
148 ef4_enqueue_skb_copy(struct ef4_tx_queue *tx_queue, struct sk_buff *skb) ef4_enqueue_skb_copy() argument
181 ef4_tx_map_chunk(struct ef4_tx_queue *tx_queue, dma_addr_t dma_addr, size_t len) ef4_tx_map_chunk() argument
207 ef4_tx_map_data(struct ef4_tx_queue *tx_queue, struct sk_buff *skb) ef4_tx_map_data() argument
269 ef4_enqueue_unwind(struct ef4_tx_queue *tx_queue) ef4_enqueue_unwind() argument
297 ef4_enqueue_skb(struct ef4_tx_queue *tx_queue, struct sk_buff *skb) ef4_enqueue_skb() argument
355 ef4_dequeue_buffers(struct ef4_tx_queue *tx_queue, unsigned int index, unsigned int *pkts_compl, unsigned int *bytes_compl) ef4_dequeue_buffers() argument
398 struct ef4_tx_queue *tx_queue; ef4_hard_start_xmit() local
414 ef4_init_tx_queue_core_txq(struct ef4_tx_queue *tx_queue) ef4_init_tx_queue_core_txq() argument
432 struct ef4_tx_queue *tx_queue; ef4_setup_tc() local
492 ef4_xmit_done(struct ef4_tx_queue *tx_queue, unsigned int index) ef4_xmit_done() argument
534 ef4_tx_cb_page_count(struct ef4_tx_queue *tx_queue) ef4_tx_cb_page_count() argument
539 ef4_probe_tx_queue(struct ef4_tx_queue *tx_queue) ef4_probe_tx_queue() argument
583 ef4_init_tx_queue(struct ef4_tx_queue *tx_queue) ef4_init_tx_queue() argument
607 ef4_fini_tx_queue(struct ef4_tx_queue *tx_queue) ef4_fini_tx_queue() argument
629 ef4_remove_tx_queue(struct ef4_tx_queue *tx_queue) ef4_remove_tx_queue() argument
[all...]
H A Dnic.h63 ef4_tx_desc(struct ef4_tx_queue *tx_queue, unsigned int index) in ef4_tx_desc() argument
65 return ((ef4_qword_t *) (tx_queue->txd.buf.addr)) + index; in ef4_tx_desc()
69 static inline struct ef4_tx_queue *ef4_tx_queue_partner(struct ef4_tx_queue *tx_queue) in ef4_tx_queue_partner() argument
71 if (tx_queue->queue & EF4_TXQ_TYPE_OFFLOAD) in ef4_tx_queue_partner()
72 return tx_queue - EF4_TXQ_TYPE_OFFLOAD; in ef4_tx_queue_partner()
74 return tx_queue + EF4_TXQ_TYPE_OFFLOAD; in ef4_tx_queue_partner()
80 static inline bool __ef4_nic_tx_is_empty(struct ef4_tx_queue *tx_queue, in __ef4_nic_tx_is_empty() argument
83 unsigned int empty_read_count = READ_ONCE(tx_queue->empty_read_count); in __ef4_nic_tx_is_empty()
99 static inline bool ef4_nic_may_push_tx_desc(struct ef4_tx_queue *tx_queue, in ef4_nic_may_push_tx_desc() argument
102 bool was_empty = __ef4_nic_tx_is_empty(tx_queue, write_coun in ef4_nic_may_push_tx_desc()
315 ef4_nic_probe_tx(struct ef4_tx_queue *tx_queue) ef4_nic_probe_tx() argument
319 ef4_nic_init_tx(struct ef4_tx_queue *tx_queue) ef4_nic_init_tx() argument
323 ef4_nic_remove_tx(struct ef4_tx_queue *tx_queue) ef4_nic_remove_tx() argument
327 ef4_nic_push_buffers(struct ef4_tx_queue *tx_queue) ef4_nic_push_buffers() argument
[all...]
/kernel/linux/linux-6.6/drivers/net/ethernet/sfc/
H A Dtx_common.c17 static unsigned int efx_tx_cb_page_count(struct efx_tx_queue *tx_queue) in efx_tx_cb_page_count() argument
19 return DIV_ROUND_UP(tx_queue->ptr_mask + 1, in efx_tx_cb_page_count()
23 int efx_probe_tx_queue(struct efx_tx_queue *tx_queue) in efx_probe_tx_queue() argument
25 struct efx_nic *efx = tx_queue->efx; in efx_probe_tx_queue()
32 tx_queue->ptr_mask = entries - 1; in efx_probe_tx_queue()
36 tx_queue->queue, efx->txq_entries, tx_queue->ptr_mask); in efx_probe_tx_queue()
39 tx_queue->buffer = kcalloc(entries, sizeof(*tx_queue->buffer), in efx_probe_tx_queue()
41 if (!tx_queue in efx_probe_tx_queue()
68 efx_init_tx_queue(struct efx_tx_queue *tx_queue) efx_init_tx_queue() argument
98 efx_fini_tx_queue(struct efx_tx_queue *tx_queue) efx_fini_tx_queue() argument
125 efx_remove_tx_queue(struct efx_tx_queue *tx_queue) efx_remove_tx_queue() argument
149 efx_dequeue_buffer(struct efx_tx_queue *tx_queue, struct efx_tx_buffer *buffer, unsigned int *pkts_compl, unsigned int *bytes_compl, unsigned int *efv_pkts_compl) efx_dequeue_buffer() argument
209 efx_dequeue_buffers(struct efx_tx_queue *tx_queue, unsigned int index, unsigned int *pkts_compl, unsigned int *bytes_compl, unsigned int *efv_pkts_compl) efx_dequeue_buffers() argument
240 efx_xmit_done_check_empty(struct efx_tx_queue *tx_queue) efx_xmit_done_check_empty() argument
253 efx_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index) efx_xmit_done() argument
290 efx_enqueue_unwind(struct efx_tx_queue *tx_queue, unsigned int insert_count) efx_enqueue_unwind() argument
307 efx_tx_map_chunk(struct efx_tx_queue *tx_queue, dma_addr_t dma_addr, size_t len) efx_tx_map_chunk() argument
349 efx_tx_map_data(struct efx_tx_queue *tx_queue, struct sk_buff *skb, unsigned int segment_count) efx_tx_map_data() argument
452 efx_tx_tso_fallback(struct efx_tx_queue *tx_queue, struct sk_buff *skb) efx_tx_tso_fallback() argument
[all...]
H A Def100_tx.c23 int ef100_tx_probe(struct efx_tx_queue *tx_queue) in ef100_tx_probe() argument
26 return efx_nic_alloc_buffer(tx_queue->efx, &tx_queue->txd, in ef100_tx_probe()
27 (tx_queue->ptr_mask + 2) * in ef100_tx_probe()
32 void ef100_tx_init(struct efx_tx_queue *tx_queue) in ef100_tx_init() argument
35 tx_queue->core_txq = in ef100_tx_init()
36 netdev_get_tx_queue(tx_queue->efx->net_dev, in ef100_tx_init()
37 tx_queue->channel->channel - in ef100_tx_init()
38 tx_queue->efx->tx_channel_offset); in ef100_tx_init()
46 tx_queue in ef100_tx_init()
52 ef100_tx_can_tso(struct efx_tx_queue *tx_queue, struct sk_buff *skb) ef100_tx_can_tso() argument
102 ef100_tx_desc(struct efx_tx_queue *tx_queue, unsigned int index) ef100_tx_desc() argument
110 ef100_notify_tx_desc(struct efx_tx_queue *tx_queue) ef100_notify_tx_desc() argument
128 ef100_tx_push_buffers(struct efx_tx_queue *tx_queue) ef100_tx_push_buffers() argument
255 ef100_tx_make_descriptors(struct efx_tx_queue *tx_queue, const struct sk_buff *skb, unsigned int segment_count, struct efx_rep *efv) ef100_tx_make_descriptors() argument
343 ef100_tx_write(struct efx_tx_queue *tx_queue) ef100_tx_write() argument
355 struct efx_tx_queue *tx_queue = ef100_ev_tx() local
370 ef100_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb) ef100_enqueue_skb() argument
376 __ef100_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb, struct efx_rep *efv) __ef100_enqueue_skb() argument
[all...]
H A Dtx.c34 static inline u8 *efx_tx_get_copy_buffer(struct efx_tx_queue *tx_queue, in efx_tx_get_copy_buffer() argument
37 unsigned int index = efx_tx_queue_get_insert_index(tx_queue); in efx_tx_get_copy_buffer()
39 &tx_queue->cb_page[index >> (PAGE_SHIFT - EFX_TX_CB_ORDER)]; in efx_tx_get_copy_buffer()
44 efx_nic_alloc_buffer(tx_queue->efx, page_buf, PAGE_SIZE, in efx_tx_get_copy_buffer()
52 u8 *efx_tx_get_copy_buffer_limited(struct efx_tx_queue *tx_queue, in efx_tx_get_copy_buffer_limited() argument
57 return efx_tx_get_copy_buffer(tx_queue, buffer); in efx_tx_get_copy_buffer_limited()
99 static int efx_enqueue_skb_copy(struct efx_tx_queue *tx_queue, in efx_enqueue_skb_copy() argument
109 buffer = efx_tx_queue_get_insert_buffer(tx_queue); in efx_enqueue_skb_copy()
111 copy_buffer = efx_tx_get_copy_buffer(tx_queue, buffer); in efx_enqueue_skb_copy()
122 ++tx_queue in efx_enqueue_skb_copy()
220 efx_enqueue_skb_pio(struct efx_tx_queue *tx_queue, struct sk_buff *skb) efx_enqueue_skb_pio() argument
276 efx_tx_may_pio(struct efx_tx_queue *tx_queue) efx_tx_may_pio() argument
322 __efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb) __efx_enqueue_skb() argument
425 struct efx_tx_queue *tx_queue; efx_xdp_tx_buffers() local
516 struct efx_tx_queue *tx_queue; efx_hard_start_xmit() local
554 efx_xmit_done_single(struct efx_tx_queue *tx_queue) efx_xmit_done_single() argument
594 efx_init_tx_queue_core_txq(struct efx_tx_queue *tx_queue) efx_init_tx_queue_core_txq() argument
[all...]
H A Dtx_common.h14 int efx_probe_tx_queue(struct efx_tx_queue *tx_queue);
15 void efx_init_tx_queue(struct efx_tx_queue *tx_queue);
16 void efx_fini_tx_queue(struct efx_tx_queue *tx_queue);
17 void efx_remove_tx_queue(struct efx_tx_queue *tx_queue);
19 void efx_dequeue_buffer(struct efx_tx_queue *tx_queue,
30 void efx_xmit_done_check_empty(struct efx_tx_queue *tx_queue);
31 int efx_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index);
33 void efx_enqueue_unwind(struct efx_tx_queue *tx_queue,
36 struct efx_tx_buffer *efx_tx_map_chunk(struct efx_tx_queue *tx_queue,
39 int efx_tx_map_data(struct efx_tx_queue *tx_queue, struc
[all...]
H A Dnic_common.h59 efx_tx_desc(struct efx_tx_queue *tx_queue, unsigned int index) in efx_tx_desc() argument
61 return ((efx_qword_t *)(tx_queue->txd.addr)) + index; in efx_tx_desc()
67 static inline bool efx_nic_tx_is_empty(struct efx_tx_queue *tx_queue, unsigned int write_count) in efx_nic_tx_is_empty() argument
69 unsigned int empty_read_count = READ_ONCE(tx_queue->empty_read_count); in efx_nic_tx_is_empty()
77 int efx_enqueue_skb_tso(struct efx_tx_queue *tx_queue, struct sk_buff *skb,
86 static inline bool efx_nic_may_push_tx_desc(struct efx_tx_queue *tx_queue, in efx_nic_may_push_tx_desc() argument
89 bool was_empty = efx_nic_tx_is_empty(tx_queue, write_count); in efx_nic_may_push_tx_desc()
91 tx_queue->empty_read_count = 0; in efx_nic_may_push_tx_desc()
92 return was_empty && tx_queue->write_count - write_count == 1; in efx_nic_may_push_tx_desc()
118 static inline int efx_nic_probe_tx(struct efx_tx_queue *tx_queue) in efx_nic_probe_tx() argument
122 efx_nic_init_tx(struct efx_tx_queue *tx_queue) efx_nic_init_tx() argument
126 efx_nic_remove_tx(struct efx_tx_queue *tx_queue) efx_nic_remove_tx() argument
131 efx_nic_push_buffers(struct efx_tx_queue *tx_queue) efx_nic_push_buffers() argument
[all...]
H A Dtx_tso.c79 static inline void prefetch_ptr(struct efx_tx_queue *tx_queue) in prefetch_ptr() argument
81 unsigned int insert_ptr = efx_tx_queue_get_insert_index(tx_queue); in prefetch_ptr()
84 ptr = (char *) (tx_queue->buffer + insert_ptr); in prefetch_ptr()
88 ptr = (char *)(((efx_qword_t *)tx_queue->txd.addr) + insert_ptr); in prefetch_ptr()
95 * @tx_queue: Efx TX queue
102 static void efx_tx_queue_insert(struct efx_tx_queue *tx_queue, in efx_tx_queue_insert() argument
112 buffer = efx_tx_queue_get_insert_buffer(tx_queue); in efx_tx_queue_insert()
113 ++tx_queue->insert_count; in efx_tx_queue_insert()
115 EFX_WARN_ON_ONCE_PARANOID(tx_queue->insert_count - in efx_tx_queue_insert()
116 tx_queue in efx_tx_queue_insert()
169 tso_start(struct tso_state *st, struct efx_nic *efx, struct efx_tx_queue *tx_queue, const struct sk_buff *skb) tso_start() argument
232 tso_fill_packet_with_fragment(struct efx_tx_queue *tx_queue, const struct sk_buff *skb, struct tso_state *st) tso_fill_packet_with_fragment() argument
285 tso_start_new_packet(struct efx_tx_queue *tx_queue, const struct sk_buff *skb, struct tso_state *st) tso_start_new_packet() argument
362 efx_enqueue_skb_tso(struct efx_tx_queue *tx_queue, struct sk_buff *skb, bool *data_mapped) efx_enqueue_skb_tso() argument
[all...]
H A Defx_channels.c181 "XDP_TX and XDP_REDIRECT will work with reduced performance (%d cpus/tx_queue)\n", in efx_allocate_msix_channels()
533 struct efx_tx_queue *tx_queue; in efx_alloc_channel() local
546 tx_queue = &channel->tx_queue[j]; in efx_alloc_channel()
547 tx_queue->efx = efx; in efx_alloc_channel()
548 tx_queue->queue = -1; in efx_alloc_channel()
549 tx_queue->label = j; in efx_alloc_channel()
550 tx_queue->channel = channel; in efx_alloc_channel()
603 struct efx_tx_queue *tx_queue; in efx_copy_channel() local
620 tx_queue in efx_copy_channel()
641 struct efx_tx_queue *tx_queue; efx_probe_channel() local
741 struct efx_tx_queue *tx_queue; efx_remove_channel() local
765 efx_set_xdp_tx_queue(struct efx_nic *efx, int xdp_queue_number, struct efx_tx_queue *tx_queue) efx_set_xdp_tx_queue() argument
781 struct efx_tx_queue *tx_queue; efx_set_xdp_channels() local
1091 struct efx_tx_queue *tx_queue; efx_start_channels() local
1117 struct efx_tx_queue *tx_queue; efx_stop_channels() local
1179 struct efx_tx_queue *tx_queue; efx_process_channel() local
[all...]
H A Dmcdi_functions.c163 int efx_mcdi_tx_init(struct efx_tx_queue *tx_queue) in efx_mcdi_tx_init() argument
167 bool csum_offload = tx_queue->type & EFX_TXQ_TYPE_OUTER_CSUM; in efx_mcdi_tx_init()
168 bool inner_csum = tx_queue->type & EFX_TXQ_TYPE_INNER_CSUM; in efx_mcdi_tx_init()
169 size_t entries = tx_queue->txd.len / EFX_BUF_SIZE; in efx_mcdi_tx_init()
170 struct efx_channel *channel = tx_queue->channel; in efx_mcdi_tx_init()
171 struct efx_nic *efx = tx_queue->efx; in efx_mcdi_tx_init()
178 MCDI_SET_DWORD(inbuf, INIT_TXQ_IN_SIZE, tx_queue->ptr_mask + 1); in efx_mcdi_tx_init()
180 MCDI_SET_DWORD(inbuf, INIT_TXQ_IN_LABEL, tx_queue->label); in efx_mcdi_tx_init()
181 MCDI_SET_DWORD(inbuf, INIT_TXQ_IN_INSTANCE, tx_queue->queue); in efx_mcdi_tx_init()
185 dma_addr = tx_queue in efx_mcdi_tx_init()
241 efx_mcdi_tx_remove(struct efx_tx_queue *tx_queue) efx_mcdi_tx_remove() argument
246 efx_mcdi_tx_fini(struct efx_tx_queue *tx_queue) efx_mcdi_tx_fini() argument
357 struct efx_tx_queue *tx_queue; efx_fini_dmaq() local
[all...]
/kernel/linux/linux-5.10/drivers/net/ethernet/sfc/
H A Dtx_common.c16 static unsigned int efx_tx_cb_page_count(struct efx_tx_queue *tx_queue) in efx_tx_cb_page_count() argument
18 return DIV_ROUND_UP(tx_queue->ptr_mask + 1, in efx_tx_cb_page_count()
22 int efx_probe_tx_queue(struct efx_tx_queue *tx_queue) in efx_probe_tx_queue() argument
24 struct efx_nic *efx = tx_queue->efx; in efx_probe_tx_queue()
31 tx_queue->ptr_mask = entries - 1; in efx_probe_tx_queue()
35 tx_queue->queue, efx->txq_entries, tx_queue->ptr_mask); in efx_probe_tx_queue()
38 tx_queue->buffer = kcalloc(entries, sizeof(*tx_queue->buffer), in efx_probe_tx_queue()
40 if (!tx_queue in efx_probe_tx_queue()
67 efx_init_tx_queue(struct efx_tx_queue *tx_queue) efx_init_tx_queue() argument
97 efx_fini_tx_queue(struct efx_tx_queue *tx_queue) efx_fini_tx_queue() argument
120 efx_remove_tx_queue(struct efx_tx_queue *tx_queue) efx_remove_tx_queue() argument
144 efx_dequeue_buffer(struct efx_tx_queue *tx_queue, struct efx_tx_buffer *buffer, unsigned int *pkts_compl, unsigned int *bytes_compl) efx_dequeue_buffer() argument
197 efx_dequeue_buffers(struct efx_tx_queue *tx_queue, unsigned int index, unsigned int *pkts_compl, unsigned int *bytes_compl) efx_dequeue_buffers() argument
226 efx_xmit_done_check_empty(struct efx_tx_queue *tx_queue) efx_xmit_done_check_empty() argument
239 efx_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index) efx_xmit_done() argument
272 efx_enqueue_unwind(struct efx_tx_queue *tx_queue, unsigned int insert_count) efx_enqueue_unwind() argument
287 efx_tx_map_chunk(struct efx_tx_queue *tx_queue, dma_addr_t dma_addr, size_t len) efx_tx_map_chunk() argument
329 efx_tx_map_data(struct efx_tx_queue *tx_queue, struct sk_buff *skb, unsigned int segment_count) efx_tx_map_data() argument
431 efx_tx_tso_fallback(struct efx_tx_queue *tx_queue, struct sk_buff *skb) efx_tx_tso_fallback() argument
[all...]
H A Def100_tx.c23 int ef100_tx_probe(struct efx_tx_queue *tx_queue) in ef100_tx_probe() argument
26 return efx_nic_alloc_buffer(tx_queue->efx, &tx_queue->txd.buf, in ef100_tx_probe()
27 (tx_queue->ptr_mask + 2) * in ef100_tx_probe()
32 void ef100_tx_init(struct efx_tx_queue *tx_queue) in ef100_tx_init() argument
35 tx_queue->core_txq = in ef100_tx_init()
36 netdev_get_tx_queue(tx_queue->efx->net_dev, in ef100_tx_init()
37 tx_queue->channel->channel - in ef100_tx_init()
38 tx_queue->efx->tx_channel_offset); in ef100_tx_init()
46 tx_queue in ef100_tx_init()
52 ef100_tx_can_tso(struct efx_tx_queue *tx_queue, struct sk_buff *skb) ef100_tx_can_tso() argument
118 ef100_tx_desc(struct efx_tx_queue *tx_queue, unsigned int index) ef100_tx_desc() argument
126 ef100_notify_tx_desc(struct efx_tx_queue *tx_queue) ef100_notify_tx_desc() argument
144 ef100_tx_push_buffers(struct efx_tx_queue *tx_queue) ef100_tx_push_buffers() argument
239 ef100_tx_make_descriptors(struct efx_tx_queue *tx_queue, const struct sk_buff *skb, unsigned int segment_count) ef100_tx_make_descriptors() argument
309 ef100_tx_write(struct efx_tx_queue *tx_queue) ef100_tx_write() argument
321 struct efx_tx_queue *tx_queue = ef100_ev_tx() local
336 ef100_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb) ef100_enqueue_skb() argument
[all...]
H A Dtx.c34 static inline u8 *efx_tx_get_copy_buffer(struct efx_tx_queue *tx_queue, in efx_tx_get_copy_buffer() argument
37 unsigned int index = efx_tx_queue_get_insert_index(tx_queue); in efx_tx_get_copy_buffer()
39 &tx_queue->cb_page[index >> (PAGE_SHIFT - EFX_TX_CB_ORDER)]; in efx_tx_get_copy_buffer()
44 efx_nic_alloc_buffer(tx_queue->efx, page_buf, PAGE_SIZE, in efx_tx_get_copy_buffer()
52 u8 *efx_tx_get_copy_buffer_limited(struct efx_tx_queue *tx_queue, in efx_tx_get_copy_buffer_limited() argument
57 return efx_tx_get_copy_buffer(tx_queue, buffer); in efx_tx_get_copy_buffer_limited()
99 static int efx_enqueue_skb_copy(struct efx_tx_queue *tx_queue, in efx_enqueue_skb_copy() argument
109 buffer = efx_tx_queue_get_insert_buffer(tx_queue); in efx_enqueue_skb_copy()
111 copy_buffer = efx_tx_get_copy_buffer(tx_queue, buffer); in efx_enqueue_skb_copy()
122 ++tx_queue in efx_enqueue_skb_copy()
220 efx_enqueue_skb_pio(struct efx_tx_queue *tx_queue, struct sk_buff *skb) efx_enqueue_skb_pio() argument
276 efx_tx_may_pio(struct efx_tx_queue *tx_queue) efx_tx_may_pio() argument
322 __efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb) __efx_enqueue_skb() argument
433 struct efx_tx_queue *tx_queue; efx_xdp_tx_buffers() local
513 struct efx_tx_queue *tx_queue; efx_hard_start_xmit() local
555 efx_xmit_done_single(struct efx_tx_queue *tx_queue) efx_xmit_done_single() argument
593 efx_init_tx_queue_core_txq(struct efx_tx_queue *tx_queue) efx_init_tx_queue_core_txq() argument
[all...]
H A Dtx_common.h14 int efx_probe_tx_queue(struct efx_tx_queue *tx_queue);
15 void efx_init_tx_queue(struct efx_tx_queue *tx_queue);
16 void efx_fini_tx_queue(struct efx_tx_queue *tx_queue);
17 void efx_remove_tx_queue(struct efx_tx_queue *tx_queue);
19 void efx_dequeue_buffer(struct efx_tx_queue *tx_queue,
29 void efx_xmit_done_check_empty(struct efx_tx_queue *tx_queue);
30 void efx_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index);
32 void efx_enqueue_unwind(struct efx_tx_queue *tx_queue,
35 struct efx_tx_buffer *efx_tx_map_chunk(struct efx_tx_queue *tx_queue,
38 int efx_tx_map_data(struct efx_tx_queue *tx_queue, struc
[all...]
H A Dnic_common.h60 efx_tx_desc(struct efx_tx_queue *tx_queue, unsigned int index) in efx_tx_desc() argument
62 return ((efx_qword_t *) (tx_queue->txd.buf.addr)) + index; in efx_tx_desc()
68 static inline bool efx_nic_tx_is_empty(struct efx_tx_queue *tx_queue, unsigned int write_count) in efx_nic_tx_is_empty() argument
70 unsigned int empty_read_count = READ_ONCE(tx_queue->empty_read_count); in efx_nic_tx_is_empty()
78 int efx_enqueue_skb_tso(struct efx_tx_queue *tx_queue, struct sk_buff *skb,
89 static inline bool efx_nic_may_push_tx_desc(struct efx_tx_queue *tx_queue, in efx_nic_may_push_tx_desc() argument
92 bool was_empty = efx_nic_tx_is_empty(tx_queue, write_count); in efx_nic_may_push_tx_desc()
94 tx_queue->empty_read_count = 0; in efx_nic_may_push_tx_desc()
95 return was_empty && tx_queue->write_count - write_count == 1; in efx_nic_may_push_tx_desc()
121 static inline int efx_nic_probe_tx(struct efx_tx_queue *tx_queue) in efx_nic_probe_tx() argument
125 efx_nic_init_tx(struct efx_tx_queue *tx_queue) efx_nic_init_tx() argument
129 efx_nic_remove_tx(struct efx_tx_queue *tx_queue) efx_nic_remove_tx() argument
134 efx_nic_push_buffers(struct efx_tx_queue *tx_queue) efx_nic_push_buffers() argument
[all...]
H A Dtx_tso.c79 static inline void prefetch_ptr(struct efx_tx_queue *tx_queue) in prefetch_ptr() argument
81 unsigned int insert_ptr = efx_tx_queue_get_insert_index(tx_queue); in prefetch_ptr()
84 ptr = (char *) (tx_queue->buffer + insert_ptr); in prefetch_ptr()
88 ptr = (char *) (((efx_qword_t *)tx_queue->txd.buf.addr) + insert_ptr); in prefetch_ptr()
95 * @tx_queue: Efx TX queue
102 static void efx_tx_queue_insert(struct efx_tx_queue *tx_queue, in efx_tx_queue_insert() argument
112 buffer = efx_tx_queue_get_insert_buffer(tx_queue); in efx_tx_queue_insert()
113 ++tx_queue->insert_count; in efx_tx_queue_insert()
115 EFX_WARN_ON_ONCE_PARANOID(tx_queue->insert_count - in efx_tx_queue_insert()
116 tx_queue in efx_tx_queue_insert()
169 tso_start(struct tso_state *st, struct efx_nic *efx, struct efx_tx_queue *tx_queue, const struct sk_buff *skb) tso_start() argument
232 tso_fill_packet_with_fragment(struct efx_tx_queue *tx_queue, const struct sk_buff *skb, struct tso_state *st) tso_fill_packet_with_fragment() argument
285 tso_start_new_packet(struct efx_tx_queue *tx_queue, const struct sk_buff *skb, struct tso_state *st) tso_start_new_packet() argument
362 efx_enqueue_skb_tso(struct efx_tx_queue *tx_queue, struct sk_buff *skb, bool *data_mapped) efx_enqueue_skb_tso() argument
[all...]
H A Dmcdi_functions.c163 int efx_mcdi_tx_init(struct efx_tx_queue *tx_queue) in efx_mcdi_tx_init() argument
167 bool csum_offload = tx_queue->type & EFX_TXQ_TYPE_OUTER_CSUM; in efx_mcdi_tx_init()
168 bool inner_csum = tx_queue->type & EFX_TXQ_TYPE_INNER_CSUM; in efx_mcdi_tx_init()
169 size_t entries = tx_queue->txd.buf.len / EFX_BUF_SIZE; in efx_mcdi_tx_init()
170 struct efx_channel *channel = tx_queue->channel; in efx_mcdi_tx_init()
171 struct efx_nic *efx = tx_queue->efx; in efx_mcdi_tx_init()
178 MCDI_SET_DWORD(inbuf, INIT_TXQ_IN_SIZE, tx_queue->ptr_mask + 1); in efx_mcdi_tx_init()
180 MCDI_SET_DWORD(inbuf, INIT_TXQ_IN_LABEL, tx_queue->label); in efx_mcdi_tx_init()
181 MCDI_SET_DWORD(inbuf, INIT_TXQ_IN_INSTANCE, tx_queue->queue); in efx_mcdi_tx_init()
185 dma_addr = tx_queue in efx_mcdi_tx_init()
241 efx_mcdi_tx_remove(struct efx_tx_queue *tx_queue) efx_mcdi_tx_remove() argument
246 efx_mcdi_tx_fini(struct efx_tx_queue *tx_queue) efx_mcdi_tx_fini() argument
357 struct efx_tx_queue *tx_queue; efx_fini_dmaq() local
[all...]
H A Defx_channels.c513 struct efx_tx_queue *tx_queue; in efx_alloc_channel() local
526 tx_queue = &channel->tx_queue[j]; in efx_alloc_channel()
527 tx_queue->efx = efx; in efx_alloc_channel()
528 tx_queue->queue = -1; in efx_alloc_channel()
529 tx_queue->label = j; in efx_alloc_channel()
530 tx_queue->channel = channel; in efx_alloc_channel()
583 struct efx_tx_queue *tx_queue; in efx_copy_channel() local
600 tx_queue = &channel->tx_queue[ in efx_copy_channel()
621 struct efx_tx_queue *tx_queue; efx_probe_channel() local
723 struct efx_tx_queue *tx_queue; efx_remove_channel() local
765 struct efx_tx_queue *tx_queue; efx_realloc_channels() local
857 struct efx_tx_queue *tx_queue; efx_set_channels() local
1054 struct efx_tx_queue *tx_queue; efx_start_channels() local
1078 struct efx_tx_queue *tx_queue; efx_stop_channels() local
1135 struct efx_tx_queue *tx_queue; efx_process_channel() local
[all...]
/kernel/linux/linux-6.6/drivers/net/ethernet/sfc/siena/
H A Dtx_common.c17 static unsigned int efx_tx_cb_page_count(struct efx_tx_queue *tx_queue) in efx_tx_cb_page_count() argument
19 return DIV_ROUND_UP(tx_queue->ptr_mask + 1, in efx_tx_cb_page_count()
23 int efx_siena_probe_tx_queue(struct efx_tx_queue *tx_queue) in efx_siena_probe_tx_queue() argument
25 struct efx_nic *efx = tx_queue->efx; in efx_siena_probe_tx_queue()
32 tx_queue->ptr_mask = entries - 1; in efx_siena_probe_tx_queue()
36 tx_queue->queue, efx->txq_entries, tx_queue->ptr_mask); in efx_siena_probe_tx_queue()
39 tx_queue->buffer = kcalloc(entries, sizeof(*tx_queue->buffer), in efx_siena_probe_tx_queue()
41 if (!tx_queue in efx_siena_probe_tx_queue()
68 efx_siena_init_tx_queue(struct efx_tx_queue *tx_queue) efx_siena_init_tx_queue() argument
98 efx_siena_remove_tx_queue(struct efx_tx_queue *tx_queue) efx_siena_remove_tx_queue() argument
122 efx_dequeue_buffer(struct efx_tx_queue *tx_queue, struct efx_tx_buffer *buffer, unsigned int *pkts_compl, unsigned int *bytes_compl) efx_dequeue_buffer() argument
170 efx_siena_fini_tx_queue(struct efx_tx_queue *tx_queue) efx_siena_fini_tx_queue() argument
198 efx_dequeue_buffers(struct efx_tx_queue *tx_queue, unsigned int index, unsigned int *pkts_compl, unsigned int *bytes_compl) efx_dequeue_buffers() argument
227 efx_siena_xmit_done_check_empty(struct efx_tx_queue *tx_queue) efx_siena_xmit_done_check_empty() argument
240 efx_siena_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index) efx_siena_xmit_done() argument
273 efx_siena_enqueue_unwind(struct efx_tx_queue *tx_queue, unsigned int insert_count) efx_siena_enqueue_unwind() argument
288 efx_siena_tx_map_chunk(struct efx_tx_queue *tx_queue, dma_addr_t dma_addr, size_t len) efx_siena_tx_map_chunk() argument
330 efx_siena_tx_map_data(struct efx_tx_queue *tx_queue, struct sk_buff *skb, unsigned int segment_count) efx_siena_tx_map_data() argument
432 efx_siena_tx_tso_fallback(struct efx_tx_queue *tx_queue, struct sk_buff *skb) efx_siena_tx_tso_fallback() argument
[all...]
H A Dtx.c26 static inline u8 *efx_tx_get_copy_buffer(struct efx_tx_queue *tx_queue, in efx_tx_get_copy_buffer() argument
29 unsigned int index = efx_tx_queue_get_insert_index(tx_queue); in efx_tx_get_copy_buffer()
31 &tx_queue->cb_page[index >> (PAGE_SHIFT - EFX_TX_CB_ORDER)]; in efx_tx_get_copy_buffer()
36 efx_siena_alloc_buffer(tx_queue->efx, page_buf, PAGE_SIZE, in efx_tx_get_copy_buffer()
83 static int efx_enqueue_skb_copy(struct efx_tx_queue *tx_queue, in efx_enqueue_skb_copy() argument
93 buffer = efx_tx_queue_get_insert_buffer(tx_queue); in efx_enqueue_skb_copy()
95 copy_buffer = efx_tx_get_copy_buffer(tx_queue, buffer); in efx_enqueue_skb_copy()
106 ++tx_queue->insert_count; in efx_enqueue_skb_copy()
139 netdev_tx_t __efx_siena_enqueue_skb(struct efx_tx_queue *tx_queue, in __efx_siena_enqueue_skb() argument
142 unsigned int old_insert_count = tx_queue in __efx_siena_enqueue_skb()
212 struct efx_tx_queue *tx_queue; efx_siena_xdp_tx_buffers() local
303 struct efx_tx_queue *tx_queue; efx_siena_hard_start_xmit() local
346 efx_siena_init_tx_queue_core_txq(struct efx_tx_queue *tx_queue) efx_siena_init_tx_queue_core_txq() argument
[all...]
H A Dnic_common.h60 efx_tx_desc(struct efx_tx_queue *tx_queue, unsigned int index) in efx_tx_desc() argument
62 return ((efx_qword_t *) (tx_queue->txd.buf.addr)) + index; in efx_tx_desc()
68 static inline bool efx_nic_tx_is_empty(struct efx_tx_queue *tx_queue, unsigned int write_count) in efx_nic_tx_is_empty() argument
70 unsigned int empty_read_count = READ_ONCE(tx_queue->empty_read_count); in efx_nic_tx_is_empty()
86 static inline bool efx_nic_may_push_tx_desc(struct efx_tx_queue *tx_queue, in efx_nic_may_push_tx_desc() argument
89 bool was_empty = efx_nic_tx_is_empty(tx_queue, write_count); in efx_nic_may_push_tx_desc()
91 tx_queue->empty_read_count = 0; in efx_nic_may_push_tx_desc()
92 return was_empty && tx_queue->write_count - write_count == 1; in efx_nic_may_push_tx_desc()
118 static inline int efx_nic_probe_tx(struct efx_tx_queue *tx_queue) in efx_nic_probe_tx() argument
120 return tx_queue in efx_nic_probe_tx()
122 efx_nic_init_tx(struct efx_tx_queue *tx_queue) efx_nic_init_tx() argument
126 efx_nic_remove_tx(struct efx_tx_queue *tx_queue) efx_nic_remove_tx() argument
131 efx_nic_push_buffers(struct efx_tx_queue *tx_queue) efx_nic_push_buffers() argument
[all...]
H A Dtx_common.h14 int efx_siena_probe_tx_queue(struct efx_tx_queue *tx_queue);
15 void efx_siena_init_tx_queue(struct efx_tx_queue *tx_queue);
16 void efx_siena_fini_tx_queue(struct efx_tx_queue *tx_queue);
17 void efx_siena_remove_tx_queue(struct efx_tx_queue *tx_queue);
24 void efx_siena_xmit_done_check_empty(struct efx_tx_queue *tx_queue);
25 void efx_siena_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index);
27 void efx_siena_enqueue_unwind(struct efx_tx_queue *tx_queue,
30 struct efx_tx_buffer *efx_siena_tx_map_chunk(struct efx_tx_queue *tx_queue,
32 int efx_siena_tx_map_data(struct efx_tx_queue *tx_queue, struct sk_buff *skb,
36 int efx_siena_tx_tso_fallback(struct efx_tx_queue *tx_queue, struc
[all...]
H A Defx_channels.c182 "XDP_TX and XDP_REDIRECT will work with reduced performance (%d cpus/tx_queue)\n", in efx_allocate_msix_channels()
535 struct efx_tx_queue *tx_queue; in efx_alloc_channel() local
548 tx_queue = &channel->tx_queue[j]; in efx_alloc_channel()
549 tx_queue->efx = efx; in efx_alloc_channel()
550 tx_queue->queue = -1; in efx_alloc_channel()
551 tx_queue->label = j; in efx_alloc_channel()
552 tx_queue->channel = channel; in efx_alloc_channel()
606 struct efx_tx_queue *tx_queue; in efx_copy_channel() local
623 tx_queue in efx_copy_channel()
644 struct efx_tx_queue *tx_queue; efx_probe_channel() local
747 struct efx_tx_queue *tx_queue; efx_siena_remove_channel() local
771 efx_set_xdp_tx_queue(struct efx_nic *efx, int xdp_queue_number, struct efx_tx_queue *tx_queue) efx_set_xdp_tx_queue() argument
787 struct efx_tx_queue *tx_queue; efx_set_xdp_channels() local
872 struct efx_tx_queue *tx_queue; efx_siena_realloc_channels() local
1123 struct efx_tx_queue *tx_queue; efx_siena_start_channels() local
1147 struct efx_tx_queue *tx_queue; efx_siena_stop_channels() local
1204 struct efx_tx_queue *tx_queue; efx_process_channel() local
[all...]

Completed in 226 milliseconds

12345678910>>...13