t4_tx_completion_handler(9)
π t4_tx_completion_handler π
okay so bestie, this page comes from the Kernel API Manual, and our main character is t4_tx_completion_handler. Its whole job is handling CPL_SGE_EGR_UPDATE messages, and honestly? Iconic. π
β¨ NAME β¨
t4_tx_completion_handler β handle CPL_SGE_EGR_UPDATE messages. Periodt.
π SYNOPSIS π
void t4_tx_completion_handler (struct sge_rspq *rspq , const __be64 *rsp
, const struct pkt_gl *gl );
π¦ ARGUMENTS π¦
rspqβ Ethernet RX Response Queue associated with Ethernet TX Queue. Yes bestie, that's the exact queue relationship, don't @ me.rspβ Response Entry pointer into Response Queue. Literally a pointer into the response queue. πΈglβ Gather List pointer. The gather list pointer, slay. π§
πΈ DESCRIPTION πΈ
okay so here's the tea β: for adapters which support the SGE Doorbell Queue Timer facility, we configure the Ethernet TX Queues to send CIDX Updates to the Associated Ethernet RX Response Queue with CPL_SGE_EGR_UPDATE messages. That's the setup, no cap.
This adds a small load to PCIe Link RX bandwidth and, potentially, higher CPU Interrupt load, but it allows us to respond much more quickly to the CIDX Updates. That speed-up is the whole point. This is important for Upper Layer Software which isn't willing to have a large amount of TX Data outstanding before receiving DMA Completions. So yeah, a lil more bandwidth/interrupt load in exchange for quicker CIDX Update response energy β tradeoffs, bestie. π
π SEE ALSO π
Kernel file ./drivers/net/ethernet/chelsio/cxgb4/sge.c β and the full squad roll call, all in their original order: txq_avail(9), fl_cap(9), fl_starving(9), deferred_unmap_destructor(9), free_tx_desc(9), reclaim_completed_tx(9), cxgb4_reclaim_completed_tx(9), free_rx_bufs(9), unmap_rx_buf(9), refill_fl(9), alloc_ring(9), sgl_len(9), flits_to_desc(9), is_eth_imm(9), calc_tx_flits(9), cxgb4_write_sgl(9), cxgb4_ring_tx_db(9), cxgb4_inline_tx_skb(9), t4_sge_eth_txq_egress_update(9), cxgb4_eth_xmit(9), t4vf_is_eth_imm(9), t4vf_calc_tx_flits(9), cxgb4_vf_eth_xmit(9), reclaim_completed_tx_imm(9), cxgb4_ethofld_send_flowc(9), is_imm(9), ctrlq_check_stop(9), ctrl_xmit(9), restart_ctrlq(9), t4_mgmt_tx(9), is_ofld_imm(9), calc_tx_flits_ofld(9), txq_stop_maperr(9), ofldtxq_stop(9), service_ofldq(9), ofld_xmit(9), restart_ofldq(9), skb_txq(9), is_ctrl_pkt(9), t4_ofld_send(9), cxgb4_ofld_send(9), ofld_xmit_direct(9), t4_crypto_send(9), cxgb4_crypto_send(9), cxgb4_pktgl_to_skb(9), t4_pktgl_free(9), cxgb4_sgetim_to_hwtstamp(9), t4_systim_to_hwstamp(9), t4_rx_hststamp(9), t4_tx_hststamp(9), t4_ethrx_handler(9), restore_rx_bufs(9), is_new_response(9), rspq_next(9), process_responses(9), napi_rx_handler(9), t4_intr_handler(9), bar2_address(9), t4_sge_alloc_eth_txq(9), t4_free_sge_resources(9), t4_sge_stop(9), t4_sge_init_soft(9), t4_sge_init(9).
kisses bestie π β this page's source/version line is ./drivers/net/ethernet/chelsio..., dated October 2026, and it's t4_tx_completion_handler(9) out. π«Άβ¨
π¦ 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