hfi1_schedule_tid_send(9)
π hfi1_schedule_tid_send β NAME π
okay so bestie, this is hfi1_schedule_tid_send, and it literally schedules progress on the TID RDMA state machine β¨ like that's the whole job and she does it gorgeously.
π SYNOPSIS π
bool hfi1_schedule_tid_send (struct rvt_qp *qp );
π¦ ARGUMENTS π¦
qpβ the QP π that's it, that's the argument, she's the main character here.
πΈ DESCRIPTION πΈ
So what this does, right β it schedules progress on qp for the TID RDMA state machine. no cap, that's the vibe.
Heads up though: the caller should hold the s_lock. π that's on you, not her, okay? she's not doing it for you.
And here's the little plot twist: unlike hfi1_schedule_send, this one cannot use hfi1_send_ok, because the two state machines can literally step on each other with respect to the RVT_S_BUSY flag ππ like imagine two besties both grabbing the same mirror at the same time. messy. so instead, a modified test is used. iykyk π§
β¨ RETURN β¨
trueβ the second leg is scheduled π«Ά slayfalseβ the second leg is not scheduled π
π SEE ALSO π
kernel file ./drivers/infiniband/hw/hfi1/tid_rdma.c, plus the whole friend group:
- TID RDMA READ protocol(9)
qp_to_rcd(9)- lock ordering(9)
kernel_tid_waiters(9)dequeue_tid_waiter(9)queue_qp_for_tid_wait(9)__trigger_tid_waiter(9)tid_rdma_schedule_tid_wakeup(9)tid_rdma_trigger_resume(9)kern_reserve_flow(9)tid_rdma_find_phys_blocks_4k(9)tid_flush_pages(9)tid_rdma_find_phys_blocks_8k(9)hfi1_kern_exp_rcv_setup(9)hfi1_kern_exp_rcv_free_flows(9)__trdma_clean_swqe(9)
and that's the page, bestie π this iconic little piece of the Kernel API Manual is living in ./drivers/infiniband/hw/hfi1, dated October 2026 β go read the source file, mwah πππ
π¦ 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