XenevaOS
Loading...
Searching...
No Matches
Public Attributes | List of all members
drm_xe_exec_queue_create Struct Reference

#include <xe_drm.h>

Public Attributes

__u64 extensions
 
__u16 width
 
__u16 num_placements
 
__u32 vm_id
 
__u32 flags
 
__u32 exec_queue_id
 
__u64 instances
 
__u64 reserved [2]
 

Detailed Description

struct drm_xe_exec_queue_create - Input of &DRM_IOCTL_XE_EXEC_QUEUE_CREATE

This ioctl supports setting the following properties via the DRM_XE_EXEC_QUEUE_EXTENSION_SET_PROPERTY extension, which uses the generic &struct drm_xe_ext_set_property:

The example below shows how to use &struct drm_xe_exec_queue_create to create a simple exec_queue (no parallel submission) of class DRM_XE_ENGINE_CLASS_RENDER.

.. code-block:: C

struct drm_xe_engine_class_instance instance = {
    .engine_class = DRM_XE_ENGINE_CLASS_RENDER,
};
struct drm_xe_exec_queue_create exec_queue_create = {
     .extensions = 0,
     .vm_id = vm,
     .width = 1,
     .num_placements = 1,
     .instances = to_user_pointer(&instance),
};
ioctl(fd, DRM_IOCTL_XE_EXEC_QUEUE_CREATE, &exec_queue_create);

Allow users to provide a hint to kernel for cases demanding low latency profile. Please note it will have impact on power consumption. User can indicate low latency hint with flag while creating exec queue as mentioned below:

.. code-block:: C

struct drm_xe_exec_queue_create exec_queue_create = {
     .flags = DRM_XE_EXEC_QUEUE_LOW_LATENCY_HINT,
     .extensions = 0,
     .vm_id = vm,
     .width = 1,
     .num_placements = 1,
     .instances = to_user_pointer(&instance),
};
ioctl(fd, DRM_IOCTL_XE_EXEC_QUEUE_CREATE, &exec_queue_create);

Member Data Documentation

◆ exec_queue_id

__u32 drm_xe_exec_queue_create::exec_queue_id

@exec_queue_id: Returned exec queue ID

◆ extensions

__u64 drm_xe_exec_queue_create::extensions

@extensions: Pointer to the first extension struct, if any

◆ flags

__u32 drm_xe_exec_queue_create::flags

@flags: flags to use for this exec queue

◆ instances

__u64 drm_xe_exec_queue_create::instances

@instances: user pointer to a 2-d array of struct drm_xe_engine_class_instance

length = width (i) * num_placements (j) index = j + i * width

◆ num_placements

__u16 drm_xe_exec_queue_create::num_placements

@num_placements: number of valid placements for this exec queue

◆ reserved

__u64 drm_xe_exec_queue_create::reserved[2]

@reserved: Reserved

◆ vm_id

__u32 drm_xe_exec_queue_create::vm_id

@vm_id: VM to use for this exec queue

◆ width

__u16 drm_xe_exec_queue_create::width

@width: submission width (number BB per exec) for this exec queue


The documentation for this struct was generated from the following file: