STRUCT I915_TTM_TT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct i915_ttm_tt(9) β€” a lil' glow-up

okay so this is a page from the Kernel API Manual (yes, the kernel has a manual, she's that girl) and it's all about struct i915_ttm_tt, bestie. it's a TTM page vector that also carries around some extra private info like a little handbag of secrets πŸ‘œβœ¨


🌸 NAME 🌸

struct i915_ttm_tt β€” literally a TTM page vector with additional private info tacked on. that's it, that's the vibe.


✨ SYNOPSIS ✨

look at her, she's so structured:

struct i915_ttm_tt {
    struct ttm_tt ttm;
    struct device *dev;
    struct i915_refct_sgt cached_rsgt;
    bool is_shmem;
    struct file *filp;
 };

πŸŽ€ Members πŸŽ€

  • ttm β€” the base TTM page vector, the main character foundation everything else sits on πŸ’…
  • dev β€” the struct device that gets used for dma mapping and unmapping, she's the one doing the actual DMA-ing 🫢
  • cached_rsgt β€” the cached scatter-gather table. stored and ready, no cap 🌸
  • is_shmem β€” a bool that's set if we're using shmem ✨
  • filp β€” the shmem file, but only if you're on the shmem backend, iykyk πŸ‘‘

πŸ¦‹ Description πŸ¦‹

okay this is the important part, listen up πŸ“’

so here's the thing: DMA may be going on right up to the point where the page-vector is unpopulated in delayed destroy. like, literally up until the last second 😭 so that means you keep the scatter-gather table mapped and cached up to that point. don't let it go early, she's still working!

and this is different from the cached gem object io scatter-gather table β€” that one doesn't have an associated dma mapping. so don't go mixing them up, bestie, they are not the same thing πŸ™ˆ


πŸ’œ SEE ALSO πŸ’œ


go read the whole friend group, they all slay in their own way πŸ’–

and that's a wrap, bestie! 🎬 this page came out of ./drivers/gpu/drm/i915/gem in October 2026, and yes she's filed under struct i915_ttm_tt(9) β€” iconic, no notes πŸ‘‘πŸŒˆ

πŸ“¦ where this page comes from