drm/xe: improve Kconfig.profile help text for scheduler timeouts

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>
This commit is contained in:
Rodrigo Vivi 2026-06-05 10:09:52 -04:00
parent a57011eff4
commit 5e34374d65
No known key found for this signature in database
GPG Key ID: FA625F640EEB13CA

View 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