__ice_alloc_rx_bufs_zc(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ __ice_alloc_rx_bufs_zc(9) ✨

okay so bestie, we're in the Kernel API Manual today and this one is a little zero-copy baddie from the ice driver family πŸ§ŠπŸ’… she allocates Rx buffers and she does it fast.


🌸 NAME 🌸

__ice_alloc_rx_bufs_zc β€” allocate a number of Rx buffers πŸŽ€


✨ SYNOPSIS ✨

bool __ice_alloc_rx_bufs_zc (struct ice_rx_ring *rx_ring , struct
       xsk_buff_pool *xsk_pool , u16 count );

like, look at her go 😭 three args, one bool return, no notes.


🫢 ARGUMENTS 🫢

  • rx_ring β€” the Rx ring πŸ’« literally the ring we're filling, main character of the whole operation.
  • xsk_pool β€” the XSK buffer pool we pick buffers from, the ones that are gonna get filled by HW πŸ”₯
  • count β€” the number of buffers to allocate. yes bestie, that many. exactly that many 🌈

πŸ‘‘ DESCRIPTION πŸ‘‘

So here's the vibe check πŸ’… this function places count descriptors onto the Rx ring. That's the whole assignment, and she ate.

Then there's the ring-wrap situation πŸŒ€ β€” she handles the wrap for the case where the space from next_to_use up to the end of the ring is less than count. no cap, that's the fiddly bit and she's got it.

Finally she does a tail bump πŸŽ€ little bump, big energy.

Returns true if all allocations were successful, false if any fail. so fr fr, check your return value πŸ™ˆ

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file: ./drivers/net/ethernet/intel/ice/ice_xsk.c ⭐

and the whole friend group πŸ’–:

ice_qvec_toggle_napi(9), ice_qvec_dis_irq(9), ice_qvec_cfg_msix(9), ice_qvec_ena_irq(9), ice_xsk_pool_disable(9), ice_xsk_pool_enable(9), ice_realloc_rx_xdp_bufs(9), ice_xsk_pool_setup(9), ice_fill_rx_descs(9), ice_alloc_rx_bufs_zc(9), ice_clean_xdp_irq_zc(9), ice_xmit_xdp_tx_zc(9), ice_run_xdp_zc(9), ice_clean_rx_irq_zc(9), ice_xmit_pkt(9), ice_xmit_pkt_batch(9), ice_fill_tx_hw_ring(9), ice_xmit_zc(9), ice_xsk_wakeup(9), ice_xsk_any_rx_ring_ena(9), ice_xsk_clean_rx_ring(9), ice_xsk_clean_xdp_ring(9)


and that's the page, bestie πŸ§šπŸ’œ straight out of ./drivers/net/ethernet/intel/ice, dated October 2026, and she's filed under __ice_alloc_rx_bufs_zc(9) forever. slay πŸ’…βœ¨πŸ“

πŸ“¦ where this page comes from