ixgbe_clean_all_tx_rings(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… ixgbe_clean_all_tx_rings β€” the (9) Kernel API Manual moment

Bestie. Gather round. This is ixgbe_clean_all_tx_rings(9), straight out of the kernel API manual, and honestly? It's giving "small function, big responsibilities." πŸŽ€

It lives in the (9) section, which is the section for kernel routines, so yes, we're in the deep dev side of the house. Bring a snack. πŸ“


✨ NAME ✨

ixgbe_clean_all_tx_rings β€” Free Tx Buffers for all queues.

That's it. That's the whole vibe. Not a Tx ring. All of them. Every last queue gets its buffers freed, and the function does not play favorites. πŸ‘‘


🌸 SYNOPSIS 🌸

void ixgbe_clean_all_tx_rings (struct ixgbe_adapter *adapter );

Note the void β€” it does the thing and tells you nothing back, no return value, no little note, no "k thanks bye." It just does the job. Iconic behaviour, lowkey. ✨

And yes, the spacing in that signature is exactly how the manual prints it, down to the space before that closing paren. We do not "fix" the original. We respect the original. 🫢


πŸ’– ARGUMENTS πŸ’–

  • adapter β€” the board private structure. That's the one and only thing you hand it. It's the driver's own little bundle of state for this board, and the function needs it to know which rings it's cleaning. No optional extras, no flags, no secret third argument. Just adapter. Periodt. πŸ’…

πŸ¦‹ SEE ALSO πŸ¦‹

First up, the source of truth, the actual kernel file this thing lives in, no cap:

  • Kernel file ./drivers/net/ethernet/intel/ixgbe/ixgbe_main.c

And then the friends, the neighbours, the whole extended ixgbe family group chat 🌈 β€” every single one of these is a real cross-reference, listed here exactly as the manual has them: ixgbe_pcie_from_parent(9), ixgbe_read_reg(9), ixgbe_set_ivar(9), ixgbe_get_vf_idx(9), ixgbe_tx_timeout_reset(9), ixgbe_tx_maxrate(9), ixgbe_update_tx_ring_stats(9), ixgbe_update_rx_ring_stats(9), ixgbe_pf_handle_tx_hang(9), ixgbe_vf_handle_tx_hang(9), ixgbe_check_illegal_queue(9), ixgbe_handle_mdd_event(9), ixgbe_clean_tx_irq(9), ixgbe_rx_is_fcoe(9), ixgbe_rx_checksum(9), ixgbe_alloc_rx_buffers(9), ixgbe_process_skb_fields(9), ixgbe_is_non_eop(9), ixgbe_pull_tail(9), ixgbe_dma_sync_frag(9), ixgbe_cleanup_headers(9), ixgbe_reuse_rx_page(9), ixgbe_add_rx_frag(9), ixgbe_clean_rx_irq(9), ixgbe_configure_msix(9), ixgbe_update_itr(9), ixgbe_write_eitr(9), ixgbe_check_overtemp_subtask(9), ixgbe_check_phy_fw_load(9), ixgbe_check_module_power(9), ixgbe_check_link_cfg_err(9), ixgbe_process_link_status_event(9), ixgbe_handle_link_status_event(9), ixgbe_schedule_fw_event(9), ixgbe_aci_event_cleanup(9), ixgbe_handle_fw_event(9), ixgbe_irq_enable(9), ixgbe_poll(9), ixgbe_request_msix_irqs(9), ixgbe_intr(9), ixgbe_request_irq(9), ixgbe_irq_disable(9), ixgbe_configure_msi_and_legacy(9), ixgbe_configure_tx_ring(9), ixgbe_configure_tx(9), ixgbe_rss_indir_tbl_entries(9), ixgbe_store_key(9), ixgbe_init_rss_key(9), ixgbe_store_reta(9), ixgbe_store_vfreta(9), ixgbe_configure_rscctl(9), ixgbe_configure_rx(9), ixgbe_vlan_strip_disable(9), ixgbe_vlan_strip_enable(9), ixgbe_write_mc_addr_list(9), ixgbe_set_rx_mode(9), ixgbe_configure_dcb(9), ixgbe_hpbthresh(9), ixgbe_lpbthresh(9), ixgbe_clean_rx_ring(9), ixgbe_enable_link_status_events(9), ixgbe_disable_link_status_events(9), ixgbe_sfp_link_config(9), ixgbe_non_sfp_link_config(9), ixgbe_check_media_subtask(9), ixgbe_clear_vf_stats_counters(9), ixgbe_clean_tx_ring(9), ixgbe_clean_all_rx_rings(9), ixgbe_set_eee_capable(9), ixgbe_tx_timeout(9), ixgbe_sw_init(9), ixgbe_setup_tx_resources(9), ixgbe_setup_all_tx_resources(9), ixgbe_setup_rx_resources(9), ixgbe_setup_all_rx_resources(9), ixgbe_free_tx_resources(9), ixgbe_free_all_tx_resources(9), ixgbe_free_rx_resources(9), ixgbe_free_all_rx_resources(9), ixgbe_max_xdp_frame_size(9), ixgbe_change_mtu(9), ixgbe_open(9), ixgbe_close(9), ixgbe_update_stats(9), ixgbe_fdir_reinit_subtask(9), ixgbe_check_hang_subtask(9), ixgbe_watchdog_update_link(9), ixgbe_watchdog_link_is_up(9), ixgbe_watchdog_link_is_down(9), ixgbe_watchdog_flush_tx(9), ixgbe_watchdog_subtask(9), ixgbe_sfp_detection_subtask(9), ixgbe_sfp_link_config_subtask(9), ixgbe_service_timer(9), ixgbe_check_fw_error(9), ixgbe_service_task(9), ixgbe_set_mac(9), ixgbe_add_sanmac_netdev(9), ixgbe_del_sanmac_netdev(9), ixgbe_validate_rtr(9), ixgbe_set_prio_tc_map(9), ixgbe_setup_tc(9), ixgbe_configure_bridge_mode(9), ixgbe_irq_disable_single(9), ixgbe_txrx_ring_disable(9), ixgbe_txrx_ring_enable(9), ixgbe_enumerate_functions(9), ixgbe_wol_supported(9), ixgbe_set_fw_version_e610(9), ixgbe_set_fw_version(9), ixgbe_recovery_probe(9), ixgbe_probe(9), ixgbe_remove(9), ixgbe_io_error_detected(9), ixgbe_io_slot_reset(9), ixgbe_io_resume(9), ixgbe_init_module(9), ixgbe_exit_module(9).

Like, that is a lot of cousins. But they're all family, and they're all listed here, so we list them all here. No cutting the guest list. πŸ’€

Also, real talk: ixgbe_clean_all_rx_rings(9) is right there in the list next to ixgbe_clean_tx_ring(9) and ixgbe_clean_all_tx_rings's own sibling energy β€” so if you came here looking for the all-queues-everything cleanup vibes, you're in exactly the right place. πŸ’œ

That's the whole page, bestie β€” short, sweet, and it frees every Tx buffer in every queue like the main character it is. πŸ’…βœ¨

This little number came to you from ./drivers/net/ethernet/intel/i... (yes, that's how it's printed, the path gets truncated, we don't make the rules 😭), dated October 2026, and it's the ixgbe_clean_all_tx_rings(9) page, forever and always. Go clean those rings. πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from