drm/i915/gt: Prefer soft-rc6 over RPS DOWN_TIMEOUT
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 22 Apr 2020 00:17:01 +0000 (01:17 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 24 Apr 2020 16:20:58 +0000 (17:20 +0100)
commit1ebf7aaf3ac01952c49a303d7ded0dc3a19d3cbb
treecff828ecf7c5931d97d3b5c0286a5270ef98b744
parent7db8736db0814dacda4d42f108f8ab366961ecdf
drm/i915/gt: Prefer soft-rc6 over RPS DOWN_TIMEOUT

The RPS DOWN_TIMEOUT interrupt is signaled after a period of rc6, and
upon receipt of that interrupt we reprogram the GPU clocks down to the
next idle notch [to help convserve power during rc6]. However, on
execlists, we benefit from soft-rc6 immediately parking the GPU and
setting idle frequencies upon idling [within a jiffie], and here the
interrupt prevents us from restarting from our last frequency.

In the process, we can simply opt for a static pm_events mask and rely
on the enable/disable interrupts to flush the worker on parking.

This will reduce the amount of oscillation observed during steady
workloads with microsleeps, as each time the rc6 timeout occurs we
immediately follow with a waitboost for a dropped frame.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Andi Shyti <andi.shyti@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200422001703.1697-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_rps.c