[PATCH i-g-t 3/8] lib/xe: Move functions from xe_util to xe_gt
Lucas De Marchi
lucas.demarchi at intel.com
Sat Jan 4 07:15:43 UTC 2025
Some functions are clearly gt-related, so move them to xe_gt.
Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
---
lib/xe/xe_gt.c | 67 ++++++++++++++++++++++++++++++++++
lib/xe/xe_gt.h | 8 ++++
lib/xe/xe_util.c | 67 ----------------------------------
lib/xe/xe_util.h | 7 ----
tests/intel/xe_drm_fdinfo.c | 2 +
tests/intel/xe_exec_balancer.c | 1 +
tests/intel/xe_exec_reset.c | 1 +
tests/intel/xe_exec_threads.c | 1 +
tests/intel/xe_gt_freq.c | 1 +
tests/intel/xe_pm_residency.c | 2 +
10 files changed, 83 insertions(+), 74 deletions(-)
diff --git a/lib/xe/xe_gt.c b/lib/xe/xe_gt.c
index 53554beb0..e1f353b41 100644
--- a/lib/xe/xe_gt.c
+++ b/lib/xe/xe_gt.c
@@ -174,3 +174,70 @@ int xe_gt_stats_get_count(int fd, int gt, const char *stat)
return count;
}
+
+/**
+ * xe_is_gt_in_c6:
+ * @fd: pointer to xe drm fd
+ * @gt: gt number
+ *
+ * Check if GT is in C6 state
+ */
+bool xe_is_gt_in_c6(int fd, int gt)
+{
+ char gt_c_state[16];
+ int gt_fd;
+
+ gt_fd = xe_sysfs_gt_open(fd, gt);
+ igt_assert(gt_fd >= 0);
+ igt_assert(igt_sysfs_scanf(gt_fd, "gtidle/idle_status", "%s", gt_c_state) == 1);
+ close(gt_fd);
+
+ return strcmp(gt_c_state, "gt-c6") == 0;
+}
+
+/**
+ * xe_gt_fill_engines_by_class:
+ * @fd: pointer to xe drm fd
+ * @gt: gt number
+ * @class: engine class to use to filter engines
+ * @eci: output argument to copy engines to
+ *
+ * Fill out @drm_xe_engine_class_instance with all the engines in @gt that have
+ * a certain @class.
+ *
+ * Return: number of engines that match the gt and clas
+ */
+int xe_gt_fill_engines_by_class(int fd, int gt, int class,
+ struct drm_xe_engine_class_instance eci[static XE_MAX_ENGINE_INSTANCE])
+{
+ struct drm_xe_engine_class_instance *hwe;
+ int n = 0;
+
+ xe_for_each_engine(fd, hwe)
+ if (hwe->engine_class == class && hwe->gt_id == gt)
+ eci[n++] = *hwe;
+
+ return n;
+}
+
+/**
+ * xe_gt_count_engines_by_class:
+ * @fd: pointer to xe drm fd
+ * @gt: gt number
+ * @class: engine class to use to filter engines
+ *
+ * Count number of engines in @gt that have a certain @class.
+ *
+ * Return: number of engines that match the gt and clas
+ */
+int xe_gt_count_engines_by_class(int fd, int gt, int class)
+{
+ struct drm_xe_engine_class_instance *hwe;
+ int n = 0;
+
+ xe_for_each_engine(fd, hwe)
+ if (hwe->engine_class == class && hwe->gt_id == gt)
+ n++;
+
+ return n;
+}
diff --git a/lib/xe/xe_gt.h b/lib/xe/xe_gt.h
index 756b5f38e..47569cec3 100644
--- a/lib/xe/xe_gt.h
+++ b/lib/xe/xe_gt.h
@@ -8,6 +8,8 @@
#include "lib/igt_gt.h"
+#include "xe_query.h"
+
bool has_xe_gt_reset(int fd);
void xe_force_gt_reset_all(int fd);
igt_hang_t xe_hang_ring(int fd, uint64_t ahnd, uint32_t ctx, int ring,
@@ -15,4 +17,10 @@ igt_hang_t xe_hang_ring(int fd, uint64_t ahnd, uint32_t ctx, int ring,
void xe_post_hang_ring(int fd, igt_hang_t arg);
int xe_gt_stats_get_count(int fd, int gt, const char *stat);
+bool xe_is_gt_in_c6(int fd, int gt);
+
+int xe_gt_fill_engines_by_class(int fd, int gt, int class,
+ struct drm_xe_engine_class_instance eci[static XE_MAX_ENGINE_INSTANCE]);
+int xe_gt_count_engines_by_class(int fd, int gt, int class);
+
#endif
diff --git a/lib/xe/xe_util.c b/lib/xe/xe_util.c
index 9482819c2..f0b6bbb2d 100644
--- a/lib/xe/xe_util.c
+++ b/lib/xe/xe_util.c
@@ -235,70 +235,3 @@ void xe_bind_unbind_async(int xe, uint32_t vm, uint32_t bind_engine,
free(bind_ops);
}
-
-/**
- * xe_is_gt_in_c6:
- * @fd: pointer to xe drm fd
- * @gt: gt number
- *
- * Check if GT is in C6 state
- */
-bool xe_is_gt_in_c6(int fd, int gt)
-{
- char gt_c_state[16];
- int gt_fd;
-
- gt_fd = xe_sysfs_gt_open(fd, gt);
- igt_assert(gt_fd >= 0);
- igt_assert(igt_sysfs_scanf(gt_fd, "gtidle/idle_status", "%s", gt_c_state) == 1);
- close(gt_fd);
-
- return strcmp(gt_c_state, "gt-c6") == 0;
-}
-
-/**
- * xe_gt_fill_engines_by_class:
- * @fd: pointer to xe drm fd
- * @gt: gt number
- * @class: engine class to use to filter engines
- * @eci: output argument to copy engines to
- *
- * Fill out @drm_xe_engine_class_instance with all the engines in @gt that have
- * a certain @class.
- *
- * Return: number of engines that match the gt and clas
- */
-int xe_gt_fill_engines_by_class(int fd, int gt, int class,
- struct drm_xe_engine_class_instance eci[static XE_MAX_ENGINE_INSTANCE])
-{
- struct drm_xe_engine_class_instance *hwe;
- int n = 0;
-
- xe_for_each_engine(fd, hwe)
- if (hwe->engine_class == class && hwe->gt_id == gt)
- eci[n++] = *hwe;
-
- return n;
-}
-
-/**
- * xe_gt_count_engines_by_class:
- * @fd: pointer to xe drm fd
- * @gt: gt number
- * @class: engine class to use to filter engines
- *
- * Count number of engines in @gt that have a certain @class.
- *
- * Return: number of engines that match the gt and clas
- */
-int xe_gt_count_engines_by_class(int fd, int gt, int class)
-{
- struct drm_xe_engine_class_instance *hwe;
- int n = 0;
-
- xe_for_each_engine(fd, hwe)
- if (hwe->engine_class == class && hwe->gt_id == gt)
- n++;
-
- return n;
-}
diff --git a/lib/xe/xe_util.h b/lib/xe/xe_util.h
index b9fbfc5cd..c544d912f 100644
--- a/lib/xe/xe_util.h
+++ b/lib/xe/xe_util.h
@@ -47,11 +47,4 @@ void xe_bind_unbind_async(int fd, uint32_t vm, uint32_t bind_engine,
struct igt_list_head *obj_list,
uint32_t sync_in, uint32_t sync_out);
-bool xe_is_gt_in_c6(int fd, int gt);
-
-int xe_gt_fill_engines_by_class(int fd, int gt, int class,
- struct drm_xe_engine_class_instance eci[static XE_MAX_ENGINE_INSTANCE]);
-int xe_gt_count_engines_by_class(int fd, int gt, int class);
-
-
#endif /* XE_UTIL_H */
diff --git a/tests/intel/xe_drm_fdinfo.c b/tests/intel/xe_drm_fdinfo.c
index 6549629b4..f4264aadb 100644
--- a/tests/intel/xe_drm_fdinfo.c
+++ b/tests/intel/xe_drm_fdinfo.c
@@ -8,7 +8,9 @@
#include "igt_device.h"
#include "igt_drm_fdinfo.h"
#include "lib/igt_syncobj.h"
+
#include "xe_drm.h"
+#include "xe/xe_gt.h"
#include "xe/xe_ioctl.h"
#include "xe/xe_query.h"
#include "xe/xe_spin.h"
diff --git a/tests/intel/xe_exec_balancer.c b/tests/intel/xe_exec_balancer.c
index 1e552e9ef..f2df5cbec 100644
--- a/tests/intel/xe_exec_balancer.c
+++ b/tests/intel/xe_exec_balancer.c
@@ -19,6 +19,7 @@
#include "lib/intel_reg.h"
#include "xe_drm.h"
+#include "xe/xe_gt.h"
#include "xe/xe_ioctl.h"
#include "xe/xe_query.h"
#include "xe/xe_spin.h"
diff --git a/tests/intel/xe_exec_reset.c b/tests/intel/xe_exec_reset.c
index a3eaf8bbf..47c7666df 100644
--- a/tests/intel/xe_exec_reset.c
+++ b/tests/intel/xe_exec_reset.c
@@ -21,6 +21,7 @@
#include "xe/xe_ioctl.h"
#include "xe/xe_query.h"
+#include "xe/xe_gt.h"
#include "xe/xe_spin.h"
#include "xe/xe_util.h"
#include <string.h>
diff --git a/tests/intel/xe_exec_threads.c b/tests/intel/xe_exec_threads.c
index 661117bed..c8fc17366 100644
--- a/tests/intel/xe_exec_threads.c
+++ b/tests/intel/xe_exec_threads.c
@@ -21,6 +21,7 @@
#include "xe/xe_ioctl.h"
#include "xe/xe_query.h"
+#include "xe/xe_gt.h"
#include "xe/xe_spin.h"
#include "xe/xe_util.h"
#include <string.h>
diff --git a/tests/intel/xe_gt_freq.c b/tests/intel/xe_gt_freq.c
index de4d111ea..5d806cf15 100644
--- a/tests/intel/xe_gt_freq.c
+++ b/tests/intel/xe_gt_freq.c
@@ -17,6 +17,7 @@
#include "igt_sysfs.h"
#include "xe_drm.h"
+#include "xe/xe_gt.h"
#include "xe/xe_ioctl.h"
#include "xe/xe_spin.h"
#include "xe/xe_query.h"
diff --git a/tests/intel/xe_pm_residency.c b/tests/intel/xe_pm_residency.c
index d4b26b231..18e5cb6c3 100644
--- a/tests/intel/xe_pm_residency.c
+++ b/tests/intel/xe_pm_residency.c
@@ -21,7 +21,9 @@
#include "igt_sysfs.h"
#include "lib/igt_syncobj.h"
+
#include "xe/xe_ioctl.h"
+#include "xe/xe_gt.h"
#include "xe/xe_query.h"
#include "xe/xe_util.h"
--
2.47.0
More information about the igt-dev
mailing list