[PATCH i-g-t 2/2] tests/intel/xe_exec_atomic: Use new vm bind flag
Nirmoy Das
nirmoy.das at intel.com
Wed Apr 10 17:00:41 UTC 2024
Use new vm bind flag to probe device atomics support.
Signed-off-by: Nirmoy Das <nirmoy.das at intel.com>
---
tests/intel/xe_exec_atomic.c | 22 +++++++++++++++++-----
1 file changed, 17 insertions(+), 5 deletions(-)
diff --git a/tests/intel/xe_exec_atomic.c b/tests/intel/xe_exec_atomic.c
index d9790da78..051f47a09 100644
--- a/tests/intel/xe_exec_atomic.c
+++ b/tests/intel/xe_exec_atomic.c
@@ -8,6 +8,7 @@
#include "igt.h"
#include "lib/igt_syncobj.h"
+#include "lib/intel_pat.h"
#include "xe/xe_ioctl.h"
#include "xe/xe_query.h"
#include "xe_drm.h"
@@ -85,7 +86,8 @@ static void basic_inst(int fd, int inst_type, struct drm_xe_engine_class_instanc
exec_queue = xe_exec_queue_create(fd, vm, eci, 0);
bind_engine = xe_bind_exec_queue_create(fd, vm, 0);
- xe_vm_bind_async(fd, vm, bind_engine, bo, 0, addr, bo_size, &sync, 1);
+ xe_vm_bind_async_flags(fd, vm, bind_engine, bo, 0, addr, bo_size,
+ &sync, 1, DRM_XE_VM_BIND_FLAG_DEVICE_ATOMICS);
data = xe_bo_mmap_ext(fd, bo, bo_size, PROT_READ|PROT_WRITE);
data->data = value;
@@ -112,11 +114,21 @@ static void basic_inst(int fd, int inst_type, struct drm_xe_engine_class_instanc
static bool has_atomics(int fd, uint32_t region)
{
- /* System memory atomics on dGPU is not functional as of now */
- if (region == system_memory(fd) && xe_has_vram(fd))
- return false;
+ uint32_t vm;
+ size_t size = xe_bb_size(fd, 4096);
+ uint32_t bo = 0;
+ int ret;
+
+ vm = xe_vm_create(fd, 0, 0);
+ bo = xe_bo_create(fd, vm, size, region, 0);
+ ret = __xe_vm_bind(fd, vm, 0, bo, 0, 0x40000, size,
+ DRM_XE_VM_BIND_OP_MAP,
+ DRM_XE_VM_BIND_FLAG_DEVICE_ATOMICS, NULL, 0, 0,
+ DEFAULT_PAT_INDEX, 0);
+ gem_close(fd, bo);
+ xe_vm_destroy(fd, vm);
- return true;
+ return ret != -EINVAL;
}
igt_main
--
2.42.0
More information about the igt-dev
mailing list