FreeBSDDesktop / DEPRECATED-freebsd-base-graphics

Fork of FreeBSD's base repository to work on graphics-stack-related projects
Other
49 stars 13 forks source link

Hang on suspend (+ workaround) #165

Closed cperciva closed 5 years ago

cperciva commented 7 years ago

After fixing the panic-on-load ( #163 ) I tried suspending. When I run acpiconf -s 3, the driver hangs in i915_wait_request -- for an infinite duration, because the function is being called with a timeout of NULL (by intel_engine_idle).

Changing i915_wait_request to treat a timeout of NULL as a timeout of 1 second prevents the hang but makes suspend fail (because the "are you ready for suspend" check is failing when the driver says "I failed to wait until the last request completed") but if I set error = 0 in i915_drm_suspend after the call to i915_gem_suspend then the suspend proceeds.

So... something seems to be broken in a way which makes the driver think that there's a request in progress when in fact there is no such request. It's possible that this is related to the problem in #163 since a nonexistent request not completing could easily be mistaken for a hung GPU...

After this, I can suspend and resume but get the "vertical stripes" syndrome mentioned in #149 .

trombonehero commented 7 years ago

@lastewart has just posted a workaround in #149 that seems to work ... for at least two of us, anyway! I've just set the hw.acpi.lid_switch_state=S3 sysctl again after a long absence and life is just that little bit nicer. :)

cperciva commented 5 years ago

Closing this since it has long since been fixed.