| # SPDX-License-Identifier: GPL-2.0-only |
| config DRM_XE_JOB_TIMEOUT_MAX |
| int "Hard upper limit for job timeout (ms)" |
| default 10000 # milliseconds |
| help |
| Absolute upper bound (in milliseconds) for the per-engine-class job |
| timeout. This is the maximum value that can be written to the sysfs |
| job_timeout_ms knob, regardless of privileges. To raise this ceiling, |
| increase this value and rebuild the kernel. |
| config DRM_XE_JOB_TIMEOUT_MIN |
| int "Hard lower limit for job timeout (ms)" |
| default 1 # milliseconds |
| help |
| Absolute lower bound (in milliseconds) for the per-engine-class job |
| timeout. This is the minimum value that can be written to the sysfs |
| job_timeout_ms knob, regardless of privileges. |
| |
| Note: the job timeout default (5000 ms) is hardcoded in the driver |
| and is not configurable here. Use the sysfs job_timeout_ms knob at |
| runtime to change the engine-class default. |
| config DRM_XE_TIMESLICE_MAX |
| int "Hard upper limit for timeslice duration (us)" |
| default 10000000 # microseconds |
| help |
| Absolute upper bound (in microseconds) for the timeslice duration. |
| This caps both the sysfs timeslice_duration_us knob and the value |
| accepted via the DRM_XE_EXEC_QUEUE_SET_PROPERTY_TIMESLICE UAPI for |
| processes with CAP_SYS_NICE when DRM_XE_ENABLE_SCHEDTIMEOUT_LIMIT |
| is enabled. |
| config DRM_XE_TIMESLICE_MIN |
| int "Hard lower limit for timeslice duration (us)" |
| default 1 # microseconds |
| help |
| Absolute lower bound (in microseconds) for the timeslice duration. |
| This caps both the sysfs timeslice_duration_us knob and the value |
| accepted via the DRM_XE_EXEC_QUEUE_SET_PROPERTY_TIMESLICE UAPI for |
| processes with CAP_SYS_NICE when DRM_XE_ENABLE_SCHEDTIMEOUT_LIMIT |
| is enabled. |
| config DRM_XE_PREEMPT_TIMEOUT |
| int "Default preempt timeout (us, jiffy granularity)" |
| default 640000 # microseconds |
| help |
| Initial per-engine-class preemption timeout (in microseconds). This |
| is the value the driver programs at boot; it can be changed at |
| runtime via the sysfs preempt_timeout_us knob. |
| |
| This is how long the driver waits for the current context to reach |
| an arbitration point and yield the GPU voluntarily when a |
| higher-priority context becomes runnable. If the context does not |
| yield before the timer expires, the HW is reset to allow the |
| higher-priority context to execute. |
| |
| The range userspace may write via sysfs is bounded by |
| DRM_XE_PREEMPT_TIMEOUT_MIN and DRM_XE_PREEMPT_TIMEOUT_MAX. |
| config DRM_XE_PREEMPT_TIMEOUT_MAX |
| int "Hard upper limit for preempt timeout (us)" |
| default 10000000 # microseconds |
| help |
| Absolute upper bound (in microseconds) for the per-engine-class |
| preemption timeout. This is the maximum value that can be written to |
| the sysfs preempt_timeout_us knob, regardless of privileges. |
| config DRM_XE_PREEMPT_TIMEOUT_MIN |
| int "Hard lower limit for preempt timeout (us)" |
| default 1 # microseconds |
| help |
| Absolute lower bound (in microseconds) for the per-engine-class |
| preemption timeout. This is the minimum value that can be written to |
| the sysfs preempt_timeout_us knob, regardless of privileges. |
| config DRM_XE_ENABLE_SCHEDTIMEOUT_LIMIT |
| bool "Default configuration of limitation on scheduler timeout" |
| default y |
| help |
| Configures the enablement of limitation on scheduler timeout |
| to apply to applicable user. For elevated user, all above MIN |
| and MAX values will apply when this configuration is enable to |
| apply limitation. By default limitation is applied. |