idpf_rx_splitq_clean(9)
β¨ idpf_rx_splitq_clean(9) β the kernel API manual, bestie edition β¨
okay so this is a page out of the Kernel API Manual, and it's about idpf_rx_splitq_clean π
ngl the name is a mouthful but she's doing important work. Let's get into it π«Ά
πΈ NAME πΈ
idpf_rx_splitq_clean β Clean completed descriptors from Rx queue π§Ήβ¨
π¦ SYNOPSIS π¦
int idpf_rx_splitq_clean (struct idpf_rx_queue *rxq , int budget );
π ARGUMENTS π
rxqβ the Rx descriptor queue she's pulling from, aka the place you go to retrieve the receive buffer queue πbudgetβ the total limit on how many packets you're allowed to process. it's giving "you may only take this much candy" energy π
π DESCRIPTION π
So here's the vibe: this function brings a "bounce buffer" approach to Rx interrupt processing π₯ and honestly? iconic. The whole point β the advantage, the main character energy β is that on systems where IOMMU access is expensive overhead, this gives you a way to avoid it, by maintaining the mapping of the page to the system. basically she keeps the receipt so you don't have to pay again π β¨
π RETURN π
the amount of work completed ππͺ
β SEE ALSO β
Kernel file ./drivers/net/ethernet/intel/idpf/idpf_txrx.c β plus literally the entire extended friend group, fr fr π«Ά:
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_splitq_clean(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_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)
no cap, that SEE ALSO list is a whole group chat and everyone's invited π but likeβ¦ read them, they're all connected iykyk π§
and that's the page!! π it lives in ./drivers/net/ethernet/intel/idpf and this drop is dated October 2026 β periodt, go clean those descriptors bestie ππ
π¦ 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