History

drm/v3d: Create a CPU job extension for the reset performance query job

A CPU job is a type of job that performs operations that requires CPU intervention. A reset performance query job is a job that resets the performance queries by resetting the values of the perfmons. Moreover, we also reset the syncobjs related to the availability of the query. So, create a user extension for the CPU job that enables the creation of a reset performance job. This user extension will allow the creation of a CPU job that resets the perfmons values and resets the availability syncobj.

Maíra Canal committed 2 years ago

Commit bae7cb51 parent 6745f3e4 files · +167 −0Browse files

Showing the changes to include/uapi (1 of 4 files). Show all

Unified · Split

include/uapi/drm/v3d_drm.h+30−0
@@ -76,6 +76,7 @@ struct drm_v3d_extension { · 75 unmodified lines
7676 #define DRM_V3D_EXT_ID_CPU_TIMESTAMP_QUERY 0x03
7777 #define DRM_V3D_EXT_ID_CPU_RESET_TIMESTAMP_QUERY 0x04
7878 #define DRM_V3D_EXT_ID_CPU_COPY_TIMESTAMP_QUERY 0x05
79+#define DRM_V3D_EXT_ID_CPU_RESET_PERFORMANCE_QUERY 0x06
7980 __u32 flags; /* mbz */
8081 };
8182
@@ -492,6 +493,32 @@ struct drm_v3d_copy_timestamp_query { · 410 unmodified lines
492493 __u64 syncs;
493494 };
494495
496+/**
497+ * struct drm_v3d_reset_performance_query - ioctl extension for the CPU job to
498+ * reset performance queries
499+ *
500+ * When an extension DRM_V3D_EXT_ID_CPU_RESET_PERFORMANCE_QUERY is defined, it
501+ * points to this extension to define a reset performance submission. This CPU
502+ * job will reset the performance queries by resetting the values of the
503+ * performance monitors. Moreover, it will reset the syncobj to reset query
504+ * availability.
505+ */
506+struct drm_v3d_reset_performance_query {
507+ struct drm_v3d_extension base;
508+
509+ /* Array of performance queries's syncobjs to indicate its availability */
510+ __u64 syncs;
511+
512+ /* Number of queries */
513+ __u32 count;
514+
515+ /* Number of performance monitors */
516+ __u32 nperfmons;
517+
518+ /* Array of u64 user-pointers that point to an array of kperfmon_ids */
519+ __u64 kperfmon_ids;
520+};
521+
495522 struct drm_v3d_submit_cpu {
496523 /* Pointer to a u32 array of the BOs that are referenced by the job.
497524 *
@@ -507,6 +534,9 @@ struct drm_v3d_submit_cpu { · 9 unmodified lines
507534 * For DRM_V3D_EXT_ID_CPU_COPY_TIMESTAMP_QUERY, it must contain two
508535 * BOs. The first is the BO where the timestamp queries will be written
509536 * to. The second is the BO that contains the timestamp.
537+ *
538+ * For DRM_V3D_EXT_ID_CPU_RESET_PERFORMANCE_QUERY, it must contain no
539+ * BOs.
510540 */
511541 __u64 bo_handles;
512542

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t