[Intel-gfx] [PATCH 2/4 v3] drm/i915: mark a newly-created GEM object dirty when filled with data

Chris Wilson chris at chris-wilson.co.uk
Thu Dec 10 13:06:25 PST 2015


On Thu, Dec 10, 2015 at 06:51:24PM +0000, Dave Gordon wrote:
> When creating a new (pageable) GEM object and filling it with data, we
> must mark it as 'dirty', i.e. backing store is out-of-date w.r.t. the
> newly-written content. This ensures that if the object is evicted under
> memory pressure, its pages in the pagecache will be written to backing
> store rather than discarded.
> 
> Based on an original version by Alex Dai.
> 
> Signed-off-by: Alex Dai <yu.dai at intel.com>
> Signed-off-by: Dave Gordon <david.s.gordon at intel.com>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>

I've made my peace with this patch finally.
Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>

> ---
>  drivers/gpu/drm/i915/i915_gem.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 06a5f39..936f0a9 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -5224,6 +5224,7 @@ i915_gem_object_create_from_data(struct drm_device *dev,
>  	i915_gem_object_pin_pages(obj);
>  	sg = obj->pages;
>  	bytes = sg_copy_from_buffer(sg->sgl, sg->nents, (void *)data, size);
> +	obj->dirty = 1;		/* Backing store is now out of date */

That seems like it would be better served as an improvement to the
existing obj->dirty /** doc */
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list