[no subject]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I feel this is slightly better than LOW_LATENCY as low latency is a result
Of applying some frequency policy designed for compute task.

A related question is, does this new policy affect power consumption? Usually
Higher frequency implies higher power. 

Do we only want to keep such frequency policy during submission time, or 
Same policy is intended for whole execution time?

The answer of above question would lead to some interface design such as
Whether we need to introduce interface to disable the compute frequency policy.


> +
>  	__guc_exec_queue_policy_start_klv(&policy, q->guc->id);
>  	__guc_exec_queue_policy_add_priority(&policy,
> xe_exec_queue_prio_to_guc[prio]);
> 
> 	__guc_exec_queue_policy_add_execution_quantum(&polic
> y, timeslice_us);
> 
> 	__guc_exec_queue_policy_add_preemption_timeout(&polic
> y, preempt_timeout_us);
> +	__guc_exec_queue_policy_add_slpc_ctx_freq_req(&policy,
> slpc_ctx_freq_req);
> 
>  	xe_guc_ct_send(&guc->ct, (u32 *)&policy.h2g,
>  		       __guc_exec_queue_policy_action_size(&policy),
> 0, 0);
> diff --git a/include/uapi/drm/xe_drm.h
> b/include/uapi/drm/xe_drm.h
> index f62689ca861a..bd0150d2200c 100644
> --- a/include/uapi/drm/xe_drm.h
> +++ b/include/uapi/drm/xe_drm.h
> @@ -1097,6 +1097,7 @@ struct drm_xe_vm_bind {
>   *         .engine_class = DRM_XE_ENGINE_CLASS_RENDER,
>   *     };
>   *     struct drm_xe_exec_queue_create exec_queue_create = {
> + *          .flags = DRM_XE_EXEC_QUEUE_LOW_LATENCY_HINT or 0
>   *          .extensions = 0,
>   *          .vm_id = vm,
>   *          .num_bb_per_exec = 1,
> @@ -1110,7 +1111,6 @@ struct drm_xe_exec_queue_create {
>  #define DRM_XE_EXEC_QUEUE_EXTENSION_SET_PROPERTY
> 	0
>  #define   DRM_XE_EXEC_QUEUE_SET_PROPERTY_PRIORITY
> 	0
>  #define   DRM_XE_EXEC_QUEUE_SET_PROPERTY_TIMESLICE
> 	1
> -
>  	/** @extensions: Pointer to the first extension struct, if any
> */
>  	__u64 extensions;
> 
> @@ -1123,6 +1123,7 @@ struct drm_xe_exec_queue_create {
>  	/** @vm_id: VM to use for this exec queue */
>  	__u32 vm_id;
> 
> +#define DRM_XE_EXEC_QUEUE_LOW_LATENCY_HINT	(0x1
> << 1)

I wonder why flag can't start from (0x1 << 0) here.

Yes I did see the v2 comment of below:

 - DRM_XE_EXEC_QUEUE_LOW_LATENCY_HINT 1 is already planned
for other hint(Szymon)

but this is regarding the definition of a flag used in exec_queue_create, and this 
is the first time we use this flag in *this* uAPI. It shouldn't conflict with UMD's usage of hint flags
in *other* uAPI

>  	/** @flags: MBZ */

Remove this MBZ comment

Oak


>  	__u32 flags;
> 
> --
> 2.34.1





[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux