irdma_alloc_ucontext(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– irdma_alloc_ucontext(9) β€” the "who dis?" of user contexts πŸ’–

okay so this is a page from the Kernel API Manual (section 9, kernel API, yes bestie we're in the big leagues) and it's about exactly one function. one function! and honestly? she's kind of a big deal because she's the first thing that happens when a user-mode client shows up. 🫢


✨ NAME ✨

irdma_alloc_ucontext β€” allocate the user context data structure 🌸

like, literally. that's the whole job. allocate the thing.


✨ SYNOPSIS ✨

int irdma_alloc_ucontext (struct ib_ucontext *uctx , struct ib_udata *udata );

two pointers in, one int out. she's lowkey efficient like that πŸ’…


✨ ARGUMENTS ✨

  • uctx β€” the uverbs context pointer. this is the main character of the whole operation, the one we're actually setting up πŸŽ€
  • udata β€” user data. coming straight from userspace, as user data does πŸ™ˆ

✨ DESCRIPTION ✨

so what does this actually do, you're asking? it keeps track of, and i quote the vibe, all objects associated with a particular user-mode client. πŸ‘‘

that's it. that's the description. every single object that belongs to one specific user-mode client gets tracked here. one context, one client, everything accounted for, no cap. it's giving "label your stuff or lose your stuff" energy and honestly more kernel code should be this direct πŸ¦‹


✨ SEE ALSO ✨

okay bestie, breathe. this list is long long. the source file lives at ./drivers/infiniband/hw/irdma/verbs.c (the page calls it "Kernel file" and we're keeping that, periodt), and here is every single cross-reference, in order, no skipping, no summarising, i would never do that to you πŸ’œ

irdma_query_device(9), irdma_query_port(9), irdma_disassociate_ucontext(9), irdma_mmap(9), irdma_alloc_push_page(9), irdma_dealloc_ucontext(9), irdma_alloc_pd(9), irdma_dealloc_pd(9), irdma_get_pbl(9), irdma_clean_cqes(9), _irdma_destroy_qp(9), irdma_destroy_qp(9), irdma_setup_virt_qp(9), irdma_setup_umode_qp(9), irdma_setup_kmode_qp(9), irdma_create_qp(9), irdma_query_qp(9), irdma_query_pkey(9), irdma_modify_qp_roce(9), irdma_modify_qp(9), irdma_srq_free_rsrc(9), irdma_cq_free_rsrc(9), irdma_free_cqbuf(9), irdma_process_resize_list(9), irdma_destroy_srq(9), irdma_destroy_cq(9), irdma_resize_cq(9), irdma_srq_event(9), irdma_modify_srq(9), irdma_create_srq(9), irdma_query_srq(9), irdma_create_cq(9), irdma_get_mr_access(9), irdma_free_stag(9), irdma_create_stag(9), irdma_next_pbl_addr(9), irdma_copy_user_pgaddrs(9), irdma_check_mem_contiguous(9), irdma_check_mr_contiguous(9), irdma_setup_pbles(9), irdma_handle_q_mem(9), irdma_hw_alloc_mw(9), irdma_alloc_mw(9), irdma_dealloc_mw(9), irdma_hw_alloc_stag(9), irdma_alloc_mr(9), irdma_set_page(9), irdma_map_mr_sg(9), irdma_hwreg_mr(9), irdma_reg_user_mr(9), irdma_reg_phys_mr(9), irdma_get_dma_mr(9), irdma_del_memlist(9), irdma_dereg_mr(9), irdma_post_send(9), irdma_post_srq_recv(9), irdma_post_recv(9), irdma_flush_err_to_ib_wc_status(9), irdma_process_cqe(9), irdma_poll_one(9), __irdma_poll_cq(9), irdma_poll_cq(9), irdma_req_notify_cq(9), irdma_alloc_hw_port_stats(9), irdma_get_hw_stats(9), irdma_query_gid(9), mcast_list_add(9), mcast_list_del(9), mcast_list_lookup_ip(9), irdma_mcast_cqp_op(9), irdma_mcast_mac(9), irdma_attach_mcast(9), irdma_detach_mcast(9), irdma_ah_exists(9), irdma_destroy_ah(9), irdma_create_user_ah(9), irdma_create_ah(9), irdma_query_ah(9), irdma_init_roce_device(9), irdma_init_iw_device(9), irdma_init_rdma_device(9), irdma_port_ibevent(9), irdma_ib_unregister_device(9), irdma_ib_register_device(9), irdma_ib_dealloc_device(9)

note that _irdma_destroy_qp(9) and __irdma_poll_cq(9) really do have those leading underscores β€” that's not me being messy, that's the actual names, keep them exactly like that πŸ”₯

and that's the whole list!! every last one. ate and left no crumbs πŸ’€


cute little sign-off πŸŽ€

this fine piece of documentation ships out of ./drivers/infiniband/hw/irdma, dated October 2026. yes, October 2026 β€” she's from the future, she's booked and busy, and she's still tracking your objects. periodt. πŸ’…βœ¨

πŸ“¦ where this page comes from