Message ID | 559AD93D.8050503@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Jul 07, 2015 at 03:38:37AM +0800, Zhi Wang wrote: > Hi Chris: > Thanks for the comments! I can understand that we're concerned > about regressions, so this is why I think put this reset in module > unload path looks much safer. For safety, maybe we should only reset > GPU perhaps only when GEN >= 6? That looks much easier and safer, > also combine execlist reset and power context reset. > > Or we just add this before i915_uncore_fini() inside > i915_driver_unload()? This way looks much safer? > > How about this one? No, if we are just targetting execlists, then disabling it in cleanup_ringbuffers as before is the cleanest (as that is the opposite stage to where we enable them). The reset in i915_driver_unload() is preferred to replace all the resets required during unload. It is safe to move the context reset here as we do not disturb the GTT state between unpining the context and here. Making it conditional on gen>=5 is probably a good first step. -Chris
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index c5349fa..81103af 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c @@ -1134,6 +1134,15 @@ int i915_driver_unload(struct drm_device *dev) i915_global_gtt_cleanup(dev); + /* + * Restore HW workload submission mode back to default mode when shutdown. + * It makes i915 module loading/unloading be able to switch between + * different workload submission mode on gen8+. And according to B-spec, + * the only way to reset HW workload submission mode to default mode is GPU reset. + */ + if (i915.enable_execlists) + intel_gpu_reset(dev); +