i40e_detect_recover_hung(9)
π
i40e_detect_recover_hung π
okay so this is the Kernel API Manual page for i40e_detect_recover_hung, and bestie, it's a whole little baddie of a function π the manual name is literally right there in the title so you already know what we're doing β let's get into it β¨
πΈ NAME πΈ
i40e_detect_recover_hung β literally the function whose whole job is detecting and recovering hung_queues π no cap, that's the name, that's the job, periodt.
π¦ SYNOPSIS π¦
void i40e_detect_recover_hung (struct i40e_pf *pf );
that's it. that's the whole signature. she's void, she takes one pointer, she's iconic π«Ά
π ARGUMENTS π
pfβ pointer to the PF struct. that's the one and only thing you pass in, bestie. the whole PF, handed over like a lil bouquet π·
β¨ DESCRIPTION β¨
okay so picture this: the LAN VSI has a netdev, and that netdev has TX queues. that's the setup, that's the lore π
what this function does is go check each of those TX queues, one by one, to see if any of them are hung π like a vibe check but for queues, fr fr.
if it finds one that's hung, it triggers recovery by issuing a SW interrupt π₯ that's the slay. that's the whole move. detect the hung queue, hit it with the software interrupt, and let recovery do its thing.
so yeah: LAN VSI β netdev β TX queues β check each one for being hung β issue SW interrupt to trigger recovery. the pipeline ate and left absolutely no crumbs π
π SEE ALSO π
the kernel file we're repping here is ./drivers/net/ethernet/intel/i40e/i40e_txrx.c β go say hi π and then there's the friend group, the whole crew, every single one of them, no skips, no skips, we love a full roster:
i40e_fdir(9)i40e_program_fdir_filter(9)i40e_create_dummy_packet(9)i40e_create_dummy_udp_packet(9)i40e_create_dummy_tcp_packet(9)i40e_create_dummy_sctp_packet(9)i40e_prepare_fdir_filter(9)i40e_change_filter_num(9)i40e_add_del_fdir_udp(9)i40e_add_del_fdir_tcp(9)i40e_add_del_fdir_sctp(9)i40e_add_del_fdir_ip(9)i40e_add_del_fdir(9)i40e_fd_handle_status(9)i40e_unmap_and_free_tx_resource(9)i40e_clean_tx_ring(9)i40e_free_tx_resources(9)i40e_get_tx_pending(9)i40e_clean_tx_irq(9)i40e_enable_wb_on_itr(9)i40e_force_wb(9)i40e_update_itr(9)i40e_reuse_rx_page(9)i40e_clean_programming_status(9)i40e_setup_tx_descriptors(9)i40e_clean_rx_ring(9)i40e_free_rx_resources(9)i40e_setup_rx_descriptors(9)i40e_release_rx_desc(9)i40e_alloc_mapped_page(9)i40e_alloc_rx_buffers(9)i40e_rx_checksum(9)i40e_rx_hash(9)i40e_process_skb_fields(9)i40e_cleanup_headers(9)i40e_can_reuse_rx_page(9)i40e_rx_buffer_flip(9)i40e_get_rx_buffer(9)i40e_put_rx_buffer(9)i40e_process_rx_buffs(9)i40e_construct_skb(9)i40e_build_skb(9)i40e_is_non_eop(9)i40e_run_xdp(9)i40e_xdp_ring_update_tail(9)i40e_update_rx_stats(9)i40e_finalize_xdp_rx(9)i40e_inc_ntp(9)i40e_add_xdp_frag(9)i40e_consume_xdp_buff(9)i40e_clean_rx_irq(9)i40e_buildreg_itr(9)i40e_update_enable_itr(9)i40e_napi_poll(9)i40e_atr(9)i40e_tx_prepare_vlan_flags(9)i40e_tso(9)i40e_tsyn(9)i40e_tx_enable_csum(9)i40e_create_tx_ctx(9)__i40e_maybe_stop_tx(9)__i40e_chk_linearize(9)i40e_tx_map(9)i40e_xmit_xdp_ring(9)i40e_xmit_frame_ring(9)i40e_lan_xmit_frame(9)i40e_xdp_xmit(9)
that's the whole group chat, everybody got invited, nobody left on read π
lowkey reminder bestie: this page is filed under./drivers/net/ethernet/intel/i40e, dated October 2026, and it's a Kernel API Manual entry fori40e_detect_recover_hung(9). that's the sign-off, mwah ππ β¨
π¦ 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