[Intel-gfx] [PATCH] drm/i915: Skip idling an idle engine

Joonas Lahtinen joonas.lahtinen at linux.intel.com
Wed May 25 08:50:22 UTC 2016


On ti, 2016-05-24 at 11:56 +0100, Chris Wilson wrote:
> During suspend (or module unload), if we have never accessed the engine
> (i.e. userspace never submitted a batch to it), the engine is idle. Then
> we attempt to idle the engine by forcing it to the default context,
> which actually means we submit a render batch to setup the golden
> context state and then wait for it to complete. We can skip this
> entirely as we know the engine is idle.
> 

Seems reasonable.

By quick look we do not have an inactive engine list, though? So the
comment above could be nuked.

Reviewed-by: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>

> Testcase: igt/drm_module_reload_basic #byt
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95634
> ---
>  drivers/gpu/drm/i915/i915_gem.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index b3c15698d611..8fb4fe6ae98c 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -3428,6 +3428,9 @@ int i915_gpu_idle(struct drm_device *dev)
>  
>  	/* Flush everything onto the inactive list. */
>  	for_each_engine(engine, dev_priv) {
> +		if (engine->last_context == NULL)
> +			continue;
> +
>  		if (!i915.enable_execlists) {
>  			struct drm_i915_gem_request *req;
>  
-- 
Joonas Lahtinen
Open Source Technology Center
Intel Corporation


More information about the Intel-gfx mailing list