Lines Matching +full:rx +full:- +full:watermark

1 /* SPDX-License-Identifier: GPL-2.0-only */
27 /* Number of descriptors in a queue should be a multiple of 32. RX queue
67 * given RX completion queue has descriptors. This includes _ALL_ buffer
69 * you have a total of 1024 buffers so your RX queue _must_ have at least that
70 * many descriptors. This macro divides a given number of RX descriptors by
72 * can have without overrunning the RX queue.
84 #define IDPF_RX_BUFQ_WORKING_SET(rxq) ((rxq)->desc_count - 1)
88 if (unlikely(++(ntc) == (rxq)->desc_count)) { \
96 if (unlikely(++(idx) == (q)->desc_count)) \
118 ((((txq)->next_to_clean > (txq)->next_to_use) ? 0 : (txq)->desc_count) + \
119 (txq)->next_to_clean - (txq)->next_to_use - 1)
121 #define IDPF_TX_BUF_RSV_UNUSED(txq) ((txq)->stash->buf_stack.top)
123 (txq)->desc_count >> 2)
125 #define IDPF_TX_COMPLQ_OVERFLOW_THRESH(txcq) ((txcq)->desc_count >> 1)
130 (((txq)->num_completions_pending >= (txq)->complq->num_completions ? \
132 (txq)->num_completions_pending - (txq)->complq->num_completions)
137 ((++(txq)->compl_tag_cur_gen) >= (txq)->compl_tag_gen_max ? \
138 0 : (txq)->compl_tag_cur_gen)
156 * struct idpf_buf_lifo - LIFO for managing OOO completions
168 * struct idpf_tx_offload_params - Offload parameters for a given packet
229 /* The size limit for a transmit buffer in a descriptor is (16K - 1).
234 #define IDPF_TX_MAX_DESC_DATA (SZ_16K - 1)
245 DIV_ROUND_DOWN_ULL((IDPF_CTLQ_MAX_BUF_LEN - IDPF_RX_PTYPE_HDR_SZ), \
248 #define IDPF_GET_PTYPE_SIZE(p) struct_size((p), proto_id, (p)->proto_id_count)
281 * 0->1 or 1->0 on each ring wrap. SW maintains its own
293 * @__IDPF_Q_HSPLIT_EN: enable header split on Rx (splitq)
294 * @__IDPF_Q_PTP: indicates whether the Rx timestamping is enabled for the
311 #define idpf_queue_set(f, q) __set_bit(__IDPF_Q_##f, (q)->flags)
312 #define idpf_queue_clear(f, q) __clear_bit(__IDPF_Q_##f, (q)->flags)
313 #define idpf_queue_change(f, q) __change_bit(__IDPF_Q_##f, (q)->flags)
314 #define idpf_queue_has(f, q) test_bit(__IDPF_Q_##f, (q)->flags)
317 __test_and_clear_bit(__IDPF_Q_##f, (q)->flags)
319 __assign_bit(__IDPF_Q_##f, (q)->flags, v)
345 * @rx_itr: RX ITR register
369 * @num_rxq: Number of RX queues
373 * @rx: Array of RX queues to service
385 * @rx_dim: Data for RX net_dim algorithm
386 * @rx_itr_value: RX interrupt throttling rate
388 * @rx_itr_idx: RX ITR index
399 struct idpf_rx_queue **rx; member
471 * struct idpf_txq_stash - Tx buffer stash for Flow-based scheduling mode
482 * struct idpf_rx_queue - software structure representing a receive queue
483 * @rx: universal receive descriptor array
493 * @idx: For RX queue, it is used to index to total RX queue across groups and
496 * @rxdids: Supported RX descriptor ids
497 * @rx_ptype_lkup: LUT of Rx ptypes
500 * @next_to_alloc: RX buffer to allocate at
503 * @cached_phc_time: Cached PHC time for the Rx queue
510 * @rx_buffer_low_watermark: RX buffer low watermark
513 * @rx_max_pkt_size: RX max packet size
518 union virtchnl2_rx_desc *rx; member
575 * struct idpf_tx_queue - software structure representing a transmit queue
597 * --------------------------------
598 * | GEN=0-1023 |IDX = 0-63|
599 * --------------------------------
605 * --------------------------------
606 * |GEN | IDX = 0-8159 |
607 * --------------------------------
623 * @tx_max_bufs: Max buffers that can be transmitted with scatter-gather
624 * @stash: Tx buffer stash for Flow-based scheduling mode
699 * struct idpf_buf_queue - software structure representing a buffer queue
710 * @next_to_alloc: RX buffer to allocate at
717 * @rx_buffer_low_watermark: RX buffer low watermark
758 * struct idpf_compl_queue - software structure representing a completion queue
837 * @rxq: RX queue
874 * @singleq.num_rxq: Number of RX queues associated
875 * @singleq.rxqs: Array of RX queue pointers
877 * @splitq.num_rxq_sets: Number of RX queue sets
878 * @splitq.rxq_sets: Array of RX queue sets
935 cpu = cpumask_first(&q_vector->napi.config->affinity_mask); in idpf_q_vector_to_mem()
941 * idpf_size_to_txd_count - Get number of descriptors needed for large Tx frag
954 * idpf_tx_singleq_build_ctob - populate command tag offset and size
979 * idpf_tx_splitq_build_desc - determine which type of data descriptor to build
989 if (params->dtype == IDPF_TX_DESC_DTYPE_FLEX_L2TAG1_L2TAG2) in idpf_tx_splitq_build_desc()
996 * idpf_vport_intr_set_wb_on_itr - enable descriptor writeback on disabled interrupts
1003 if (q_vector->wb_on_itr) in idpf_vport_intr_set_wb_on_itr()
1006 q_vector->wb_on_itr = true; in idpf_vport_intr_set_wb_on_itr()
1007 reg = &q_vector->intr_reg; in idpf_vport_intr_set_wb_on_itr()
1009 writel(reg->dyn_ctl_wb_on_itr_m | reg->dyn_ctl_intena_msk_m | in idpf_vport_intr_set_wb_on_itr()
1010 (IDPF_NO_ITR_UPDATE_IDX << reg->dyn_ctl_itridx_s), in idpf_vport_intr_set_wb_on_itr()
1011 reg->dyn_ctl); in idpf_vport_intr_set_wb_on_itr()