summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/Kconfig.profile
diff options
context:
space:
mode:
authorChris Wilson2019-05-27 13:51:14 +0200
committerChris Wilson2019-05-28 09:23:09 +0200
commitb27e35ae5b1804078cfd177082429eea9de01885 (patch)
treedbed55ae5948ebd895a12e01921dd01253942934 /drivers/gpu/drm/i915/Kconfig.profile
parentdrm/i915: Make sure we have enough memory bandwidth on ICL (diff)
downloadkernel-qcow2-linux-b27e35ae5b1804078cfd177082429eea9de01885.tar.gz
kernel-qcow2-linux-b27e35ae5b1804078cfd177082429eea9de01885.tar.xz
kernel-qcow2-linux-b27e35ae5b1804078cfd177082429eea9de01885.zip
drm/i915: Keep user GGTT alive for a minimum of 250ms
Do not allow runtime pm autosuspend to remove userspace GGTT mmaps too quickly. For example, igt sets the autosuspend delay to 0, and so we immediately attempt to perform runtime suspend upon releasing the wakeref. Unfortunately, that involves tearing down GGTT mmaps as they require an active device. Override the autosuspend for GGTT mmaps, by keeping the wakeref around for 250ms after populating the PTE for a fresh mmap. v2: Prefer refcount_t for its under/overflow error detection v3: Flush the user runtime autosuspend prior to system system. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190527115114.13448-1-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/gpu/drm/i915/Kconfig.profile')
-rw-r--r--drivers/gpu/drm/i915/Kconfig.profile14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/Kconfig.profile b/drivers/gpu/drm/i915/Kconfig.profile
index 0e5db98da8f3..4fd1ea639d0f 100644
--- a/drivers/gpu/drm/i915/Kconfig.profile
+++ b/drivers/gpu/drm/i915/Kconfig.profile
@@ -1,3 +1,17 @@
+config DRM_I915_USERFAULT_AUTOSUSPEND
+ int "Runtime autosuspend delay for userspace GGTT mmaps (ms)"
+ default 250 # milliseconds
+ help
+ On runtime suspend, as we suspend the device, we have to revoke
+ userspace GGTT mmaps and force userspace to take a pagefault on
+ their next access. The revocation and subsequent recreation of
+ the GGTT mmap can be very slow and so we impose a small hysteris
+ that complements the runtime-pm autosuspend and provides a lower
+ floor on the autosuspend delay.
+
+ May be 0 to disable the extra delay and solely use the device level
+ runtime pm autosuspend delay tunable.
+
config DRM_I915_SPIN_REQUEST
int
default 5 # microseconds