On Thu, 2022-04-21 at 17:08 +0530, Ramalingam C wrote: > Object created with list of memory classes as placement preferences, > can > be backed with any memory class of the list as per kernel's migration > policy for the memory contrain situation. Userspace won't be notified > of > the memory residency change at this scenario. > > And also Flat-CCS compression is supported only on objects of > I915_MEMORY_CLASS_DEVICE. When the Flat-CCS compressed objects > migrates > out of I915_MEMORY_CLASS_DEVICE, due to memory constrain, content > will > be decompressed without notifying the userpsace. userspace > > Record these details in Kernel documentation. > > Signed-off-by: Ramalingam C <ramalingam.c@xxxxxxxxx> > --- > include/uapi/drm/i915_drm.h | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/include/uapi/drm/i915_drm.h > b/include/uapi/drm/i915_drm.h > index 35ca528803fd..8b25dd6a157a 100644 > --- a/include/uapi/drm/i915_drm.h > +++ b/include/uapi/drm/i915_drm.h > @@ -3393,6 +3393,20 @@ struct drm_i915_gem_create_ext { > * At which point we get the object handle in > &drm_i915_gem_create_ext.handle, > * along with the final object size in > &drm_i915_gem_create_ext.size, which > * should account for any rounding up, if required. > + * > + * If an object is created with list of memory classes as their > placement > + * preference, kernel could use one of the memory class as the > backing storage > + * based on the memory availability. At memory pressure kernel could > migrate the > + * objects content from one memory class to another, given in the > placement list. > + * > + * With placement preference list, userpace can't be sure about the > object's memory > + * residence. > + * > + * Flat-CCS compression is supported only for objects of > I915_MEMORY_CLASS_DEVICE. > + * If the object has other placement preferences, and if the content > is > + * migrated (by kernel due to memory constrain) to a memory class > which is other > + * than I915_MEMORY_CLASS_DEVICE, object content will be > decompressed by kernel. > + * Userpace will be ignorant of this Flat-CCS state change. Same question here as for previous commit. > */ > struct drm_i915_gem_create_ext_memory_regions { > /** @base: Extension link. See struct i915_user_extension. */