STRUCT I915_TTM_MEMCPY_WORK(9)
β¨ struct i915_ttm_memcpy_work(9) β¨
okay so this is the Kernel API Manual page for struct i915_ttm_memcpy_work, and bestie it's literally the async memcpy worker that lives under a dma-fence π
π NAME π
struct i915_ttm_memcpy_work β Async memcpy worker under a dma-fence. that's it, that's the whole vibe π¦
πΈ SYNOPSIS πΈ
struct i915_ttm_memcpy_work {
struct dma_fence fence;
struct work_struct work;
spinlock_t lock;
struct irq_work irq_work;
struct dma_fence_cb cb;
struct i915_ttm_memcpy_arg arg;
struct drm_i915_private *i915;
struct drm_i915_gem_object *obj;
bool memcpy_allowed;
};
look at her. the whole struct. not one field skipped, no cap π
π Members π
fenceβ The dma-fence. iconic, load-bearing, the main character of this struct fr.workβ The work struct used for the memcpy work. yes queen, go do the copying π«Άlockβ The fence lock. and just so we're clear: not used to protect anything else ATM. don't get any ideas πirq_workβ Low latency worker that signals the fence, because it literally can't be done from the callback for lockdep reasons. lockdep said no and we respect it πcbβ Callback for the accelerated migration fence. slay, migrate faster βargβ The argument for the memcpy functionality.i915β Thei915pointer.objβ The GEM object.memcpy_allowedβ okay so this one's important: instead of processing the arg and falling back to memcpy or memset, we wedge the device and set the objunknown_state, to prevent any further access to the object with the CPU or GPU. and on some devices we might only be permitted to use the blitter engine for such operations. it's giving "we do a little wedging" π
ngl that last one is not a cute little flag, it's a whole escalation. read it twice. the device gets wedged, periodt π₯
π SEE ALSO π
- Kernel file
./drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c - Selftest failure modes for failsafe migration:(9)
i915_ttm_adjust_domains_after_move(9)i915_ttm_adjust_gem_after_move(9)i915_ttm_move_notify(9)struct i915_ttm_memcpy_arg(9)i915_ttm_move(9)i915_gem_obj_copy_ttm(9)
go read the friends too, iykyk π§
and that's the page, bestie!! this one shipped from ./drivers/gpu/drm/i915/gem back in October 2026, and the whole thing is literally titled struct i915_ttm_memcpy_work(9) β mwah, tysm for reading, ily, go touch grass and then go read the source πΈππ
π¦ 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