[PATCH i-g-t 1/4] tests/intel/xe_drm_fdinfo: Use end_cork helper to end the spinner

Lucas De Marchi lucas.demarchi at intel.com
Mon Jun 2 17:48:38 UTC 2025


On Tue, May 20, 2025 at 04:20:29PM -0700, Umesh Nerlige Ramappa wrote:
>Some cases require checking if the cork is null before calling the
>library function. Wrap this into a helper.
>
>Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa at intel.com>
>---
> tests/intel/xe_drm_fdinfo.c | 26 ++++++++++++++------------
> 1 file changed, 14 insertions(+), 12 deletions(-)
>
>diff --git a/tests/intel/xe_drm_fdinfo.c b/tests/intel/xe_drm_fdinfo.c
>index 9a8811b4cd2f..83b7cd617c34 100644
>--- a/tests/intel/xe_drm_fdinfo.c
>+++ b/tests/intel/xe_drm_fdinfo.c
>@@ -423,6 +423,12 @@ check_results(struct pceu_cycles *s1, struct pceu_cycles *s2,
> 	}
> }
>
>+static void end_cork(int fd, struct xe_cork *cork)
>+{
>+	if (cork && !cork->ended)
>+		xe_cork_sync_end(fd, cork);
>+}

not really a fan of these local helpers that are later copy and pasted
everywhere. IMO we should make the lib/ side contain what's needed. But
I won't block it here and we can migrate it later.

Reviewed-by: Lucas De Marchi <lucas.demarchi at intel.com>

Lucas De Marchi

>+
> static void
> utilization_single(int fd, struct drm_xe_engine_class_instance *hwe, unsigned int flags)
> {
>@@ -450,7 +456,7 @@ utilization_single(int fd, struct drm_xe_engine_class_instance *hwe, unsigned in
>
> 	usleep(batch_duration_usec);
> 	if (flags & TEST_TRAILING_IDLE)
>-		xe_cork_sync_end(fd, cork);
>+		end_cork(fd, cork);
>
> 	read_engine_cycles(fd, pceu2[0]);
> 	if (flags & TEST_ISOLATION)
>@@ -497,7 +503,7 @@ utilization_single_destroy_queue(int fd, struct drm_xe_engine_class_instance *hw
> 	usleep(batch_duration_usec);
>
> 	/* destroy queue before sampling again */
>-	xe_cork_sync_end(fd, cork);
>+	end_cork(fd, cork);
> 	timestamp = cork->spin->timestamp;
> 	xe_cork_destroy(fd, cork);
>
>@@ -526,7 +532,7 @@ utilization_others_idle(int fd, struct drm_xe_engine_class_instance *hwe)
>
> 	read_engine_cycles(fd, pceu1);
> 	usleep(batch_duration_usec);
>-	xe_cork_sync_end(fd, cork);
>+	end_cork(fd, cork);
> 	read_engine_cycles(fd, pceu2);
>
> 	xe_for_each_engine_class(class) {
>@@ -568,10 +574,8 @@ utilization_others_full_load(int fd, struct drm_xe_engine_class_instance *hwe)
>
> 	read_engine_cycles(fd, pceu1);
> 	usleep(batch_duration_usec);
>-	xe_for_each_engine_class(class) {
>-		if (cork[class])
>-			xe_cork_sync_end(fd, cork[class]);
>-	}
>+	xe_for_each_engine_class(class)
>+		end_cork(fd, cork[class]);
>
> 	read_engine_cycles(fd, pceu2);
>
>@@ -613,10 +617,8 @@ utilization_all_full_load(int fd)
>
> 	read_engine_cycles(fd, pceu1);
> 	usleep(batch_duration_usec);
>-	xe_for_each_engine_class(class) {
>-		if (cork[class])
>-			xe_cork_sync_end(fd, cork[class]);
>-	}
>+	xe_for_each_engine_class(class)
>+		end_cork(fd, cork[class]);
>
> 	read_engine_cycles(fd, pceu2);
>
>@@ -692,7 +694,7 @@ utilization_multi(int fd, int gt, int class, unsigned int flags)
>
> 	usleep(batch_duration_usec);
> 	if (flags & TEST_TRAILING_IDLE)
>-		xe_cork_sync_end(fd, cork);
>+		end_cork(fd, cork);
>
> 	read_engine_cycles(fd, pceu[1]);
> 	if (flags & TEST_ISOLATION)
>-- 
>2.43.0
>


More information about the igt-dev mailing list