[PATCH i-g-t 1/2] drm-uapi/xe: Sync with OA syncs uapi update

Umesh Nerlige Ramappa umesh.nerlige.ramappa at intel.com
Fri Oct 25 19:36:13 UTC 2024


On Fri, Oct 25, 2024 at 11:52:04AM -0700, Ashutosh Dixit wrote:
>Align with kernel commit c8507a25cebd ("drm/xe/oa/uapi: Define and parse OA
>sync properties") which adds OA syncs uapi.
>
>Signed-off-by: Ashutosh Dixit <ashutosh.dixit at intel.com>

Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa at intel.com>

>---
> include/drm-uapi/xe_drm.h | 29 ++++++++++++++++++++++++-----
> 1 file changed, 24 insertions(+), 5 deletions(-)
>
>diff --git a/include/drm-uapi/xe_drm.h b/include/drm-uapi/xe_drm.h
>index f0a450db95..4a8a4a63e9 100644
>--- a/include/drm-uapi/xe_drm.h
>+++ b/include/drm-uapi/xe_drm.h
>@@ -3,8 +3,8 @@
>  * Copyright © 2023 Intel Corporation
>  */
>
>-#ifndef _XE_DRM_H_
>-#define _XE_DRM_H_
>+#ifndef _UAPI_XE_DRM_H_
>+#define _UAPI_XE_DRM_H_
>
> #include "drm.h"
>
>@@ -134,7 +134,7 @@ extern "C" {
>  * redefine the interface more easily than an ever growing struct of
>  * increasing complexity, and for large parts of that interface to be
>  * entirely optional. The downside is more pointer chasing; chasing across
>- * the boundary with pointers encapsulated inside u64.
>+ * the __user boundary with pointers encapsulated inside u64.
>  *
>  * Example chaining:
>  *
>@@ -512,7 +512,9 @@ struct drm_xe_query_gt_list {
>  *    containing the following in mask:
>  *    ``DSS_COMPUTE    ff ff ff ff 00 00 00 00``
>  *    means 32 DSS are available for compute.
>- *  - %DRM_XE_TOPO_L3_BANK - To query the mask of enabled L3 banks
>+ *  - %DRM_XE_TOPO_L3_BANK - To query the mask of enabled L3 banks.  This type
>+ *    may be omitted if the driver is unable to query the mask from the
>+ *    hardware.
>  *  - %DRM_XE_TOPO_EU_PER_DSS - To query the mask of Execution Units (EU)
>  *    available per Dual Sub Slices (DSS). For example a query response
>  *    containing the following in mask:
>@@ -1483,6 +1485,7 @@ struct drm_xe_oa_unit {
> 	/** @capabilities: OA capabilities bit-mask */
> 	__u64 capabilities;
> #define DRM_XE_OA_CAPS_BASE		(1 << 0)
>+#define DRM_XE_OA_CAPS_SYNCS		(1 << 1)
>
> 	/** @oa_timestamp_freq: OA timestamp freq */
> 	__u64 oa_timestamp_freq;
>@@ -1632,6 +1635,22 @@ enum drm_xe_oa_property_id {
> 	 * to be disabled for the stream exec queue.
> 	 */
> 	DRM_XE_OA_PROPERTY_NO_PREEMPT,
>+
>+	/**
>+	 * @DRM_XE_OA_PROPERTY_NUM_SYNCS: Number of syncs in the sync array
>+	 * specified in @DRM_XE_OA_PROPERTY_SYNCS
>+	 */
>+	DRM_XE_OA_PROPERTY_NUM_SYNCS,
>+
>+	/**
>+	 * @DRM_XE_OA_PROPERTY_SYNCS: Pointer to struct @drm_xe_sync array
>+	 * with array size specified via @DRM_XE_OA_PROPERTY_NUM_SYNCS. OA
>+	 * configuration will wait till input fences signal. Output fences
>+	 * will signal after the new OA configuration takes effect. For
>+	 * @DRM_XE_SYNC_TYPE_USER_FENCE, @addr is a user pointer, similar
>+	 * to the VM bind case.
>+	 */
>+	DRM_XE_OA_PROPERTY_SYNCS,
> };
>
> /**
>@@ -1698,4 +1717,4 @@ struct drm_xe_oa_stream_info {
> }
> #endif
>
>-#endif /* _XE_DRM_H_ */
>+#endif /* _UAPI_XE_DRM_H_ */
>-- 
>2.41.0
>


More information about the igt-dev mailing list