Hi JP, On 3/23/2026 9:59 PM, Juha-Pekka Heikkila wrote: > add function to create exec queue with class and gt id > > Signed-off-by: Juha-Pekka Heikkila > --- > lib/xe/xe_ioctl.c | 20 ++++++++++++++++++++ > lib/xe/xe_ioctl.h | 2 ++ > 2 files changed, 22 insertions(+) > > diff --git a/lib/xe/xe_ioctl.c b/lib/xe/xe_ioctl.c > index ea3f2fcaa..d56c58053 100644 > --- a/lib/xe/xe_ioctl.c > +++ b/lib/xe/xe_ioctl.c > @@ -503,6 +503,26 @@ uint32_t xe_exec_queue_create_class(int fd, uint32_t vm, uint16_t class) > return create.exec_queue_id; > } > > +uint32_t xe_exec_queue_create_class_gt(int fd, uint32_t vm, uint16_t class, > + uint16_t gt_id) > +{ Imho, Invalid class values needs to be handle with valid reason message. DRM_XE_ENGINE_CLASS_VM_BIND is kernel only class. It does not represent an actual hardware engine and is reserved for kernel-internal VM bind queue management. > + struct drm_xe_engine_class_instance instance = { > + .engine_class = class, > + .engine_instance = 0, > + .gt_id = gt_id, > + }; > + struct drm_xe_exec_queue_create create = { > + .vm_id = vm, > + .width = 1, > + .num_placements = 1, > + .instances = to_user_pointer(&instance), > + }; > + > + igt_assert_eq(igt_ioctl(fd, DRM_IOCTL_XE_EXEC_QUEUE_CREATE, &create), 0); > + > + return create.exec_queue_id; > +} > + > int __xe_exec_queue_set_property(int fd, uint32_t exec_queue, uint32_t property, > uint64_t value) > { > diff --git a/lib/xe/xe_ioctl.h b/lib/xe/xe_ioctl.h > index b62d259fd..f2164e640 100644 > --- a/lib/xe/xe_ioctl.h > +++ b/lib/xe/xe_ioctl.h > @@ -83,6 +83,8 @@ uint32_t xe_exec_queue_create(int fd, uint32_t vm, > uint64_t ext); > uint32_t xe_bind_exec_queue_create(int fd, uint32_t vm, uint64_t ext); > uint32_t xe_exec_queue_create_class(int fd, uint32_t vm, uint16_t class); > +uint32_t xe_exec_queue_create_class_gt(int fd, uint32_t vm, uint16_t class, > + uint16_t gt_id); > int __xe_exec_queue_set_property(int fd, uint32_t exec_queue, uint32_t property, > uint64_t value); > void xe_exec_queue_set_property(int fd, uint32_t exec_queue, uint32_t property,