Back to home page

OSCL-LXR

 
 

    


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.