162306a36Sopenharmony_ciconfig DRM_I915_REQUEST_TIMEOUT 262306a36Sopenharmony_ci int "Default timeout for requests (ms)" 362306a36Sopenharmony_ci default 20000 # milliseconds 462306a36Sopenharmony_ci help 562306a36Sopenharmony_ci Configures the default timeout after which any user submissions will 662306a36Sopenharmony_ci be forcefully terminated. 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci Beware setting this value lower, or close to heartbeat interval 962306a36Sopenharmony_ci rounded to whole seconds times three, in order to avoid allowing 1062306a36Sopenharmony_ci misbehaving applications causing total rendering failure in unrelated 1162306a36Sopenharmony_ci clients. 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci May be 0 to disable the timeout. 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciconfig DRM_I915_FENCE_TIMEOUT 1662306a36Sopenharmony_ci int "Timeout for unsignaled foreign fences (ms, jiffy granularity)" 1762306a36Sopenharmony_ci default 10000 # milliseconds 1862306a36Sopenharmony_ci help 1962306a36Sopenharmony_ci When listening to a foreign fence, we install a supplementary timer 2062306a36Sopenharmony_ci to ensure that we are always signaled and our userspace is able to 2162306a36Sopenharmony_ci make forward progress. This value specifies the timeout used for an 2262306a36Sopenharmony_ci unsignaled foreign fence. 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci May be 0 to disable the timeout, and rely on the foreign fence being 2562306a36Sopenharmony_ci eventually signaled. 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ciconfig DRM_I915_USERFAULT_AUTOSUSPEND 2862306a36Sopenharmony_ci int "Runtime autosuspend delay for userspace GGTT mmaps (ms)" 2962306a36Sopenharmony_ci default 250 # milliseconds 3062306a36Sopenharmony_ci help 3162306a36Sopenharmony_ci On runtime suspend, as we suspend the device, we have to revoke 3262306a36Sopenharmony_ci userspace GGTT mmaps and force userspace to take a pagefault on 3362306a36Sopenharmony_ci their next access. The revocation and subsequent recreation of 3462306a36Sopenharmony_ci the GGTT mmap can be very slow and so we impose a small hysteris 3562306a36Sopenharmony_ci that complements the runtime-pm autosuspend and provides a lower 3662306a36Sopenharmony_ci floor on the autosuspend delay. 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci May be 0 to disable the extra delay and solely use the device level 3962306a36Sopenharmony_ci runtime pm autosuspend delay tunable. 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ciconfig DRM_I915_HEARTBEAT_INTERVAL 4262306a36Sopenharmony_ci int "Interval between heartbeat pulses (ms)" 4362306a36Sopenharmony_ci default 2500 # milliseconds 4462306a36Sopenharmony_ci help 4562306a36Sopenharmony_ci The driver sends a periodic heartbeat down all active engines to 4662306a36Sopenharmony_ci check the health of the GPU and undertake regular house-keeping of 4762306a36Sopenharmony_ci internal driver state. 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci This is adjustable via 5062306a36Sopenharmony_ci /sys/class/drm/card?/engine/*/heartbeat_interval_ms 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci May be 0 to disable heartbeats and therefore disable automatic GPU 5362306a36Sopenharmony_ci hang detection. 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ciconfig DRM_I915_PREEMPT_TIMEOUT 5662306a36Sopenharmony_ci int "Preempt timeout (ms, jiffy granularity)" 5762306a36Sopenharmony_ci default 640 # milliseconds 5862306a36Sopenharmony_ci help 5962306a36Sopenharmony_ci How long to wait (in milliseconds) for a preemption event to occur 6062306a36Sopenharmony_ci when submitting a new context. If the current context does not hit 6162306a36Sopenharmony_ci an arbitration point and yield to HW before the timer expires, the 6262306a36Sopenharmony_ci HW will be reset to allow the more important context to execute. 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci This is adjustable via 6562306a36Sopenharmony_ci /sys/class/drm/card?/engine/*/preempt_timeout_ms 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci May be 0 to disable the timeout. 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci The compiled in default may get overridden at driver probe time on 7062306a36Sopenharmony_ci certain platforms and certain engines which will be reflected in the 7162306a36Sopenharmony_ci sysfs control. 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ciconfig DRM_I915_PREEMPT_TIMEOUT_COMPUTE 7462306a36Sopenharmony_ci int "Preempt timeout for compute engines (ms, jiffy granularity)" 7562306a36Sopenharmony_ci default 7500 # milliseconds 7662306a36Sopenharmony_ci help 7762306a36Sopenharmony_ci How long to wait (in milliseconds) for a preemption event to occur 7862306a36Sopenharmony_ci when submitting a new context to a compute capable engine. If the 7962306a36Sopenharmony_ci current context does not hit an arbitration point and yield to HW 8062306a36Sopenharmony_ci before the timer expires, the HW will be reset to allow the more 8162306a36Sopenharmony_ci important context to execute. 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ci This is adjustable via 8462306a36Sopenharmony_ci /sys/class/drm/card?/engine/*/preempt_timeout_ms 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci May be 0 to disable the timeout. 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci The compiled in default may get overridden at driver probe time on 8962306a36Sopenharmony_ci certain platforms and certain engines which will be reflected in the 9062306a36Sopenharmony_ci sysfs control. 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ciconfig DRM_I915_MAX_REQUEST_BUSYWAIT 9362306a36Sopenharmony_ci int "Busywait for request completion limit (ns)" 9462306a36Sopenharmony_ci default 8000 # nanoseconds 9562306a36Sopenharmony_ci help 9662306a36Sopenharmony_ci Before sleeping waiting for a request (GPU operation) to complete, 9762306a36Sopenharmony_ci we may spend some time polling for its completion. As the IRQ may 9862306a36Sopenharmony_ci take a non-negligible time to setup, we do a short spin first to 9962306a36Sopenharmony_ci check if the request will complete in the time it would have taken 10062306a36Sopenharmony_ci us to enable the interrupt. 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci This is adjustable via 10362306a36Sopenharmony_ci /sys/class/drm/card?/engine/*/max_busywait_duration_ns 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_ci May be 0 to disable the initial spin. In practice, we estimate 10662306a36Sopenharmony_ci the cost of enabling the interrupt (if currently disabled) to be 10762306a36Sopenharmony_ci a few microseconds. 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ciconfig DRM_I915_STOP_TIMEOUT 11062306a36Sopenharmony_ci int "How long to wait for an engine to quiesce gracefully before reset (ms)" 11162306a36Sopenharmony_ci default 100 # milliseconds 11262306a36Sopenharmony_ci help 11362306a36Sopenharmony_ci By stopping submission and sleeping for a short time before resetting 11462306a36Sopenharmony_ci the GPU, we allow the innocent contexts also on the system to quiesce. 11562306a36Sopenharmony_ci It is then less likely for a hanging context to cause collateral 11662306a36Sopenharmony_ci damage as the system is reset in order to recover. The corollary is 11762306a36Sopenharmony_ci that the reset itself may take longer and so be more disruptive to 11862306a36Sopenharmony_ci interactive or low latency workloads. 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ci This is adjustable via 12162306a36Sopenharmony_ci /sys/class/drm/card?/engine/*/stop_timeout_ms 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_ciconfig DRM_I915_TIMESLICE_DURATION 12462306a36Sopenharmony_ci int "Scheduling quantum for userspace batches (ms, jiffy granularity)" 12562306a36Sopenharmony_ci default 1 # milliseconds 12662306a36Sopenharmony_ci help 12762306a36Sopenharmony_ci When two user batches of equal priority are executing, we will 12862306a36Sopenharmony_ci alternate execution of each batch to ensure forward progress of 12962306a36Sopenharmony_ci all users. This is necessary in some cases where there may be 13062306a36Sopenharmony_ci an implicit dependency between those batches that requires 13162306a36Sopenharmony_ci concurrent execution in order for them to proceed, e.g. they 13262306a36Sopenharmony_ci interact with each other via userspace semaphores. Each context 13362306a36Sopenharmony_ci is scheduled for execution for the timeslice duration, before 13462306a36Sopenharmony_ci switching to the next context. 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_ci This is adjustable via 13762306a36Sopenharmony_ci /sys/class/drm/card?/engine/*/timeslice_duration_ms 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ci May be 0 to disable timeslicing. 140