MIGRATION VS EVICTION(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… Migration vs eviction(9) β€” a Kernel API Manual moment

okay so bestie, this one's a short one but it's important, it's a Migration vs eviction page from the Kernel API Manual and it's basically the "these two things are NOT the same, don't @ me" of the DRM world πŸŽ€


✨ DESCRIPTION ✨ (the whole vibe)

lowkey the biggest thing to internalise here: GEM migration may not be the same as TTM migration / eviction. they are two different girlies. do not conflate them. πŸ’…

so here's the situation. if the TTM core decides to evict an object, that object may get evicted to a TTM memory type that is not in the object's allowable GEM regions β€” or, and this is wild, theoretically to a TTM memory type that doesn't even correspond to a GEM memory region at all 😭 like it's just out here in the void.

and in that case? the object's GEM region is not updated, and the data gets migrated back to the GEM region at get_pages time. that's the little reunion arc 🫢

TTM may however set up CPU ptes to the object even when it is evicted β€” so yeah, ptes don't care, they're doing their own thing.

then there's Gem forced migration using the i915_ttm_migrate op β€” and she is allowed to go even to regions that are not in the object's list of allowable placements. forced means forced, she does what she wants πŸ‘‘

ngl this is the kind of page where you read it once, nod, and then re-read it in three months when something's weird. keep it bookmarked bestie. πŸ”₯

🌈 SEE ALSO 🌈


πŸ’– that's the whole page, no cap. it lives at ./drivers/gpu/drm/i915/gem, dated October 2026, and it's still out here being Migration vs eviction(9), iconic behaviour honestly. mwah, go read the source πŸŽ€βœ¨

πŸ“¦ where this page comes from