From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: <intel-xe@lists.freedesktop.org>
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Subject: Re: [PATCH] drm/xe: improve Kconfig.profile help text for scheduler timeouts
Date: Fri, 5 Jun 2026 12:48:29 -0400 [thread overview]
Message-ID: <aiL93V-6K1Por7H4@intel.com> (raw)
In-Reply-To: <20260605140951.958172-2-rodrigo.vivi@intel.com>
On Fri, Jun 05, 2026 at 10:09:52AM -0400, Rodrigo Vivi wrote:
> 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
and if we want to be fair with all the tools and models
I guess I also need to add this:
Assisted-by: Sashiko-Review:gemini-3.1-pro-preview
> Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> drivers/gpu/drm/xe/Kconfig.profile | 71 +++++++++++++++++++-----------
> 1 file changed, 46 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/Kconfig.profile b/drivers/gpu/drm/xe/Kconfig.profile
> index 7530df998148..e07517d120e0 100644
> --- a/drivers/gpu/drm/xe/Kconfig.profile
> +++ b/drivers/gpu/drm/xe/Kconfig.profile
> @@ -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
> --
> 2.54.0
>
next prev parent reply other threads:[~2026-06-05 16:50 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-05 14:09 [PATCH] drm/xe: improve Kconfig.profile help text for scheduler timeouts Rodrigo Vivi
2026-06-05 15:32 ` ✓ CI.KUnit: success for drm/xe: improve Kconfig.profile help text for scheduler timeouts (rev2) Patchwork
2026-06-05 16:20 ` ✓ Xe.CI.BAT: " Patchwork
2026-06-05 16:48 ` Rodrigo Vivi [this message]
2026-06-06 4:11 ` ✓ Xe.CI.FULL: " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2026-05-28 20:24 [PATCH] drm/xe: improve Kconfig.profile help text for scheduler timeouts Rodrigo Vivi
2026-06-04 20:57 ` Zanoni, Paulo R
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aiL93V-6K1Por7H4@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=paulo.r.zanoni@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.