[Intel-gfx] Possible i915 regression with 4.4-rc
Chris Wilson
chris at chris-wilson.co.uk
Fri Dec 4 04:45:52 PST 2015
On Fri, Dec 04, 2015 at 12:16:40PM +0000, Chris Wilson wrote:
> On Fri, Dec 04, 2015 at 12:06:59PM +0000, Chris Wilson wrote:
> > > Could also be down to certain objects getting their contents
> > > discarded when evicted (due to not being marked dirty), for which I
> > > posted a fix "Always mark GEM objects as dirty when written by the
> > > CPU" a few days ago?
> >
> > Grasping at straws?
>
> On reflection, rather than the object->dirty patch, you want
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem
> _gtt.c
> index 1f7e6b9df45d..033df035a066 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -346,6 +346,7 @@ static void cleanup_page_dma(struct drm_device *dev, struct
> i915_page_dma *p)
>
> static void *kmap_page_dma(struct i915_page_dma *p)
> {
> + set_page_dirty(p->page);
> return kmap_atomic(p->page);
> }
Or not? These pages are not swappable and remain allocated, so I would
expect the hibernation process to also make a copy of them and restore
them. Besides we would get outright GPU hangs and massive memory
corruption if the PTE were absent.
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx
mailing list