napi_rx_handler(9)
β¨ napi_rx_handler(9) β¨
okay so bestie, we're in the Kernel API Manual today and the star of the show is napi_rx_handler β the NAPI handler for RX processing π
πΈ NAME πΈ
napi_rx_handler β the NAPI handler for RX processing π
π¦ SYNOPSIS π¦
int napi_rx_handler (struct napi_struct *napi , int budget );
β¨ ARGUMENTS β¨
napiβ the napi instance π«Άbudgetβ how many packets we can process in this round, like your fave limited-edition drop, there's a cap on how many you get per round π₯
π DESCRIPTION π
So this is the handler for new data events when you're using NAPI. And the iconic part? it does not need any locking or protection from interrupts β like, none at all, no cap π Because data interrupts are already off at this point, and the other adapter interrupts don't interfere either. (And that second bit isn't even a concern at all with MSI-X, since non-data interrupts get their own separate handler. slay.)
π SEE ALSO π
Kernel file ./drivers/net/ethernet/chelsio/cxgb4vf/sge.c β go read it, iykyk π
and the whole friend group of related pages, fr fr:
get_buf_addr(9)is_buf_mapped(9)need_skb_unmap(9)txq_avail(9)fl_cap(9)fl_starving(9)map_skb(9)free_tx_desc(9)reclaim_completed_tx(9)get_buf_size(9)free_rx_bufs(9)unmap_rx_buf(9)ring_fl_db(9)set_rx_sw_desc(9)refill_fl(9)alloc_ring(9)sgl_len(9)flits_to_desc(9)is_eth_imm(9)calc_tx_flits(9)write_sgl(9)ring_tx_db(9)inline_tx_skb(9)t4vf_eth_xmit(9)copy_frags(9)t4vf_pktgl_to_skb(9)t4vf_pktgl_free(9)do_gro(9)t4vf_ethrx_handler(9)is_new_response(9)restore_rx_bufs(9)rspq_next(9)process_responses(9)t4vf_intr_handler(9)sge_rx_timer_cb(9)sge_tx_timer_cb(9)bar2_address(9)t4vf_sge_alloc_rxq(9)t4vf_sge_alloc_eth_txq(9)t4vf_free_sge_resources(9)t4vf_sge_start(9)t4vf_sge_stop(9)t4vf_sge_init(9)
okay that's the whole thing bestie, hope this ate π
source path is ./drivers/net/ethernet/chelsio... and this is dated October 2026 β catch you in the next manual page, mwah π«Άβ¨π
π¦ 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