idpf_tx_splitq_clean(9)
π NAME π
okay so bestie, this is idpf_tx_splitq_clean(9) from the Kernel API Manual β and the name is literally idpf_tx_splitq_clean : Reclaim resources from buffer queue. Slay. π
β¨ SYNOPSIS β¨
void idpf_tx_splitq_clean (struct idpf_tx_queue *tx_q , u16 end , int
napi_budget , struct libeth_sq_napi_stats *cleaned , bool descs_only );
π«Ά ARGUMENTS π«Ά
tx_qβ the Tx queue to clean, bestie πendβ queue index until which it should be cleaned; like where the cleaning stops β¨napi_budgetβ used to determine if we are in netpoll πcleanedβ pointer to stats struct to track cleaned packets/bytes πdescs_onlyβtrueif queue is using flow-based scheduling and should not clean buffers at this time π«Ά
πΈ DESCRIPTION πΈ
Okay so this function cleans the queue descriptor ring. If the queue is using queue-based scheduling, the buffers will be cleaned as well β periodt. If the queue is using flow-based scheduling, only the descriptors are cleaned at this time. No cap.
Separate packet completion events will be reported on the completion queue, and the buffers will be cleaned separately. Also lowkey important: the stats are not updated from this function when using flow-based scheduling. That's the vibe check β descriptors now, buffers later, stats stay quiet in that mode. π
π¦ SEE ALSO π¦
okay so the cross-reference roll call is:
- Kernel file bestie:
./drivers/net/ethernet/intel/idpf/idpf_txrx.c idpf_chk_linearize(9),idpf_tx_timeout(9),idpf_tx_buf_rel_all(9),idpf_tx_desc_rel(9),idpf_compl_desc_rel(9),idpf_tx_desc_rel_all(9),idpf_tx_buf_alloc_all(9),idpf_tx_desc_alloc(9),idpf_compl_desc_alloc(9),idpf_tx_desc_alloc_all(9),idpf_rx_page_rel(9),idpf_rx_hdr_buf_rel_all(9),idpf_rx_buf_rel_bufq(9),idpf_rx_buf_rel_all(9),idpf_rx_desc_rel(9),idpf_rx_desc_rel_bufq(9),idpf_rx_desc_rel_all(9),idpf_rx_buf_hw_update(9),idpf_rx_hdr_buf_alloc_all(9),idpf_post_buf_refill(9),idpf_rx_post_buf_desc(9),idpf_rx_post_init_bufs(9),idpf_rx_buf_alloc_singleq(9),idpf_rx_bufs_init_singleq(9),idpf_rx_buf_alloc_all(9),idpf_rx_bufs_init(9),idpf_rx_bufs_init_all(9),idpf_rx_desc_alloc(9),idpf_bufq_desc_alloc(9),idpf_rx_desc_alloc_all(9),idpf_vector_to_queue_set(9),idpf_qp_switch(9),idpf_txq_group_rel(9),idpf_rxq_sw_queue_rel(9),idpf_rxq_group_rel(9),idpf_vport_queue_grp_rel_all(9),idpf_vport_queues_rel(9),idpf_vport_init_fast_path_txqs(9),idpf_vport_init_num_qs(9),idpf_vport_calc_num_q_desc(9),idpf_vport_calc_total_qs(9),idpf_vport_calc_num_q_groups(9),idpf_vport_calc_numq_per_grp(9),idpf_rxq_set_descids(9),idpf_txq_group_alloc(9),idpf_rxq_group_alloc(9),idpf_vport_queue_grp_alloc_all(9),idpf_vport_queues_alloc(9),idpf_tx_read_tstamp(9),idpf_tx_clean_bufs(9),idpf_tx_handle_rs_completion(9),idpf_tx_clean_complq(9),idpf_wait_for_sw_marker_completion(9),idpf_tx_splitq_build_ctb(9),idpf_tx_splitq_build_flow_desc(9),idpf_txq_has_room(9),idpf_tx_maybe_stop_splitq(9),idpf_tx_buf_hw_update(9),idpf_tx_res_count_required(9),idpf_tx_splitq_bump_ntu(9),idpf_tx_get_free_buf_id(9),idpf_tx_splitq_pkt_err_unmap(9),idpf_tx_splitq_map(9),idpf_tso(9),idpf_tx_splitq_get_ctx_desc(9),idpf_tx_drop_skb(9),idpf_tx_tstamp(9),idpf_tx_set_tstamp_desc(9),idpf_tx_splitq_need_re(9),idpf_tx_splitq_frame(9),idpf_tx_start(9),idpf_rx_hash(9),idpf_rx_csum(9),idpf_rx_splitq_extract_csum_bits(9),idpf_rx_rsc(9),idpf_rx_hwtstamp(9),__idpf_rx_process_skb_fields(9),idpf_rx_hsplit_wa(9),idpf_rx_splitq_test_staterr(9),idpf_rx_splitq_is_eop(9),idpf_rx_splitq_clean(9),idpf_rx_update_bufq_desc(9),idpf_rx_clean_refillq(9),idpf_rx_clean_refillq_all(9),idpf_vport_intr_clean_queues(9),idpf_vport_intr_napi_del_all(9),idpf_vport_intr_napi_dis_all(9),idpf_vport_intr_rel(9),idpf_vport_intr_rel_irq(9),idpf_vport_intr_dis_irq_all(9),idpf_vport_intr_buildreg_itr(9),idpf_update_dim_sample(9),idpf_net_dim(9),idpf_vport_intr_update_itr_ena_irq(9),idpf_vport_intr_req_irq(9),idpf_vport_intr_write_itr(9),idpf_vport_intr_ena_irq_all(9),idpf_vport_intr_dis_dim_all(9),idpf_vport_intr_deinit(9),idpf_tx_dim_work(9),idpf_rx_dim_work(9),idpf_init_dim(9),idpf_vport_intr_napi_ena_all(9),idpf_tx_splitq_clean_all(9),idpf_rx_splitq_clean_all(9),idpf_vport_splitq_napi_poll(9),idpf_vport_intr_map_vector_to_qs(9),idpf_vport_intr_init_vec_idx(9),idpf_vport_intr_napi_add_all(9),idpf_vport_intr_alloc(9),idpf_vport_intr_init(9),idpf_config_rss(9),idpf_fill_dflt_rss_lut(9),idpf_init_rss_lut(9),idpf_deinit_rss_lut(9)
source/version: ./drivers/net/ethernet/intel/idpf Β· date: October 2026 β that's the whole page bestie, you ate ππ«Άβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms