drm/i915/gt: Delay release of engine-pm after last retirement
Keep the engine-pm awake until the next jiffie, to avoid immediate ping-pong under moderate load. (Forcing the idle barrier excerbates the moderate load, dramatically increasing the driver overhead.) On the other hand, delaying the idle-barrier slightly incurs longer rc6-off and so more power consumption. Closes: https://gitlab.freedesktop.org/drm/intel/issues/848 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200323092841.22240-4-chris@chris-wilson.co.uk
This commit is contained in:
parent
e9037e7f9a
commit
edee52c927
2 changed files with 2 additions and 2 deletions
|
@ -350,7 +350,7 @@ void intel_context_enter_engine(struct intel_context *ce)
|
||||||
void intel_context_exit_engine(struct intel_context *ce)
|
void intel_context_exit_engine(struct intel_context *ce)
|
||||||
{
|
{
|
||||||
intel_timeline_exit(ce->timeline);
|
intel_timeline_exit(ce->timeline);
|
||||||
intel_engine_pm_put(ce->engine);
|
intel_engine_pm_put_delay(ce->engine, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int intel_context_prepare_remote_request(struct intel_context *ce,
|
int intel_context_prepare_remote_request(struct intel_context *ce,
|
||||||
|
|
|
@ -818,7 +818,7 @@ void i915_active_acquire_barrier(struct i915_active *ref)
|
||||||
|
|
||||||
GEM_BUG_ON(!intel_engine_pm_is_awake(engine));
|
GEM_BUG_ON(!intel_engine_pm_is_awake(engine));
|
||||||
llist_add(barrier_to_ll(node), &engine->barrier_tasks);
|
llist_add(barrier_to_ll(node), &engine->barrier_tasks);
|
||||||
intel_engine_pm_put(engine);
|
intel_engine_pm_put_delay(engine, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue