srpt_alloc_ioctx_ring(9)
π NAME π
srpt_alloc_ioctx_ring β okay so bestie, this is the function that allocates a ring of SRPT I/O context structures. That's literally the whole vibe: ring, I/O contexts, allocated β¨ (also hi, you're in section 9 of the Kernel API Manual, love that for us π)
πΈ SYNOPSIS πΈ
struct srpt_ioctx ** srpt_alloc_ioctx_ring (struct srpt_device *sdev ,
int ring_size , int ioctx_size , struct kmem_cache *buf_cache , int
alignment_offset , enum dma_data_direction dir );
π¦ ARGUMENTS π¦
Bestie, the tea on the parameters, one by one, no skips π
sdevβ the device you're allocating the I/O context ring for. Like, the whole reason this ring exists, iykyk.ring_sizeβ how many elements go in the I/O context ring. Count them, don't guess πioctx_sizeβ the size of the I/O context. Yes, it's called that. We love a literal king.buf_cacheβ the I/O buffer cache. Slay, cache.alignment_offsetβ the offset in each ring buffer at which the SRP information unit starts. This one's doing the most, honestly, and we respect it π«Άdirβ DMA data direction. Direction matters, always has π
π SEE ALSO π
First things first, the kernel file to go peek at: ./drivers/infiniband/ulp/srpt/ib_srpt.c π₯
And now the friend group, the whole entire squad, in order, because we do not leave anyone out π:
srpt_event_handler(9)srpt_srq_event(9)srpt_qp_event(9)srpt_set_ioc(9)srpt_get_class_port_info(9)srpt_get_iou(9)srpt_get_ioc(9)srpt_get_svc_entries(9)srpt_mgmt_method_get(9)srpt_mad_send_handler(9)srpt_mad_recv_handler(9)srpt_refresh_port(9)srpt_unregister_mad_agent(9)srpt_alloc_ioctx(9)srpt_free_ioctx(9)srpt_free_ioctx_ring(9)srpt_set_cmd_state(9)srpt_test_and_set_cmd_state(9)srpt_post_recv(9)srpt_zerolength_write(9)srpt_get_desc_tbl(9)srpt_init_ch_qp(9)srpt_ch_qp_rtr(9)srpt_ch_qp_rts(9)srpt_ch_qp_err(9)srpt_get_send_ioctx(9)srpt_abort_cmd(9)srpt_rdma_read_done(9)srpt_build_cmd_rsp(9)srpt_build_tskmgmt_rsp(9)srpt_handle_cmd(9)srpt_handle_tsk_mgmt(9)srpt_handle_new_iu(9)srpt_send_done(9)srpt_create_ch_ib(9)srpt_close_ch(9)srpt_cm_req_recv(9)srpt_cm_rtu_recv(9)srpt_cm_handler(9)srpt_queue_response(9)srpt_release_sport(9)srpt_lookup_port(9)srpt_add_one(9)srpt_remove_one(9)srpt_close_session(9)srpt_parse_i_port_id(9)srpt_make_tpg(9)srpt_drop_tpg(9)srpt_make_tport(9)srpt_drop_tport(9)srpt_init_module(9)
fr fr, go read the whole squad, they're all iconic and they all live in the same corner of the kernel πβ¨
And that's the page, bestie π§ this little masterpiece comes to you from ./drivers/infiniband/ulp/srpt, dated October 2026 β periodt, take care of her ππ
π¦ 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