idpf_vport_intr_dis_dim_all(9)
π idpf_vport_intr_dis_dim_all(9) β bestie edition π
okay so, welcome to the Kernel API Manual entry for idpf_vport_intr_dis_dim_all(9) β yes the name is a mouthful, yes I say it in one breath, and yes it's lowkey iconic. grab a snack π, this one is short and sweet but she's important.
β¨ NAME β¨
idpf_vport_intr_dis_dim_all β Disable DIM work for all q_vectors π
like, all of them. no stragglers. periodt.
πΈ SYNOPSIS πΈ
void idpf_vport_intr_dis_dim_all (struct idpf_q_vec_rsrc *rsrc );
she takes one argument, returns void, and minds her own business π
π¦ ARGUMENTS π¦
rsrcβ pointer to queue and vector resources. that's the whole vibe check here, she just needs to know where the q_vectors live β¨
π₯ DESCRIPTION π₯
okay so here's the lore, and honestly it's giving "cleanup crew has to be thorough" π
The DIM works are embedded in the q_vector array that idpf_vport_intr_rel frees, and the poll arms them after napi_complete_done has already cleared NAPI_STATE_SCHED.
read that again bestie, because it matters: the works live inside stuff that gets freed, and the poll can arm them at a moment when things are already deep into teardown. messy.
so the move is β Disable rather than just cancel, so that a poll tail still running past napi_disable cannot queue them again behind the drain. not cancel, disable. that distinction is the whole main character energy of this function π
ngl the difference between "cancel" and "disable" here is exactly the kind of tiny detail that saves you from a very bad day π
π SEE ALSO π
Kernel file ./drivers/net/ethernet/intel/idpf/idpf_txrx.c β go read the source, iykyk π«Ά
and now the friend group, and bestie it is a large friend group, buckle up:
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)
still going, don't scroll away on me π
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_splitq_clean(9), idpf_rx_update_bufq_desc(9), idpf_rx_clean_refillq(9), idpf_rx_clean_refillq_all(9)
and the interrupt girlies, our actual neighbors, hi besties π«Ά
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_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)
and the rss crew closing us out, absolute legends π
idpf_config_rss(9), idpf_fill_dflt_rss_lut(9), idpf_init_rss_lut(9), idpf_deinit_rss_lut(9)
that's the whole page, no cap π
π little sign-off from the source:./drivers/net/ethernet/intel/idpf, datedOctober 2026. go off, queen, thanks for the docs π«Άβ¨
π¦ 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