sge_timer_rx(9)
π sge_timer_rx(9) β the Kernel API Manual glow-up π
okay so bestie, welcome to the Kernel API Manual entry for sge_timer_rx β¨ this is the little timer callback that keeps your SGE qset looking fresh β think of it as the scheduled self-care appointment for your queue set π
β¨ NAME β¨
sge_timer_rx β does the periodic maintenance on an SGE qset, no cap π§
πΈ SYNOPSIS πΈ
void sge_timer_rx (struct timer_list *t );
literally one argument, one return type, void all the way, slay π
π¦ ARGUMENTS π¦
tβ the timer list that's holding the SGE queue set we're supposed to maintain, iykyk π«Ά
π₯ DESCRIPTION π₯
so there's basically two whole jobs happening in here, and both of them are iconic in their own way:
a) It replenishes Rx queues that have run out of buffers because of a memory shortage π normally new Rx buffers get added whenever the existing ones get consumed, but when you're out of memory a queue can just... go empty. which is a vibe check nobody wants. so we try to add only a few buffers here β not the whole stash β and then the queue gets replenished fully as those new buffers get used up, but only if the memory shortage has subsided by then. patient queen behavior π
b) It returns coalesced response queue credits, in case a response queue is starved π like, handing back the credits so the poor thing can breathe again.
π SEE ALSO π
the whole friend group, fr fr β they all live in the kernel file ./drivers/net/ethernet/chelsio/cxgb3/sge.c:
refill_rspq(9),need_skb_unmap(9),unmap_skb(9),free_tx_desc(9),reclaim_completed_tx(9),should_restart_tx(9)free_rx_bufs(9),add_one_rx_buf(9),refill_fl(9),recycle_rx_buf(9),alloc_ring(9),t3_reset_qset(9)t3_free_qset(9),init_qset_cntxt(9),sgl_len(9),flits_to_desc(9),get_packet(9),get_packet_pg(9)get_imm_packet(9),calc_tx_descs(9),write_sgl(9),check_ring_tx_db(9),write_wr_hdr_sgl(9),write_tx_pkt_wr(9)t3_eth_xmit(9),write_imm(9),check_desc_avail(9),reclaim_completed_tx_imm(9),ctrl_xmit(9),restart_ctrlq(9)deferred_unmap_destructor(9),write_ofld_wr(9),calc_tx_descs_ofld(9),ofld_xmit(9),restart_offloadq(9),queue_set(9)is_ctrl_pkt(9),t3_offload_tx(9),offload_enqueue(9),deliver_partial_bundle(9),ofld_poll(9),rx_offload(9)restart_tx(9),cxgb3_arp_process(9),rx_eth(9),lro_add_page(9),handle_rsp_cntrl_info(9),check_ring_db(9)is_new_response(9),process_responses(9),napi_rx_handler(9),process_pure_responses(9),handle_responses(9),t3_intr_handler(9)t3_sge_err_intr_handler(9),sge_timer_tx(9),t3_update_qset_coalesce(9),t3_sge_alloc_qset(9),t3_start_sge_timers(9),t3_stop_sge_timers(9)t3_free_sge_resources(9),t3_sge_start(9),t3_sge_stop_dma(9),t3_sge_stop(9),t3_sge_init(9),t3_sge_prep(9)
not me ending this with the lil footer crumbs π₯Ί the source path got cut off as ./drivers/net/ethernet/chelsio... and the date on the page is October 2026 β that's the whole sign-off bestie, mwah π periodt β¨π
π¦ 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