Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/i915/gt: Ratelimit display power w/a

For very light workloads that frequently park, acquiring the display
power well (required to prevent the dmc from trashing the system) takes
longer than the execution. A good example is the igt_coherency selftest,
which is slowed down by an order of magnitude in the worst case with
powerwell cycling. To prevent frequent cycling, while keeping our fast
soft-rc6, use a timer to delay release of the display powerwell.

Fixes: 311770173fac ("drm/i915/gt: Schedule request retirement when timeline idles")
References: https://gitlab.freedesktop.org/drm/intel/issues/848
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191218093504.3477048-1-chris@chris-wilson.co.uk
(cherry picked from commit 81ff52b705775433a955b2746d37b87bdc89a3d0)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>

authored by

Chris Wilson and committed by
Jani Nikula
d39da686 74ac5780

+2 -1
+2 -1
drivers/gpu/drm/i915/gt/intel_gt_pm.c
··· 94 94 intel_uncore_forcewake_put(&i915->uncore, FORCEWAKE_ALL); 95 95 } 96 96 97 + /* Defer dropping the display power well for 100ms, it's slow! */ 97 98 GEM_BUG_ON(!wakeref); 98 - intel_display_power_put(i915, POWER_DOMAIN_GT_IRQ, wakeref); 99 + intel_display_power_put_async(i915, POWER_DOMAIN_GT_IRQ, wakeref); 99 100 100 101 i915_globals_park(); 101 102