[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