t4_tx_completion_handler(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– 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