[Intel-xe] [PATCH] drm/xe/xe_exec_queue: Add check for access counter granularity

Zeng, Oak oak.zeng at intel.com
Fri Oct 27 13:56:17 UTC 2023


Reviewed-by: Oak Zeng <oak.zeng at intel.com>

Thanks,
Oak

> -----Original Message-----
> From: Dandamudi, Priyanka <priyanka.dandamudi at intel.com>
> Sent: Friday, October 27, 2023 1:25 AM
> To: Dandamudi, Priyanka <priyanka.dandamudi at intel.com>; intel-
> xe at lists.freedesktop.org; Kumar, Janga Rahul <janga.rahul.kumar at intel.com>;
> Zeng, Oak <oak.zeng at intel.com>; Welty, Brian <brian.welty at intel.com>
> Subject: [PATCH] drm/xe/xe_exec_queue: Add check for access counter
> granularity
> 
> From: Priyanka Dandamudi <priyanka.dandamudi at intel.com>
> 
> Add conditional check for access counter granularity.
> This check will return -EINVAL if granularity is beyond 64M
> which is a hardware limitation.
> 
> v2: Defined
> XE_ACC_GRANULARITY_128K 0
> XE_ACC_GRANULARITY_2M 1
> XE_ACC_GRANULARITY_16M 2
> XE_ACC_GRANULARITY_64M 3
> as part of uAPI.
> So, that user can also use it.(Oak)
> 
> v3: Move uAPI to proper location and give proper
> documentation.(Brian, Oak)
> 
> Cc: Oak Zeng <oak.zeng at intel.com>
> Cc: Janga Rahul Kumar <janga.rahul.kumar at intel.com>
> Cc: Brian Welty <brian.welty at intel.com>
> Signed-off-by: Priyanka Dandamudi <priyanka.dandamudi at intel.com>
> Reviewed-by: Oak Zeng <oak.zeng at intel.com>
> ---
>  drivers/gpu/drm/xe/xe_exec_queue.c |  3 +++
>  include/uapi/drm/xe_drm.h          | 14 ++++++++++++++
>  2 files changed, 17 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c
> b/drivers/gpu/drm/xe/xe_exec_queue.c
> index dd61c4267e24..4fd44a9203e4 100644
> --- a/drivers/gpu/drm/xe/xe_exec_queue.c
> +++ b/drivers/gpu/drm/xe/xe_exec_queue.c
> @@ -393,6 +393,9 @@ static int exec_queue_set_acc_granularity(struct
> xe_device *xe, struct xe_exec_q
>  	if (XE_IOCTL_DBG(xe, !xe->info.supports_usm))
>  		return -EINVAL;
> 
> +	if (value > XE_ACC_GRANULARITY_64M)
> +		return -EINVAL;
> +
>  	q->usm.acc_granularity = value;
> 
>  	return 0;
> diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> index 24bf8f0f52e8..9bd7092a7ea4 100644
> --- a/include/uapi/drm/xe_drm.h
> +++ b/include/uapi/drm/xe_drm.h
> @@ -731,6 +731,20 @@ struct drm_xe_vm_bind {
>  	__u64 reserved[2];
>  };
> 
> +/* For use with XE_EXEC_QUEUE_SET_PROPERTY_ACC_GRANULARITY */
> +
> +/* Monitor 128KB contiguous region with 4K sub-granularity */
> +#define XE_ACC_GRANULARITY_128K 0
> +
> +/* Monitor 2MB contiguous region with 64KB sub-granularity */
> +#define XE_ACC_GRANULARITY_2M 1
> +
> +/* Monitor 16MB contiguous region with 512KB sub-granularity */
> +#define XE_ACC_GRANULARITY_16M 2
> +
> +/* Monitor 64MB contiguous region with 2M sub-granularity */
> +#define XE_ACC_GRANULARITY_64M 3
> +
>  /**
>   * struct drm_xe_exec_queue_set_property - exec queue set property
>   *
> --
> 2.25.1



More information about the Intel-xe mailing list