rvt_get_rwqe(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– rvt_get_rwqe(9) β€” Kernel API Manual πŸ’–

okay so bestie, welcome to the Kernel API Manual page for rvt_get_rwqe(9). This one is short, iconic, and does exactly one thing: copy the next RWQE into the QP's RWQE. slay. ✨


πŸŽ€ NAME πŸŽ€

rvt_get_rwqe β€” copy the next RWQE into the QP's RWQE πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

int rvt_get_rwqe (struct rvt_qp *qp , bool wr_id_only );

🌸 ARGUMENTS 🌸

  • qp β€” the QP. That's the main character right there. πŸ‘‘
  • wr_id_only β€” update qp->r_wr_id only, not qp->r_sge. Like, only that one field gets the update, bestie. πŸŽ€

⭐ DESCRIPTION ⭐

okay so the return situation is very much giving trio:

  • Return -1 if there is a local error 😭
  • Return 0 if no RWQE is available πŸ™ˆ
  • Otherwise return 1 πŸ”₯

And yes, the flex is real: it can be called from interrupt level. no cap, that's allowed. 🫢


πŸ’œ SEE ALSO πŸ’œ

Kernel file ./drivers/infiniband/sw/rdmavt/qp.c β€” and the whole group chat is here:

init_qpn_table(9), free_qpn_table(9), rvt_driver_qp_init(9), rvt_free_qp_cb(9), rvt_free_all_qps(9), rvt_qp_exit(9), alloc_qpn(9), rvt_clear_mr_refs(9), rvt_swqe_has_lkey(9), rvt_qp_sends_has_lkey(9), rvt_qp_acks_has_lkey(9), rvt_qp_mr_clean(9), rvt_remove_qp(9), rvt_alloc_rq(9), rvt_init_qp(9), _rvt_reset_qp(9), rvt_reset_qp(9), rvt_free_qpn(9), get_allowed_ops(9), free_ud_wq_attr(9), alloc_ud_wq_attr(9), rvt_create_qp(9), rvt_error_qp(9), rvt_modify_qp(9), rvt_destroy_qp(9), rvt_query_qp(9), rvt_post_recv(9), rvt_qp_valid_operation(9), rvt_qp_is_avail(9), rvt_post_one_wr(9), rvt_post_send(9), rvt_post_srq_recv(9), get_rvt_head(9), rvt_comm_est(9), rvt_add_rnr_timer(9), rvt_stop_rc_timers(9), rvt_stop_rnr_timer(9), rvt_del_timers_sync(9), rvt_qp_iter_init(9), rvt_qp_iter_next(9), rvt_qp_iter(9), rvt_copy_sge(9), rvt_ruc_loopback(9)


πŸ’– source/version: ./drivers/infiniband/sw/rdmavt β€” dated October 2026. bye bestie, go copy that RWQE correctly. πŸ’…βœ¨πŸ¦‹

πŸ“¦ where this page comes from