sdma_progress(9)
π sdma_progress(9) β a lil' kernel API moment
okay so bestie, we're in the Kernel API Manual today and the star of the show is sdma_progress, which is lowkey just "use seq number of detect head progress" β¨ (that's the NAME line, verbatim, don't come for me).
π¦ SYNOPSIS π¦
unsigned sdma_progress (struct sdma_engine *sde , unsigned seq , struct sdma_txreq *tx );
like yes she returns an unsigned, she takes three args, she's booked and busy π
π ARGUMENTS π
sdeβ thesdma_engineto check. that's the engine we're doing a vibe check on, fr.seqβ base seq count. the starting point, the blueprint, the origin story.txβ thetxreqfor which we need to check descriptor availability. we're literally asking "is there room for this one, bestie?"
β¨ DESCRIPTION β¨
so the way this works: sdma_progress is used in the appropriate spot in the sleep routine to check for potential ring progress π
this routine gets the seqcount before queuing the iowait structure for progress. order matters, iykyk π«Ά
and then β if the seqcount indicates that progress needs to be checked β re-submission is detected by checking whether the descriptor queue has enough descriptor for the txreq. that's the whole plot twist. that's the tea β
π SEE ALSO π
- Kernel file
./drivers/infiniband/hw/hfi1/sdma.hsdmaexported routines(9) sdmaPSM/verbs API(9)- Infrastructure calls(9)
struct sdma_engine(9)sdma_empty(9)sdma_running(9)sdma_txinit_ahg(9)sdma_txinit(9)sdma_txadd_page(9)sdma_txadd_daddr(9)sdma_txadd_kvaddr(9)struct sdma_map_elem(9)sdma_engine_progress_schedule(9)
like, read the whole friend group, bestie, they all slay in their own way π
ngl the page lives at ./drivers/infiniband/hw/hfi1, and it's dated October 2026 β yes, the future, main character energy only πβ°
that's the page!! go forth and check those descriptor queues, you absolute icon πΈπ 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