hfi1_do_send(9)
β¨ hfi1_do_send(9) β¨
okay so this is a page from the Kernel API Manual bestie, and it's literally about hfi1_do_send β the function that, well, does a send on a QP π
πΈ NAME πΈ
hfi1_do_send β perform a send on a QP. that's it, that's the whole vibe π«Ά
π SYNOPSIS π
void hfi1_do_send (struct rvt_qp *qp , bool in_thread );
π¦ ARGUMENTS π¦
qpβ a pointer to the QP π like, the queue pair in question, that's your main character herein_threadβtrueif you're in a workqueue thread π (so basically, "are we in a thread rn or not")
π DESCRIPTION π
okay so what this function does is process entries in the send work queue β and it just keeps going until either credit runs out or the queue itself is exhausted. iconic behavior, no notes β¨
and here's the important part, bestie: it's only allowed to let one CPU send a packet per QP. like, one at a time, single file, no cutting the line π¦
why?? because otherwise π two threads could send packets out of order and that's a whole mess we do NOT want. order matters here fr fr π
so yeah β one CPU per QP, that's the rule, periodt π
π₯ SEE ALSO π₯
- the kernel file
./drivers/infiniband/hw/hfi1/ruc.c(go read it, iykyk π) hfi1_make_grh(9)build_ahg(9)hfi1_make_ruc_header_16B(9)hfi1_make_ruc_header_9B(9)hfi1_schedule_send_yield(9)
and that's the whole page, bestie π§ this lil gem of a function page lives over in ./drivers/infiniband/hw/hfi1 and it's dated October 2026 β so yeah, slightly from the future, no cap β mwah, go send some packets responsibly π
π¦ 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