i915_request_await_object(9)
π i915_request_await_object(9) π
okay bestie, welcome to the Kernel API Manual β yes this is i915_request_await_object(9), and no, it's not as scary as it sounds. sit down, grab a boba, let's get into it π§β¨
β¨ NAME β¨
i915_request_await_object β set this request to (async) wait upon a bo π«Ά
like literally, you're telling a request to go wait on a buffer object. async. no cap.
πΈ SYNOPSIS πΈ
int i915_request_await_object (struct i915_request *to , struct
drm_i915_gem_object *obj , bool write );
that's the whole vibe check right there π
π ARGUMENTS π
toβ the request we are wishing to use π₯Ί like this is the little guy who's gonna do the waitingobjβ the object which may be in use on another ring. yes, another ring. scandalous, i know πwriteβ whether the wait is on behalf of a writer. so like, are we writing? are we just reading? this bool knows π
π¦ DESCRIPTION π¦
okay so this code is meant to abstract object synchronization with the GPU. that's the whole assignment. it's giving "we handle the messy parts so you don't have to" energy, fr fr.
conceptually we serialise writes between engines inside the GPU. the rule is simple and honestly iconic:
only one engine gets to write into a buffer at any time. but multiple readers? totally fine, they can all hang out. π
to ensure each has a coherent view of memory, we must:
- if there is an outstanding write request to the object, the new request must wait for it to complete (either CPU or in hw, requests on the same ring will be naturally ordered). no cutting the line, bestie π
- if we are a write request (
pending_write_domainis set), the new request must wait for outstanding read requests to complete. everybody out of the pool before we dive in π
returns 0 if successful, else propagates up the lower layer error. so like, zero means slay, anything else means the error travels upward and you deal with it π
π SEE ALSO π
- Kernel file
./drivers/gpu/drm/i915/i915_request.c i915_request_active_engine(9)i915_request_free_capture_list(9)i915_request_await_deps(9)i915_request_wait_timeout(9)i915_request_wait(9)
go read those too, they're all in the same friend group π«Άβ¨
and that's the page!! written from ./drivers/gpu/drm/i915, dated October 2026, version i915_request_await_object(9) β mwah π periodt. go sync some objects, bestie, you've got this ππ
π¦ 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