0001 config DRM_I915_REQUEST_TIMEOUT
0002 int "Default timeout for requests (ms)"
0003 default 20000 # milliseconds
0004 help
0005 Configures the default timeout after which any user submissions will
0006 be forcefully terminated.
0007
0008 Beware setting this value lower, or close to heartbeat interval
0009 rounded to whole seconds times three, in order to avoid allowing
0010 misbehaving applications causing total rendering failure in unrelated
0011 clients.
0012
0013 May be 0 to disable the timeout.
0014
0015 config DRM_I915_FENCE_TIMEOUT
0016 int "Timeout for unsignaled foreign fences (ms, jiffy granularity)"
0017 default 10000 # milliseconds
0018 help
0019 When listening to a foreign fence, we install a supplementary timer
0020 to ensure that we are always signaled and our userspace is able to
0021 make forward progress. This value specifies the timeout used for an
0022 unsignaled foreign fence.
0023
0024 May be 0 to disable the timeout, and rely on the foreign fence being
0025 eventually signaled.
0026
0027 config DRM_I915_USERFAULT_AUTOSUSPEND
0028 int "Runtime autosuspend delay for userspace GGTT mmaps (ms)"
0029 default 250 # milliseconds
0030 help
0031 On runtime suspend, as we suspend the device, we have to revoke
0032 userspace GGTT mmaps and force userspace to take a pagefault on
0033 their next access. The revocation and subsequent recreation of
0034 the GGTT mmap can be very slow and so we impose a small hysteris
0035 that complements the runtime-pm autosuspend and provides a lower
0036 floor on the autosuspend delay.
0037
0038 May be 0 to disable the extra delay and solely use the device level
0039 runtime pm autosuspend delay tunable.
0040
0041 config DRM_I915_HEARTBEAT_INTERVAL
0042 int "Interval between heartbeat pulses (ms)"
0043 default 2500 # milliseconds
0044 help
0045 The driver sends a periodic heartbeat down all active engines to
0046 check the health of the GPU and undertake regular house-keeping of
0047 internal driver state.
0048
0049 This is adjustable via
0050 /sys/class/drm/card?/engine/*/heartbeat_interval_ms
0051
0052 May be 0 to disable heartbeats and therefore disable automatic GPU
0053 hang detection.
0054
0055 config DRM_I915_PREEMPT_TIMEOUT
0056 int "Preempt timeout (ms, jiffy granularity)"
0057 default 640 # milliseconds
0058 help
0059 How long to wait (in milliseconds) for a preemption event to occur
0060 when submitting a new context via execlists. If the current context
0061 does not hit an arbitration point and yield to HW before the timer
0062 expires, the HW will be reset to allow the more important context
0063 to execute.
0064
0065 This is adjustable via
0066 /sys/class/drm/card?/engine/*/preempt_timeout_ms
0067
0068 May be 0 to disable the timeout.
0069
0070 The compiled in default may get overridden at driver probe time on
0071 certain platforms and certain engines which will be reflected in the
0072 sysfs control.
0073
0074 config DRM_I915_MAX_REQUEST_BUSYWAIT
0075 int "Busywait for request completion limit (ns)"
0076 default 8000 # nanoseconds
0077 help
0078 Before sleeping waiting for a request (GPU operation) to complete,
0079 we may spend some time polling for its completion. As the IRQ may
0080 take a non-negligible time to setup, we do a short spin first to
0081 check if the request will complete in the time it would have taken
0082 us to enable the interrupt.
0083
0084 This is adjustable via
0085 /sys/class/drm/card?/engine/*/max_busywait_duration_ns
0086
0087 May be 0 to disable the initial spin. In practice, we estimate
0088 the cost of enabling the interrupt (if currently disabled) to be
0089 a few microseconds.
0090
0091 config DRM_I915_STOP_TIMEOUT
0092 int "How long to wait for an engine to quiesce gracefully before reset (ms)"
0093 default 100 # milliseconds
0094 help
0095 By stopping submission and sleeping for a short time before resetting
0096 the GPU, we allow the innocent contexts also on the system to quiesce.
0097 It is then less likely for a hanging context to cause collateral
0098 damage as the system is reset in order to recover. The corollary is
0099 that the reset itself may take longer and so be more disruptive to
0100 interactive or low latency workloads.
0101
0102 This is adjustable via
0103 /sys/class/drm/card?/engine/*/stop_timeout_ms
0104
0105 config DRM_I915_TIMESLICE_DURATION
0106 int "Scheduling quantum for userspace batches (ms, jiffy granularity)"
0107 default 1 # milliseconds
0108 help
0109 When two user batches of equal priority are executing, we will
0110 alternate execution of each batch to ensure forward progress of
0111 all users. This is necessary in some cases where there may be
0112 an implicit dependency between those batches that requires
0113 concurrent execution in order for them to proceed, e.g. they
0114 interact with each other via userspace semaphores. Each context
0115 is scheduled for execution for the timeslice duration, before
0116 switching to the next context.
0117
0118 This is adjustable via
0119 /sys/class/drm/card?/engine/*/timeslice_duration_ms
0120
0121 May be 0 to disable timeslicing.