[PATCH] drm/xe: Modify minimum of various scheduler timeout to 0
Upadhyay, Tejas
tejas.upadhyay at intel.com
Wed May 8 05:35:09 UTC 2024
> -----Original Message-----
> From: Ghimiray, Himal Prasad <himal.prasad.ghimiray at intel.com>
> Sent: Monday, May 6, 2024 7:05 PM
> To: intel-xe at lists.freedesktop.org
> Cc: Ghimiray, Himal Prasad <himal.prasad.ghimiray at intel.com>; Brost,
> Matthew <matthew.brost at intel.com>; Upadhyay, Tejas
> <tejas.upadhyay at intel.com>; Joonas Lahtinen
> <joonas.lahtinen at linux.intel.com>
> Subject: [PATCH] drm/xe: Modify minimum of various scheduler timeout to 0
>
> Remove the min/max configs and change minimum values of preemption and
> timeslice to 0. The sysman teams must deactivate preemption and timeslice
> to assess exclusivity mode. They depend on configuring
> timeslice_duration_us and preempt_timeout_us to 0, ensuring these values
> are set at their minimum.
>
> Cc: Matthew Brost <matthew.brost at intel.com>
> Cc: Tejas Upadhyay <tejas.upadhyay at intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray at intel.com>
> ---
> drivers/gpu/drm/xe/Kconfig.profile | 38 ------------------------------
> drivers/gpu/drm/xe/xe_hw_engine.h | 28 ++--------------------
> 2 files changed, 2 insertions(+), 64 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/Kconfig.profile
> b/drivers/gpu/drm/xe/Kconfig.profile
> index ba17a25e8db3..9bf7adb45eea 100644
> --- a/drivers/gpu/drm/xe/Kconfig.profile
> +++ b/drivers/gpu/drm/xe/Kconfig.profile
> @@ -1,27 +1,3 @@
> -config DRM_XE_JOB_TIMEOUT_MAX
> - int "Default max job timeout (ms)"
> - default 10000 # milliseconds
> - help
> - Configures the default max job timeout after which job will
> - be forcefully taken away from scheduler.
> -config DRM_XE_JOB_TIMEOUT_MIN
> - int "Default min job timeout (ms)"
> - default 1 # milliseconds
> - help
> - Configures the default min job timeout after which job will
> - be forcefully taken away from scheduler.
> -config DRM_XE_TIMESLICE_MAX
> - int "Default max timeslice duration (us)"
> - default 10000000 # microseconds
> - help
> - Configures the default max timeslice duration between multiple
> - contexts by guc scheduling.
> -config DRM_XE_TIMESLICE_MIN
> - int "Default min timeslice duration (us)"
> - default 1 # microseconds
> - help
> - Configures the default min timeslice duration between multiple
> - contexts by guc scheduling.
> config DRM_XE_PREEMPT_TIMEOUT
> int "Preempt timeout (us, jiffy granularity)"
> default 640000 # microseconds
> @@ -30,20 +6,6 @@ config DRM_XE_PREEMPT_TIMEOUT
> 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.
> -config DRM_XE_PREEMPT_TIMEOUT_MAX
> - int "Default max 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.
> -config DRM_XE_PREEMPT_TIMEOUT_MIN
> - int "Default min 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.
> config DRM_XE_ENABLE_SCHEDTIMEOUT_LIMIT
> bool "Default configuration of limitation on scheduler timeout"
> default y
> diff --git a/drivers/gpu/drm/xe/xe_hw_engine.h
> b/drivers/gpu/drm/xe/xe_hw_engine.h
> index 71968ee2f600..803555c601ec 100644
> --- a/drivers/gpu/drm/xe/xe_hw_engine.h
> +++ b/drivers/gpu/drm/xe/xe_hw_engine.h
> @@ -10,41 +10,17 @@
>
> struct drm_printer;
>
> -#ifdef CONFIG_DRM_XE_JOB_TIMEOUT_MIN
> -#define XE_HW_ENGINE_JOB_TIMEOUT_MIN
> CONFIG_DRM_XE_JOB_TIMEOUT_MIN -#else #define
> XE_HW_ENGINE_JOB_TIMEOUT_MIN 1 -#endif -#ifdef
> CONFIG_DRM_XE_JOB_TIMEOUT_MAX -#define
> XE_HW_ENGINE_JOB_TIMEOUT_MAX CONFIG_DRM_XE_JOB_TIMEOUT_MAX
> -#else #define XE_HW_ENGINE_JOB_TIMEOUT_MAX (10 * 1000) -#endif -
> #ifdef CONFIG_DRM_XE_TIMESLICE_MIN -#define
> XE_HW_ENGINE_TIMESLICE_MIN CONFIG_DRM_XE_TIMESLICE_MIN -#else -
> #define XE_HW_ENGINE_TIMESLICE_MIN 1 -#endif -#ifdef
> CONFIG_DRM_XE_TIMESLICE_MAX -#define
> XE_HW_ENGINE_TIMESLICE_MAX CONFIG_DRM_XE_TIMESLICE_MAX -#else
> +#define XE_HW_ENGINE_TIMESLICE_MIN 0
> #define XE_HW_ENGINE_TIMESLICE_MAX (10 * 1000 * 1000) -#endif #ifdef
> CONFIG_DRM_XE_PREEMPT_TIMEOUT #define
> XE_HW_ENGINE_PREEMPT_TIMEOUT CONFIG_DRM_XE_PREEMPT_TIMEOUT
> #else #define XE_HW_ENGINE_PREEMPT_TIMEOUT (640 * 1000) #endif -
> #ifdef CONFIG_DRM_XE_PREEMPT_TIMEOUT_MIN -#define
> XE_HW_ENGINE_PREEMPT_TIMEOUT_MIN
> CONFIG_DRM_XE_PREEMPT_TIMEOUT_MIN -#else -#define
> XE_HW_ENGINE_PREEMPT_TIMEOUT_MIN 1 -#endif -#ifdef
> CONFIG_DRM_XE_PREEMPT_TIMEOUT_MAX -#define
> XE_HW_ENGINE_PREEMPT_TIMEOUT_MAX
> CONFIG_DRM_XE_PREEMPT_TIMEOUT_MAX -#else
> +#define XE_HW_ENGINE_PREEMPT_TIMEOUT_MIN 0
> #define XE_HW_ENGINE_PREEMPT_TIMEOUT_MAX (10 * 1000 * 1000) -
> #endif
>
> int xe_hw_engines_init_early(struct xe_gt *gt); int xe_hw_engines_init(struct
> xe_gt *gt);
> --
LGTM,
Reviewed-by: Tejas Upadhyay <tejas.upadhyay at intel.com>
> 2.25.1
More information about the Intel-xe
mailing list