igc_update_itr(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… igc_update_itr(9) β€” like, the glow-up your interrupt throttling deserves

okay so this is a page from the Kernel API Manual, bestie β€” specifically igc_update_itr(9), and we're about to make it make sense. sit down, grab a strawberry drink πŸ“, and let's get into it.


✨ NAME ✨

igc_update_itr β€” update the dynamic ITR value based on statistics πŸ¦‹


πŸŽ€ SYNOPSIS πŸŽ€

void igc_update_itr (struct igc_q_vector *q_vector , struct
       igc_ring_container *ring_container );

not me formatting a whole function signature and it's got a line break in the middle πŸ’€ literally just two pointers going in and void coming out, no return value, no drama.


🌸 ARGUMENTS 🌸

  • q_vector β€” a pointer to the q_vector. that's the whole vibe check, she points at things πŸ’…
  • ring_container β€” the ring info to update the itr for. this is the one that actually matters for the math, bestie πŸ”₯

πŸ‘‘ DESCRIPTION πŸ‘‘

so here's the tea β˜•: this function stores a new ITR value based on the packets and byte counts from the last interrupt. that's it, that's the plot.

the advantage of doing this computation per interrupt is:

  • faster updates ⚑
  • more accurate ITR for the current traffic pattern 🎯

the constants in this function were computed based on theoretical maximum wire speed, and the thresholds were set based on testing data β€” while also attempting to minimize response time while increasing bulk throughput. so like, it's giving "I did the math and then I also went to the lab" energy 🧚✨


πŸ™ˆ NOTE πŸ™ˆ

these calculations are only valid when operating in a single-queue environment. that's not a suggestion, that's the law, bestie. multi-queue and you're on your own πŸ’€

🌈 SEE ALSO 🌈

she's a Kernel file bestie first and foremost:

./drivers/net/ethernet/intel/igc/igc_main.c

and then, okay, brace yourself, this list is long β€” literally the entire igc friend group showed up to the party 🫢:

igc_power_up_link(9), igc_release_hw_control(9), igc_get_hw_control(9), igc_clean_tx_ring(9), igc_free_tx_resources(9), igc_free_all_tx_resources(9), igc_clean_all_tx_rings(9), igc_disable_all_tx_rings_hw(9), igc_setup_tx_resources(9), igc_setup_all_tx_resources(9), igc_clean_rx_ring(9), igc_clean_all_rx_rings(9), igc_free_rx_resources(9), igc_free_all_rx_resources(9), igc_setup_rx_resources(9), igc_setup_all_rx_resources(9), igc_configure_rx_ring(9), igc_configure_rx(9), igc_configure_tx_ring(9), igc_configure_tx(9), igc_setup_mrqc(9), igc_setup_rctl(9), igc_setup_tctl(9), igc_set_mac_filter_hw(9), igc_clear_mac_filter_hw(9), igc_set_mac(9), igc_write_mc_addr_list(9), igc_process_skb_fields(9), igc_add_rx_frag(9), igc_reuse_rx_page(9), igc_is_non_eop(9), igc_cleanup_headers(9), igc_alloc_rx_buffers(9), igc_clean_tx_irq(9), igc_add_mac_filter(9), igc_del_mac_filter(9), igc_add_vlan_prio_filter(9), igc_del_vlan_prio_filter(9), igc_add_etype_filter(9), igc_del_etype_filter(9), igc_get_nfc_rule(9), igc_del_nfc_rule(9), igc_add_nfc_rule(9), igc_enable_empty_addr_recv(9), igc_set_rx_mode(9), igc_configure(9), igc_write_ivar(9), igc_configure_msix(9), igc_irq_enable(9), igc_irq_disable(9), igc_reset_q_vector(9), igc_free_q_vector(9), igc_free_q_vectors(9), igc_set_interrupt_capability(9), igc_update_ring_itr(9), igc_cache_ring_register(9), igc_poll(9), igc_alloc_q_vector(9), igc_alloc_q_vectors(9), igc_init_interrupt_scheme(9), igc_sw_init(9), igc_up(9), igc_update_stats(9), igc_down(9), igc_change_mtu(9), igc_tx_timeout(9), igc_get_stats64(9), igc_msix_other(9), igc_request_msix(9), igc_clear_interrupt_scheme(9), igc_has_link(9), igc_watchdog(9), igc_intr_msi(9), igc_intr(9), igc_request_irq(9), __igc_open(9), __igc_close(9), igc_probe(9), igc_remove(9), igc_io_error_detected(9), igc_io_slot_reset(9), igc_io_resume(9), igc_reinit_queues(9), igc_get_hw_dev(9), igc_init_module(9), igc_exit_module(9)

like I said. everyone is here. no cap πŸ’œ


and that's the page, bestie β€” mwah πŸ’‹

πŸ¦‹ this cute lil' writeup is brought to you by the source tree ./drivers/net/ethernet/intel/igc and it's dated October 2026, so yes she's from the future and she's still iconic. periodt. βœ¨πŸ‘‘

πŸ“¦ where this page comes from