Re: S4 resume breakage with i915 driver

Chris Wilson
2016-08-26T10:39:39Z

On Fri, Aug 26, 2016 at 12:25:01PM +0200, Takashi Iwai wrote:
> On Fri, 26 Aug 2016 11:18:00 +0200,
> Takashi Iwai wrote:
> > I had to modify the intel_gpu_reset() call because the test was done
> > on the older kernel, so it's like:
> >
> > + intel_gpu_reset(dev_to_i915(dev)->dev);
> >
> > And, it seems working on HSW! \o/
> >
> > A simple trick, better than the magical register write revert.
> > I'll check other machines, too, to see whether it has any negative
> > impact.
>
> The test results look good on all machines.

The theory then is that the GPU's are active across the load of the
hibernation image and so before the GTT is updated the memory currently
in use by the GPU is reused by the system.

The key question then is the memory of boot kernel still in place during
the hibernate restore phase? If we need to add a ->shutdown callback (if
that is even called before hibernate restore) then we can only fix
future kernels and are still susceptible to corruption when booing from
old kernels.

Any one familiar with the details of the hibernation restore? (And how
much relates to kexec?)
-Chris

--
Chris Wilson, Intel Open Source Technology Centre