[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