ttm_bo_reserve_slowpath(9)
π ttm_bo_reserve_slowpath β Kernel API Manual, bestie edition
okay so real talk, this is ttm_bo_reserve_slowpath(9) from the kernel API manual, and the strict-lore girlies already know this is the redemption-arc function of the TTM buffer object world. let's get into it β¨
πΈ NAME πΈ
ttm_bo_reserve_slowpath β
no because the original literally leaves the description blank after that dash π the manpage said "figure it out" and honestly? iconic. anyway the name is the name, and it's the slowpath version of reserving. you'll get it in a sec π«Ά
β¨ SYNOPSIS β¨
int ttm_bo_reserve_slowpath (struct ttm_buffer_object *bo , bool
interruptible , struct ww_acquire_ctx *ticket );
three args, one int back, no drama π
π ARGUMENTS π
boβ a pointer to astruct ttm_buffer_object. the buffer object in question, the main character of this whole operation πinterruptibleβ abool. when it's waiting, it sleeps interruptible if you set this. so like, you can still be woken up while it naps π€ticketβ the ticket used to acquire theww_mutex. yes bestie, the ticket, the whole karma system, it's how the wound/wait mutex does its thing ποΈ
π¦ DESCRIPTION π¦
kay so here's the lore: this function gets called after ttm_bo_reserve comes back with -EAGAIN and we've backed off from all our other reservations. not me releasing everything before trying again, self-care honestly π§ββοΈ
and because there are no other reservations held by us at that point, this function cannot deadlock any more. can't deadlock, won't deadlock, periodt. π₯ no cap, that's the whole point of the back-off β you drop your other holds, then you come back for this one clean π
fr fr though:-EAGAINfromttm_bo_reserveβ back off from all your other reservations β thenttm_bo_reserve_slowpathbecause the deadlock risk is gone. that's the vibe check β
π SEE ALSO π
the whole friend group, gathered:
- kernel file
./include/drm/ttm/ttm_bo.h enum ttm_bo_type(9)struct ttm_buffer_object(9)struct ttm_bo_kmap_obj(9)struct ttm_operation_ctx(9)struct ttm_lru_walk_arg(9)struct ttm_lru_walk(9)struct ttm_bo_shrink_flags(9)ttm_bo_reserve(9)ttm_bo_move_null(9)ttm_bo_unreserve(9)ttm_kmap_obj_virtual(9)struct ttm_bo_lru_cursor(9)ttm_bo_lru_for_each_reserved_guarded(9)
literally all of them, linked and everything, iykyk π
β sign-off β
that's the page bestie π«Ά it came from ./include/drm/ttm and it's dated October 2026, so mark your calendar, 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