[PATCH i-g-t] lib/xe: Make running under Valgrind quiet
Tvrtko Ursulin
tvrtko.ursulin at igalia.com
Tue Feb 4 17:39:33 UTC 2025
Let Valgrind know which memory is initialised by ioctls so running tests
under it becomes less noisy.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
---
lib/igt_syncobj.c | 4 +---
lib/xe/xe_query.c | 21 +++++++++++++++++++++
2 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/lib/igt_syncobj.c b/lib/igt_syncobj.c
index a53393bd7245..4a62890b4bbf 100644
--- a/lib/igt_syncobj.c
+++ b/lib/igt_syncobj.c
@@ -197,14 +197,12 @@ int
syncobj_wait_err(int fd, uint32_t *handles, uint32_t count,
uint64_t abs_timeout_nsec, uint32_t flags)
{
- struct drm_syncobj_wait wait;
+ struct drm_syncobj_wait wait = { };
wait.handles = to_user_pointer(handles);
wait.timeout_nsec = abs_timeout_nsec;
wait.count_handles = count;
wait.flags = flags;
- wait.first_signaled = 0;
- wait.pad = 0;
return __syncobj_wait(fd, &wait);
}
diff --git a/lib/xe/xe_query.c b/lib/xe/xe_query.c
index ec2b127b7e87..0d2e4805c8ee 100644
--- a/lib/xe/xe_query.c
+++ b/lib/xe/xe_query.c
@@ -9,6 +9,15 @@
#include <stdlib.h>
#include <pthread.h>
+#ifdef HAVE_VALGRIND
+#include <valgrind/valgrind.h>
+#include <valgrind/memcheck.h>
+
+#define VG(x) x
+#else
+#define VG(x) do {} while (0)
+#endif
+
#include "drmtest.h"
#include "ioctl_wrappers.h"
#include "igt_map.h"
@@ -34,6 +43,8 @@ static struct drm_xe_query_config *xe_query_config_new(int fd)
query.data = to_user_pointer(config);
igt_assert_eq(igt_ioctl(fd, DRM_IOCTL_XE_DEVICE_QUERY, &query), 0);
+ VG(VALGRIND_MAKE_MEM_DEFINED(config, query.size));
+
igt_assert(config->num_params > 0);
return config;
@@ -62,6 +73,8 @@ static uint32_t *xe_query_hwconfig_new(int fd, uint32_t *hwconfig_size)
/* Perform the query to get the actual data */
igt_assert_eq(igt_ioctl(fd, DRM_IOCTL_XE_DEVICE_QUERY, &query), 0);
+ VG(VALGRIND_MAKE_MEM_DEFINED(hwconfig, query.size));
+
*hwconfig_size = query.size;
return hwconfig;
}
@@ -84,6 +97,8 @@ static struct drm_xe_query_gt_list *xe_query_gt_list_new(int fd)
query.data = to_user_pointer(gt_list);
igt_assert_eq(igt_ioctl(fd, DRM_IOCTL_XE_DEVICE_QUERY, &query), 0);
+ VG(VALGRIND_MAKE_MEM_DEFINED(gt_list, query.size));
+
return gt_list;
}
@@ -117,6 +132,8 @@ static struct drm_xe_query_engines *xe_query_engines(int fd)
query.data = to_user_pointer(engines);
igt_assert_eq(igt_ioctl(fd, DRM_IOCTL_XE_DEVICE_QUERY, &query), 0);
+ VG(VALGRIND_MAKE_MEM_DEFINED(engines, query.size));
+
return engines;
}
@@ -138,6 +155,8 @@ static struct drm_xe_query_mem_regions *xe_query_mem_regions_new(int fd)
query.data = to_user_pointer(mem_regions);
igt_assert_eq(igt_ioctl(fd, DRM_IOCTL_XE_DEVICE_QUERY, &query), 0);
+ VG(VALGRIND_MAKE_MEM_DEFINED(mem_regions, query.size));
+
return mem_regions;
}
@@ -161,6 +180,8 @@ static struct drm_xe_query_oa_units *xe_query_oa_units_new(int fd)
query.data = to_user_pointer(oa_units);
igt_assert_eq(igt_ioctl(fd, DRM_IOCTL_XE_DEVICE_QUERY, &query), 0);
+ VG(VALGRIND_MAKE_MEM_DEFINED(oa_units, query.size));
+
return oa_units;
}
--
2.48.0
More information about the igt-dev
mailing list