[PATCH 3/3] tests/xe_eudebug_online: update thread count handling in query_attention_bitmask_size()
Jan Maslak
jan.maslak at intel.com
Wed Nov 20 22:28:50 UTC 2024
Update query_attention_bitmask_size() function to fetch the EU thread
count from hwconfig, instead of being hardcoded.
Signed-off-by: Jan Maslak <jan.maslak at intel.com>
---
tests/intel/xe_eudebug_online.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/tests/intel/xe_eudebug_online.c b/tests/intel/xe_eudebug_online.c
index 0ef0d8093..78d9d4bc3 100644
--- a/tests/intel/xe_eudebug_online.c
+++ b/tests/intel/xe_eudebug_online.c
@@ -1118,7 +1118,9 @@ static bool intel_gen_has_lockstep_eus(int fd)
static int query_attention_bitmask_size(int fd, int gt)
{
- const unsigned int threads = 8;
+ uint32_t thread_count_len;
+ uint32_t *thread_count_ptr;
+ uint32_t thread_count;
struct drm_xe_query_topology_mask *c_dss = NULL, *g_dss = NULL, *eu_per_dss = NULL;
struct drm_xe_query_topology_mask *topology;
struct drm_xe_device_query query = {
@@ -1130,6 +1132,11 @@ static int query_attention_bitmask_size(int fd, int gt)
int pos = 0, eus;
uint8_t *any_dss;
+ thread_count_ptr = xe_hwconfig_lookup_value(fd, INTEL_HWCONFIG_NUM_THREADS_PER_EU,
+ &thread_count_len);
+ igt_assert(thread_count_ptr);
+ thread_count = *thread_count_ptr;
+
igt_assert_eq(igt_ioctl(fd, DRM_IOCTL_XE_DEVICE_QUERY, &query), 0);
igt_assert_neq(query.size, 0);
@@ -1178,8 +1185,9 @@ static int query_attention_bitmask_size(int fd, int gt)
free(any_dss);
free(topology);
+ free(thread_count_ptr);
- return eus * threads / 8;
+ return eus * DIV_ROUND_UP(thread_count, 8);
}
static struct drm_xe_eudebug_event_exec_queue *
--
2.34.1
More information about the igt-dev
mailing list