]> git.hungrycats.org Git - linux/commitdiff
drm/xe: improve Kconfig.profile help text for scheduler timeouts
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Fri, 5 Jun 2026 14:09:52 +0000 (10:09 -0400)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Tue, 9 Jun 2026 00:57:04 +0000 (20:57 -0400)
The existing help texts for the JOB_TIMEOUT, TIMESLICE and PREEMPT_TIMEOUT
configs were brief and did not make the role of each symbol clear:

 - _MIN / _MAX: hard bounds on the per-engine-class timeout. They are
                enforced unconditionally by the sysfs knobs, and (for
                TIMESLICE, the only one exposed via the SET_PROPERTY UAPI)
                they also bound CAP_SYS_NICE requests when
                DRM_XE_ENABLE_SCHEDTIMEOUT_LIMIT is enabled.
 - PREEMPT_TIMEOUT: the boot-time default; the JOB_TIMEOUT and TIMESLICE
                    defaults are hardcoded in the driver, not configured
                    here.

Rewrite the help texts to reflect this, naming the relevant sysfs knobs
and UAPI property explicitly.

v2: Adjusted commit message based on Sashiko's review.

Assisted-by: GitHub-Copilot:claude-sonnet-4.6
Assisted-by: GitHub-Copilot:claude-opus-4.8 #v2
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Link: https://patch.msgid.link/20260605140951.958172-2-rodrigo.vivi@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/Kconfig.profile

index 7530df998148f43968dd4f1479cbd31e029b7d29..e07517d120e09d6cd3f7ccdda12fa59497f1ab6e 100644 (file)
@@ -1,50 +1,71 @@
 # SPDX-License-Identifier: GPL-2.0-only
 config DRM_XE_JOB_TIMEOUT_MAX
-       int "Default max job timeout (ms)"
+       int "Hard upper limit for job timeout (ms)"
        default 10000 # milliseconds
        help
-         Configures the default max job timeout after which job will
-         be forcefully taken away from scheduler.
+         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 "Default min job timeout (ms)"
+       int "Hard lower limit for job timeout (ms)"
        default 1 # milliseconds
        help
-         Configures the default min job timeout after which job will
-         be forcefully taken away from scheduler.
+         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 "Default max timeslice duration (us)"
+       int "Hard upper limit for timeslice duration (us)"
        default 10000000 # microseconds
        help
-         Configures the default max timeslice duration between multiple
-         contexts by guc scheduling.
+         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 "Default min timeslice duration (us)"
+       int "Hard lower limit for timeslice duration (us)"
        default 1 # microseconds
        help
-         Configures the default min timeslice duration between multiple
-         contexts by guc scheduling.
+         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 "Preempt timeout (us, jiffy granularity)"
+       int "Default preempt timeout (us, jiffy granularity)"
        default 640000 # microseconds
        help
-         How long to wait (in microseconds) for a preemption event to occur
-         when submitting a new context. If the current context does not hit
-         an arbitration point and yield to HW before the timer expires, the
-         HW will be reset to allow the more important context to execute.
+         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 "Default max preempt timeout (us)"
+       int "Hard upper limit for preempt timeout (us)"
        default 10000000 # microseconds
        help
-         Configures the default max preempt timeout after which context
-         will be forcefully taken away and higher priority context will
-         run.
+         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 "Default min preempt timeout (us)"
+       int "Hard lower limit for preempt timeout (us)"
        default 1 # microseconds
        help
-         Configures the default min preempt timeout after which context
-         will be forcefully taken away and higher priority context will
-         run.
+         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