irdma_reg_phys_mr(9)
π irdma_reg_phys_mr(9) β like, the Kernel API Manual, bestie π
okay so this is a page from the Kernel API Manual, section 9, and it's all about irdma_reg_phys_mr β the little function that handles registering kernel physical memory π«Ά
β¨ NAME β¨
irdma_reg_phys_mr β register kernel physical memory π
πΈ SYNOPSIS πΈ
struct ib_mr * irdma_reg_phys_mr (struct ib_pd *pd , u64 addr , u64 size
, int access , u64 *iova_start , bool dma_mr );
that's the whole signature, copy it exactly bestie, no cap π
π¦ ARGUMENTS π¦
okay so here's who's who in this function's group chat:
pdβ theibpdpointer. that's your PD, your protection domain bestie πaddrβ the physical address of the memory you're registering. literally where it lives in physical memory πsizeβ how big the memory you're registering is. no guessing, tell it the size fr fr πaccessβ the access rights. yes this matters, it's giving permissions energy πiova_startβ start of the virtual address for physical buffers. this is youru64 *, so it's a pointer, keep that in mind π―dma_mrβ aboolflag indicating whether this region is a PD DMA MR. it's a flag, so true/false, iconic behaviour β
π SEE ALSO π
so there's a kernel file involved: ./drivers/infiniband/hw/irdma/verbs.c β that's where the action lives, go look at it π§
and like⦠the friend list is LONG, bestie. every single one of these, no skipping:
irdma_query_device(9), irdma_query_port(9), irdma_disassociate_ucontext(9), irdma_mmap(9), irdma_alloc_push_page(9), irdma_alloc_ucontext(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_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),
and the multicast girlies π: 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),
and the device-init squad π₯: 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).
that is genuinely everyone, i counted, do not come for me π
also hi, the file path ./drivers/infiniband/hw/irdma is where this whole party lives, iykyk π
k that's the page bestie, mwah π β this one's from October 2026, irdma_reg_phys_mr(9), Kernel API Manual energy all the way, periodt πβ¨
π¦ 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