[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