PARTIAL UNMAPPING OF RANGES(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… Partial Unmapping of Ranges ✨

okay bestie, welcome to the Kernel API Manual entry for Partial Unmapping of Ranges β€” and honestly it’s giving β€œtiny unmap, big feelings” πŸ˜­πŸ’–

Partial unmapping of ranges (like, for real, when 1M out of 2M is unmapped by CPU, resulting in an MMU_NOTIFY_UNMAP event) presents several challenges 🫢 The main one is that a subset of the range still has CPU and GPU mappings.

If the backing store for the range is in device memory, a subset of the backing store has references. One option would be to split the range and device memory backing store, but the implementation for this would be quite complicated. Given that partial unmappings are rare and driver-defined range sizes are relatively small, GPU SVM does not support splitting of ranges πŸ’€

With no support for range splitting, upon partial unmapping of a range, the driver is expected to invalidate and destroy the entire range. If the range has device memory as its backing, the driver is also expected to migrate any remaining pages back to RAM 🌈✨


πŸ‘€ SEE ALSO

Kernel file ./drivers/gpu/drm/drm_gpusvm.c β€” and the whole squad is here, no cap:


That’s the whole vibe, bestie πŸ’– This one came from ./drivers/gpu/drm, dated October 2026, and the manual name is Partial Unmapping of Ranges(9) βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from