svc_rdma_read_chunk_range(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… svc_rdma_read_chunk_range(9)

okay so bestie, welcome to the Kernel API Manual ✨ β€” today's main character is svc_rdma_read_chunk_range, and honestly? she's a baddie. She builds RDMA Read WRs for a portion of a chunk. Not the whole chunk. A portion. She's precise like that. πŸŽ€


🌸 NAME 🌸

svc_rdma_read_chunk_range β€” Build RDMA Read WRs for portion of a chunk

✨ SYNOPSIS ✨

int svc_rdma_read_chunk_range (struct svc_rqst *rqstp , struct
svc_rdma_recv_ctxt *head , const struct svc_rdma_chunk *chunk , unsigned
int offset , unsigned int length );

literally the whole signature, no cuts, no remixes. 🫢

πŸ¦‹ ARGUMENTS πŸ¦‹

  • rqstp β€” the RPC transaction context. the setting, the vibe, the whole situation πŸ’œ
  • head β€” context for ongoing I/O. she's holding the lore for what's currently happening.
  • chunk β€” the parsed Call chunk to pull from. the parsed part is important, iykyk 🧚
  • offset β€” offset of the region to pull. where we start, periodt.
  • length β€” length of region to pull. how much we're taking. no more, no less ✨

πŸ”₯ DESCRIPTION πŸ”₯

so like, this function goes and builds those RDMA Read WQEs for a slice of a chunk, and then it tells you how it went. and because this is kernel land, "how it went" is a whole mood board of return values πŸ’€

Return values:

  • 0 β€” RDMA Read WQEs were successfully built. ate. no crumbs. πŸ‘‘
  • -EINVAL β€” there were not enough resources to finish 😭
  • -ENOMEM β€” the rdma_rw context pool was exhausted 🫠
  • -ENOTCONN β€” posting failed (connection is lost) πŸ’€
  • -EIO β€” rdma_rw initialization failed (DMA mapping, etc) πŸ™ˆ
ngl bestie, when you see anything other than 0 come back, that's your sign to actually read the error instead of scrolling past it. every single one of those has a different cause and a different fix. the lore matters. πŸ’…

🌈 SEE ALSO 🌈

the Kernel file lives right here, go be nosy:

./net/sunrpc/xprtrdma/svc_rdma_rw.c

and here's the whole friend group, fr fr β€” every single one, in order:

svc_rdma_destroy_rw_ctxts(9), svc_rdma_rw_ctx_init(9), svc_rdma_cc_init(9), svc_rdma_cc_release(9), svc_rdma_write_chunk_release(9), svc_rdma_reply_chunk_release(9), svc_rdma_reply_done(9), svc_rdma_write_done(9), svc_rdma_wc_read_done(9), svc_rdma_iov_write(9), svc_rdma_pages_write(9), svc_rdma_xb_write(9), svc_rdma_prepare_write_list(9), svc_rdma_prepare_reply_chunk(9), svc_rdma_build_read_segment(9), svc_rdma_build_read_chunk(9), svc_rdma_copy_inline_range(9), svc_rdma_read_multiple_chunks(9), svc_rdma_read_data_item(9), svc_rdma_read_call_chunk(9), svc_rdma_read_special(9), svc_rdma_process_read_list(9)


okay that's the whole page, you're officially educated πŸ’– this one came from ./net/sunrpc/xprtrdma, dated October 2026, manual section svc_rdma_read_chunk_range(9) β€” and yes she served, we love her, mwah πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from