€•Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ(/translations/zh_CN/gpu/xe/xe_exec_queue”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/zh_TW/gpu/xe/xe_exec_queue”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/it_IT/gpu/xe/xe_exec_queue”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/ja_JP/gpu/xe/xe_exec_queue”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/ko_KR/gpu/xe/xe_exec_queue”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/pt_BR/gpu/xe/xe_exec_queue”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/sp_SP/gpu/xe/xe_exec_queue”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ*SPDX-License-Identifier: (GPL-2.0+ OR MIT)”h]”hŒ*SPDX-License-Identifier: (GPL-2.0+ OR MIT)”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒB/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒExecution Queue”h]”hŒExecution Queue”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hŒ°An Execution queue is an interface for the HW context of execution. The user creates an execution queue, submits the GPU jobs through those queues and in the end destroys them.”h]”hŒ°An Execution queue is an interface for the HW context of execution. The user creates an execution queue, submits the GPU jobs through those queues and in the end destroys them.”…”�”}”(hhßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œf/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:7: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´K"hhÊh²hubhÞ)�”}”(hŒnExecution queues can also be created by XeKMD itself for driver internal operations like object migration etc.”h]”hŒnExecution queues can also be created by XeKMD itself for driver internal operations like object migration etc.”…”�”}”(hhîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œf/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:7: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´K&hhÊh²hubhÞ)�”}”(hŒËAn execution queue is associated with a specified HW engine or a group of engines (belonging to the same tile and engine class) and any GPU job submitted on the queue will be run on one of these engines.”h]”hŒËAn execution queue is associated with a specified HW engine or a group of engines (belonging to the same tile and engine class) and any GPU job submitted on the queue will be run on one of these engines.”…”�”}”(hhýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œf/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:7: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´K)hhÊh²hubhÞ)�”}”(hŒ®An execution queue is tied to an address space (VM). It holds a reference of the associated VM and the underlying Logical Ring Context/s (LRC/s) until the queue is destroyed.”h]”hŒ®An execution queue is tied to an address space (VM). It holds a reference of the associated VM and the underlying Logical Ring Context/s (LRC/s) until the queue is destroyed.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œf/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:7: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´K-hhÊh²hubhÞ)�”}”(hŒÇThe execution queue sits on top of the submission backend. It opaquely handles the GuC and Execlist backends whichever the platform uses, and the ring operations the different engine classes support.”h]”hŒÇThe execution queue sits on top of the submission backend. It opaquely handles the GuC and Execlist backends whichever the platform uses, and the ring operations the different engine classes support.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œf/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:7: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´K1hhÊh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒMulti Queue Group”h]”hŒMulti Queue Group”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj*h²hh³hÇh´K ubhÞ)�”}”(hXæMulti Queue Group is another mode of execution supported by the compute and blitter copy command streamers (CCS and BCS, respectively). It is an enhancement of the existing hardware architecture and leverages the same submission model. It enables support for efficient, parallel execution of multiple queues within a single shared context. The multi queue group functionality is only supported with GuC submission backend. All the queues of a group must use the same address space (VM).”h]”hXæMulti Queue Group is another mode of execution supported by the compute and blitter copy command streamers (CCS and BCS, respectively). It is an enhancement of the existing hardware architecture and leverages the same submission model. It enables support for efficient, parallel execution of multiple queues within a single shared context. The multi queue group functionality is only supported with GuC submission backend. All the queues of a group must use the same address space (VM).”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:13: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´K9hj*h²hubhÞ)�”}”(hŒ‘The DRM_XE_EXEC_QUEUE_SET_PROPERTY_MULTI_QUEUE execution queue property supports creating a multi queue group and adding queues to a queue group.”h]”hŒ‘The DRM_XE_EXEC_QUEUE_SET_PROPERTY_MULTI_QUEUE execution queue property supports creating a multi queue group and adding queues to a queue group.”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:13: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´KAhj*h²hubhÞ)�”}”(hX÷The XE_EXEC_QUEUE_CREATE ioctl call with above property with value field set to DRM_XE_MULTI_GROUP_CREATE, will create a new multi queue group with the queue being created as the primary queue (aka q0) of the group. To add secondary queues to the group, they need to be created with the above property with id of the primary queue as the value. The properties of the primary queue (like priority, time slice) applies to the whole group. So, these properties can't be set for secondary queues of a group.”h]”hXùThe XE_EXEC_QUEUE_CREATE ioctl call with above property with value field set to DRM_XE_MULTI_GROUP_CREATE, will create a new multi queue group with the queue being created as the primary queue (aka q0) of the group. To add secondary queues to the group, they need to be created with the above property with id of the primary queue as the value. The properties of the primary queue (like priority, time slice) applies to the whole group. So, these properties can’t be set for secondary queues of a group.”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:13: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´KDhj*h²hubhÞ)�”}”(hXaThe hardware does not support removing a queue from a multi-queue group. However, queues can be dynamically added to the group. A group can have up to 64 queues. To support this, XeKMD holds references to LRCs of the queues even after the queues are destroyed by the user until the whole group is destroyed. The secondary queues hold a reference to the primary queue thus preventing the group from being destroyed when user destroys the primary queue. Once the primary queue is destroyed, secondary queues can't be added to the queue group and new job submissions on existing secondary queues are not allowed.”h]”hXcThe hardware does not support removing a queue from a multi-queue group. However, queues can be dynamically added to the group. A group can have up to 64 queues. To support this, XeKMD holds references to LRCs of the queues even after the queues are destroyed by the user until the whole group is destroyed. The secondary queues hold a reference to the primary queue thus preventing the group from being destroyed when user destroys the primary queue. Once the primary queue is destroyed, secondary queues can’t be added to the queue group and new job submissions on existing secondary queues are not allowed.”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:13: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´KLhj*h²hubhÞ)�”}”(hXˆThe queues of a multi queue group can set their priority within the group through the DRM_XE_EXEC_QUEUE_SET_PROPERTY_MULTI_QUEUE_PRIORITY property. This multi queue priority can also be set dynamically through the XE_EXEC_QUEUE_SET_PROPERTY ioctl. This is the only other property supported by the secondary queues of a multi queue group, other than DRM_XE_EXEC_QUEUE_SET_PROPERTY_MULTI_QUEUE.”h]”hXˆThe queues of a multi queue group can set their priority within the group through the DRM_XE_EXEC_QUEUE_SET_PROPERTY_MULTI_QUEUE_PRIORITY property. This multi queue priority can also be set dynamically through the XE_EXEC_QUEUE_SET_PROPERTY ioctl. This is the only other property supported by the secondary queues of a multi queue group, other than DRM_XE_EXEC_QUEUE_SET_PROPERTY_MULTI_QUEUE.”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:13: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´KVhj*h²hubhÞ)�”}”(hŒÊWhen GuC reports an error on any of the queues of a multi queue group, the queue cleanup mechanism is invoked for all the queues of the group as hardware cannot make progress on the multi queue context.”h]”hŒÊWhen GuC reports an error on any of the queues of a multi queue group, the queue cleanup mechanism is invoked for all the queues of the group as hardware cannot make progress on the multi queue context.”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:13: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´K]hj*h²hubhÞ)�”}”(hŒQRefer :ref:`multi-queue-group-guc-interface` for multi queue group GuC interface.”h]”(hŒRefer ”…”�”}”(hj•h²hh³Nh´Nubh)�”}”(hŒ&:ref:`multi-queue-group-guc-interface`”h]”hŒinline”“”)�”}”(hjŸh]”hŒmulti-queue-group-guc-interface”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-ref”eh"]”h$]”h&]”uh1j¡hj�ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œgpu/xe/xe_exec_queue”Œ refdomain”j®Œreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆŒ reftarget”Œmulti-queue-group-guc-interface”uh1hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:13: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Kahj•ubhŒ% for multi queue group GuC interface.”…”�”}”(hj•h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÂh´Kahj*h²hubhŒtarget”“”)�”}”(hŒ$.. _multi-queue-group-guc-interface:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œmulti-queue-group-guc-interface”uh1jÍh´Khj*h²hh³hÇubeh}”(h]”Œmulti-queue-group”ah ]”h"]”Œmulti queue group”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒMulti Queue Group GuC interface”h]”hŒMulti Queue Group GuC interface”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjãh²hh³hÇh´KubhÞ)�”}”(hŒ¶The multi queue group coordination between KMD and GuC is through a software construct called Context Group Page (CGP). The CGP is a KMD managed 4KB page allocated in the global GTT.”h]”hŒ¶The multi queue group coordination between KMD and GuC is through a software construct called Context Group Page (CGP). The CGP is a KMD managed 4KB page allocated in the global GTT.”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´MÌhjãh²hubhÞ)�”}”(hŒ CGP format:”h]”hŒ CGP format:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´MÐhjãh²hubhŒtable”“”)�”}”(hhh]”hŒtgroup”“”)�”}”(hhh]”(hŒcolspec”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1jhjubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jhjubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K-uh1jhjubhŒtbody”“”)�”}”(hhh]”(hŒrow”“”)�”}”(hhh]”(hŒentry”“”)�”}”(hhh]”hÞ)�”}”(hŒDWORD”h]”hŒDWORD”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´MÓhjHubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjCubjG)�”}”(hhh]”hÞ)�”}”(hŒName”h]”hŒName”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jYh´MÓhj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjCubjG)�”}”(hhh]”hÞ)�”}”(hŒ Description”h]”hŒ Description”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jYh´MÓhjwubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjCubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj>ubjB)�”}”(hhh]”(jG)�”}”(hhh]”hÞ)�”}”(hŒ0”h]”hŒ0”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´MÕhj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj”ubjG)�”}”(hhh]”hÞ)�”}”(hŒVersion”h]”hŒVersion”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¨h´MÕhj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj”ubjG)�”}”(hhh]”hÞ)�”}”(hŒ&Bits [15:8]=Major ver, [7:0]=Minor ver”h]”hŒ&Bits [15:8]=Major ver, [7:0]=Minor ver”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¨h´MÕhjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj>ubjB)�”}”(hhh]”(jG)�”}”(hhh]”hÞ)�”}”(hŒ1..15”h]”hŒ1..15”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´M×hjæubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjãubjG)�”}”(hhh]”hÞ)�”}”(hŒRESERVED”h]”hŒRESERVED”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j÷h´M×hjþubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjãubjG)�”}”(hhh]”hÞ)�”}”(hŒMBZ”h]”hŒMBZ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j÷h´M×hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjãubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj>ubjB)�”}”(hhh]”(jG)�”}”(hhh]”hÞ)�”}”(hŒ16”h]”hŒ16”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´MÙhj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj2ubjG)�”}”(hhh]”hÞ)�”}”(hŒKMD_QUEUE_UPDATE_MASK_DW0”h]”hŒKMD_QUEUE_UPDATE_MASK_DW0”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jFh´MÙhjMubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj2ubjG)�”}”(hhh]”hÞ)�”}”(hŒKMD queue mask for queues 31..0”h]”hŒKMD queue mask for queues 31..0”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jFh´MÙhjdubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj>ubjB)�”}”(hhh]”(jG)�”}”(hhh]”hÞ)�”}”(hŒ17”h]”hŒ17”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´MÛhj„ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj�ubjG)�”}”(hhh]”hÞ)�”}”(hŒKMD_QUEUE_UPDATE_MASK_DW1”h]”hŒKMD_QUEUE_UPDATE_MASK_DW1”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j•h´MÛhjœubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj�ubjG)�”}”(hhh]”hÞ)�”}”(hŒ KMD queue mask for queues 63..32”h]”hŒ KMD queue mask for queues 63..32”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j•h´MÛhj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj>ubjB)�”}”(hhh]”(jG)�”}”(hhh]”hÞ)�”}”(hŒ18..31”h]”hŒ18..31”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´MÝhjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÐubjG)�”}”(hhh]”hÞ)�”}”(hŒRESERVED”h]”hŒRESERVED”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jäh´MÝhjëubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÐubjG)�”}”(hhh]”hÞ)�”}”(hŒMBZ”h]”hŒMBZ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jäh´MÝhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÐubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj>ubjB)�”}”(hhh]”(jG)�”}”(hhh]”hÞ)�”}”(hŒ32”h]”hŒ32”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´Mßhj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjubjG)�”}”(hhh]”hÞ)�”}”(hŒQ0CD_DW0”h]”hŒQ0CD_DW0”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j3h´Mßhj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjubjG)�”}”(hhh]”hÞ)�”}”(hŒ*Queue 0 context LRC descriptor lower DWORD”h]”hŒ*Queue 0 context LRC descriptor lower DWORD”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j3h´MßhjQubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj>ubjB)�”}”(hhh]”(jG)�”}”(hhh]”hÞ)�”}”(hŒ33”h]”hŒ33”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´Máhjqubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjnubjG)�”}”(hhh]”hÞ)�”}”(hŒQ0ContextIndex”h]”hŒQ0ContextIndex”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j‚h´Máhj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjnubjG)�”}”(hhh]”hÞ)�”}”(hŒContext ID for Queue 0”h]”hŒContext ID for Queue 0”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j‚h´Máhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjnubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj>ubjB)�”}”(hhh]”(jG)�”}”(hhh]”hÞ)�”}”(hŒ34”h]”hŒ34”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´MãhjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj½ubjG)�”}”(hhh]”hÞ)�”}”(hŒQ1CD_DW0”h]”hŒQ1CD_DW0”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÑh´MãhjØubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj½ubjG)�”}”(hhh]”hÞ)�”}”(hŒ*Queue 1 context LRC descriptor lower DWORD”h]”hŒ*Queue 1 context LRC descriptor lower DWORD”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÑh´Mãhjïubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj½ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj>ubjB)�”}”(hhh]”(jG)�”}”(hhh]”hÞ)�”}”(hŒ35”h]”hŒ35”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´Måhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj ubjG)�”}”(hhh]”hÞ)�”}”(hŒQ1ContextIndex”h]”hŒQ1ContextIndex”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j h´Måhj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj ubjG)�”}”(hhh]”hÞ)�”}”(hŒContext ID for Queue 1”h]”hŒContext ID for Queue 1”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j h´Måhj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj>ubjB)�”}”(hhh]”(jG)�”}”(hhh]”hÞ)�”}”(hŒ...”h]”hŒ...”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´Mçhj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj[ubjG)�”}”(hhh]”hÞ)�”}”(hŒ...”h]”hŒ...”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³joh´Mçhjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj[ubjG)�”}”(hhh]”hÞ)�”}”(hŒ...”h]”hŒ...”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³joh´Mçhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj>ubjB)�”}”(hhh]”(jG)�”}”(hhh]”hÞ)�”}”(hŒ158”h]”hŒ158”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´Méhj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjªubjG)�”}”(hhh]”hÞ)�”}”(hŒ Q63CD_DW0”h]”hŒ Q63CD_DW0”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¾h´MéhjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjªubjG)�”}”(hhh]”hÞ)�”}”(hŒ+Queue 63 context LRC descriptor lower DWORD”h]”hŒ+Queue 63 context LRC descriptor lower DWORD”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¾h´MéhjÜubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjªubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj>ubjB)�”}”(hhh]”(jG)�”}”(hhh]”hÞ)�”}”(hŒ159”h]”hŒ159”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´Mëhjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjùubjG)�”}”(hhh]”hÞ)�”}”(hŒQ63ContextIndex”h]”hŒQ63ContextIndex”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j h´Mëhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjùubjG)�”}”(hhh]”hÞ)�”}”(hŒContext ID for Queue 63”h]”hŒContext ID for Queue 63”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j h´Mëhj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjùubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj>ubjB)�”}”(hhh]”(jG)�”}”(hhh]”hÞ)�”}”(hŒ 160..1024”h]”hŒ 160..1024”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´MíhjKubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjHubjG)�”}”(hhh]”hÞ)�”}”(hŒRESERVED”h]”hŒRESERVED”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j\h´Míhjcubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjHubjG)�”}”(hhh]”hÞ)�”}”(hŒMBZ”h]”hŒMBZ”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j\h´Míhjzubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjHubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j<hjubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjãh²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´NubhÞ)�”}”(hXWhile registering Q0 with GuC, CGP is updated with Q0 entry and GuC is notified through XE_GUC_ACTION_REGISTER_CONTEXT_MULTI_QUEUE H2G message which specifies the CGP address. When the secondary queues are added to the group, the CGP is updated with entry for that queue and GuC is notified through the H2G interface XE_GUC_ACTION_MULTI_QUEUE_CONTEXT_CGP_SYNC. GuC responds to these H2G messages with a XE_GUC_ACTION_NOTIFY_MULTIQ_CONTEXT_CGP_SYNC_DONE G2H message. GuC also sends a XE_GUC_ACTION_NOTIFY_MULTI_QUEUE_CGP_CONTEXT_ERROR notification for any error in the CGP. Only one of these CGP update messages can be outstanding (waiting for GuC response) at any time. The bits in KMD_QUEUE_UPDATE_MASK_DW* fields indicate which queue entry is being updated in the CGP.”h]”hXWhile registering Q0 with GuC, CGP is updated with Q0 entry and GuC is notified through XE_GUC_ACTION_REGISTER_CONTEXT_MULTI_QUEUE H2G message which specifies the CGP address. When the secondary queues are added to the group, the CGP is updated with entry for that queue and GuC is notified through the H2G interface XE_GUC_ACTION_MULTI_QUEUE_CONTEXT_CGP_SYNC. GuC responds to these H2G messages with a XE_GUC_ACTION_NOTIFY_MULTIQ_CONTEXT_CGP_SYNC_DONE G2H message. GuC also sends a XE_GUC_ACTION_NOTIFY_MULTI_QUEUE_CGP_CONTEXT_ERROR notification for any error in the CGP. Only one of these CGP update messages can be outstanding (waiting for GuC response) at any time. The bits in KMD_QUEUE_UPDATE_MASK_DW* fields indicate which queue entry is being updated in the CGP.”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´Mðhjãh²hubhÞ)�”}”(hŒ–The primary queue (Q0) represents the multi queue group context in GuC and submission on any queue of the group must be through Q0 GuC interface only.”h]”hŒ–The primary queue (Q0) represents the multi queue group context in GuC and submission on any queue of the group must be through Q0 GuC interface only.”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´Mûhjãh²hubhÞ)�”}”(hŒ‰As it is not required to register secondary queues with GuC, the secondary queue context ids in the CGP are populated with Q0 context id.”h]”hŒ‰As it is not required to register secondary queues with GuC, the secondary queue context ids in the CGP are populated with Q0 context id.”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:21: ./drivers/gpu/drm/xe/xe_guc_submit.c”h´Mþhjãh²hubeh}”(h]”(jÚŒid1”eh ]”h"]”(Œmulti queue group guc interface”Œmulti-queue-group-guc-interface”eh$]”h&]”uh1hÈhhÊh²hh³hÇh´KŒexpect_referenced_by_name”}”jÞjÏsŒexpect_referenced_by_id”}”jÚjÏsubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Internal API”h]”hŒ Internal API”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjåh²hh³hÇh´KubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œ xe_multi_queue_priority (C enum)”Œc.xe_multi_queue_priority”hNt”auh1jöhjåh²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒxe_multi_queue_priority”h]”hŒdesc_signature_line”“”)�”}”(hŒenum xe_multi_queue_priority”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒenum”h]”hŒenum”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1jhjh²hh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j*hjh²hh³j)h´KubhŒ desc_name”“”)�”}”(hŒxe_multi_queue_priority”h]”hŒ desc_sig_name”“”)�”}”(hjh]”hŒxe_multi_queue_priority”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jAhj=ubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1j;hjh²hh³j)h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1jŒsphinx_line_type”Œ declarator”hjh²hh³j)h´Kubah}”(h]”jah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1j h³j)h´Khj h²hubhŒ desc_content”“”)�”}”(hhh]”hÞ)�”}”(hŒMulti Queue priority values”h]”hŒMulti Queue priority values”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K$hjoh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj h²hh³j)h´Kubeh}”(h]”h ]”(Œc”Œenum”eh"]”h$]”h&]”Œdomain”jŠŒobjtype”j‹Œdesctype”j‹Œnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1jh²hhjåh³Nh´NubhŒ container”“”)�”}”(hŒ¥**Constants** ``XE_MULTI_QUEUE_PRIORITY_LOW`` Priority low ``XE_MULTI_QUEUE_PRIORITY_NORMAL`` Priority normal ``XE_MULTI_QUEUE_PRIORITY_HIGH`` Priority high”h]”(hÞ)�”}”(hŒ **Constants**”h]”hŒstrong”“”)�”}”(hj�h]”hŒ Constants”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K(hj—ubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ-``XE_MULTI_QUEUE_PRIORITY_LOW`` Priority low ”h]”(hŒterm”“”)�”}”(hŒ``XE_MULTI_QUEUE_PRIORITY_LOW``”h]”hŒliteral”“”)�”}”(hjÄh]”hŒXE_MULTI_QUEUE_PRIORITY_LOW”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K+hj¼ubhŒ definition”“”)�”}”(hhh]”hÞ)�”}”(hŒ Priority low”h]”hŒ Priority low”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÛh´K+hjÞubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj¼ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÛh´K+hj·ubj»)�”}”(hŒ3``XE_MULTI_QUEUE_PRIORITY_NORMAL`` Priority normal ”h]”(jÁ)�”}”(hŒ"``XE_MULTI_QUEUE_PRIORITY_NORMAL``”h]”jÇ)�”}”(hjh]”hŒXE_MULTI_QUEUE_PRIORITY_NORMAL”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K.hjûubjÝ)�”}”(hhh]”hÞ)�”}”(hŒPriority normal”h]”hŒPriority normal”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jh´K.hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjûubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jh´K.hj·ubj»)�”}”(hŒ.``XE_MULTI_QUEUE_PRIORITY_HIGH`` Priority high”h]”(jÁ)�”}”(hŒ ``XE_MULTI_QUEUE_PRIORITY_HIGH``”h]”jÇ)�”}”(hj:h]”hŒXE_MULTI_QUEUE_PRIORITY_HIGH”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K0hj4ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ Priority high”h]”hŒ Priority high”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K1hjPubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jOh´K0hj·ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhj—ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´NubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hj}h]”hŒ Description”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K3hjåh²hubhÞ)�”}”(hŒ?The priority values of the queues within the multi queue group.”h]”hŒ?The priority values of the queues within the multi queue group.”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K%hjåh²hubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒxe_exec_queue_group (C struct)”Œc.xe_exec_queue_group”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒxe_exec_queue_group”h]”j)�”}”(hŒstruct xe_exec_queue_group”h]”(j)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj·h²hh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K*ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj·h²hh³jÉh´K*ubj<)�”}”(hŒxe_exec_queue_group”h]”jB)�”}”(hjµh]”hŒxe_exec_queue_group”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjØubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hj·h²hh³jÉh´K*ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahj³h²hh³jÉh´K*ubah}”(h]”j®ah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³jÉh´K*hj°h²hubjn)�”}”(hhh]”hÞ)�”}”(hŒExecution multi queue group”h]”hŒExecution multi queue group”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K2hjûh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj°h²hh³jÉh´K*ubeh}”(h]”h ]”(jŠŒstruct”eh"]”h$]”h&]”j�jŠj�j j‘j j’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hXN**Definition**:: struct xe_exec_queue_group { struct xe_exec_queue *primary; struct xe_bo *cgp_bo; struct xarray xa; struct list_head list; struct mutex list_lock; spinlock_t suspend_lock; bool sync_pending; bool banned; bool stopped; }; **Members** ``primary`` Primary queue of this group ``cgp_bo`` BO for the Context Group Page ``xa`` xarray to store LRCs ``list`` List of all secondary queues in the group ``list_lock`` Secondary queue list lock ``suspend_lock`` Makes a secondary's suspend/resume and its forwarding to the primary atomic. Nested outside of the queue's message lock (**xe_guc_exec_queue.sched.msg_lock**). ``sync_pending`` CGP_SYNC_DONE g2h response pending ``banned`` Group banned ``stopped`` Group is stopped, protected by list_lock”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(j )�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj" h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj ubhŒ:”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K6hj ubhŒ literal_block”“”)�”}”(hXstruct xe_exec_queue_group { struct xe_exec_queue *primary; struct xe_bo *cgp_bo; struct xarray xa; struct list_head list; struct mutex list_lock; spinlock_t suspend_lock; bool sync_pending; bool banned; bool stopped; };”h]”hXstruct xe_exec_queue_group { struct xe_exec_queue *primary; struct xe_bo *cgp_bo; struct xarray xa; struct list_head list; struct mutex list_lock; spinlock_t suspend_lock; bool sync_pending; bool banned; bool stopped; };”…”�”}”hj= sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j; h³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K8hj ubhÞ)�”}”(hŒ **Members**”h]”j )�”}”(hjN h]”hŒMembers”…”�”}”(hjP h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjL ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KDhj ubj¶)�”}”(hhh]”(j»)�”}”(hŒ(``primary`` Primary queue of this group ”h]”(jÁ)�”}”(hŒ ``primary``”h]”jÇ)�”}”(hjm h]”hŒprimary”…”�”}”(hjo h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjk ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K8hjg ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒPrimary queue of this group”h]”hŒPrimary queue of this group”…”�”}”(hj† h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j‚ h´K8hjƒ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjg ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j‚ h´K8hjd ubj»)�”}”(hŒ)``cgp_bo`` BO for the Context Group Page ”h]”(jÁ)�”}”(hŒ ``cgp_bo``”h]”jÇ)�”}”(hj¦ h]”hŒcgp_bo”…”�”}”(hj¨ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj¤ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K:hj  ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒBO for the Context Group Page”h]”hŒBO for the Context Group Page”…”�”}”(hj¿ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j» h´K:hj¼ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj  ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j» h´K:hjd ubj»)�”}”(hŒ``xa`` xarray to store LRCs ”h]”(jÁ)�”}”(hŒ``xa``”h]”jÇ)�”}”(hjß h]”hŒxa”…”�”}”(hjá h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÝ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´Khj ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ)List of all secondary queues in the group”h]”hŒ)List of all secondary queues in the group”…”�”}”(hj1 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j- h´K>hj. ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j- h´K>hjd ubj»)�”}”(hŒ(``list_lock`` Secondary queue list lock ”h]”(jÁ)�”}”(hŒ ``list_lock``”h]”jÇ)�”}”(hjQ h]”hŒ list_lock”…”�”}”(hjS h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjO ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K@hjK ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒSecondary queue list lock”h]”hŒSecondary queue list lock”…”�”}”(hjj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jf h´K@hjg ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjK ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jf h´K@hjd ubj»)�”}”(hŒ±``suspend_lock`` Makes a secondary's suspend/resume and its forwarding to the primary atomic. Nested outside of the queue's message lock (**xe_guc_exec_queue.sched.msg_lock**). ”h]”(jÁ)�”}”(hŒ``suspend_lock``”h]”jÇ)�”}”(hjŠ h]”hŒ suspend_lock”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjˆ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KEhj„ ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒŸMakes a secondary's suspend/resume and its forwarding to the primary atomic. Nested outside of the queue's message lock (**xe_guc_exec_queue.sched.msg_lock**).”h]”(hŒ}Makes a secondary’s suspend/resume and its forwarding to the primary atomic. Nested outside of the queue’s message lock (”…”�”}”(hj£ h²hh³Nh´Nubj )�”}”(hŒ$**xe_guc_exec_queue.sched.msg_lock**”h]”hŒ xe_guc_exec_queue.sched.msg_lock”…”�”}”(hj« h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj£ ubhŒ).”…”�”}”(hj£ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KChj  ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj„ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jŸ h´KEhjd ubj»)�”}”(hŒ4``sync_pending`` CGP_SYNC_DONE g2h response pending ”h]”(jÁ)�”}”(hŒ``sync_pending``”h]”jÇ)�”}”(hjÖ h]”hŒ sync_pending”…”�”}”(hjØ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÔ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KHhjÐ ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ"CGP_SYNC_DONE g2h response pending”h]”hŒ"CGP_SYNC_DONE g2h response pending”…”�”}”(hjï h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jë h´KHhjì ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÐ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jë h´KHhjd ubj»)�”}”(hŒ``banned`` Group banned ”h]”(jÁ)�”}”(hŒ ``banned``”h]”jÇ)�”}”(hj h]”hŒbanned”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KJhj ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ Group banned”h]”hŒ Group banned”…”�”}”(hj( h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j$ h´KJhj% ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j$ h´KJhjd ubj»)�”}”(hŒ4``stopped`` Group is stopped, protected by list_lock”h]”(jÁ)�”}”(hŒ ``stopped``”h]”jÇ)�”}”(hjH h]”hŒstopped”…”�”}”(hjJ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjF ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KKhjB ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ(Group is stopped, protected by list_lock”h]”hŒ(Group is stopped, protected by list_lock”…”�”}”(hja h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KLhj^ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjB ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j] h´KKhjd ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhj ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´NubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hj‹ h]”hŒ Description”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj‰ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KOhjåh²hubhÞ)�”}”(hŒ'Contains multi queue group information.”h]”hŒ'Contains multi queue group information.”…”�”}”(hj¡ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K3hjåh²hubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒxe_exec_queue (C struct)”Œc.xe_exec_queue”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒ xe_exec_queue”h]”j)�”}”(hŒstruct xe_exec_queue”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjÉ h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjÅ h²hh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K8ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj× h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjÅ h²hh³jÖ h´K8ubj<)�”}”(hŒ xe_exec_queue”h]”jB)�”}”(hjà h]”hŒ xe_exec_queue”…”�”}”(hjé h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjå ubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hjÅ h²hh³jÖ h´K8ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahjÁ h²hh³jÖ h´K8ubah}”(h]”j¼ ah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³jÖ h´K8hj¾ h²hubjn)�”}”(hhh]”hÞ)�”}”(hŒExecution queue”h]”hŒExecution queue”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KPhj h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj¾ h²hh³jÖ h´K8ubeh}”(h]”h ]”(jŠŒstruct”eh"]”h$]”h&]”j�jŠj�j# j‘j# j’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hXu**Definition**:: struct xe_exec_queue { struct xe_file *xef; struct xe_gt *gt; struct xe_hw_engine *hwe; struct kref refcount; struct xe_vm *vm; struct xe_vm *user_vm; enum xe_engine_class class; u32 logical_mask; char name[MAX_FENCE_NAME_LEN]; u16 width; u16 msix_vec; struct xe_hw_fence_irq *fence_irq; struct dma_fence *last_fence; #define EXEC_QUEUE_FLAG_KERNEL BIT(0); #define EXEC_QUEUE_FLAG_PERMANENT BIT(1); #define EXEC_QUEUE_FLAG_VM BIT(2); #define EXEC_QUEUE_FLAG_BIND_ENGINE_CHILD BIT(3); #define EXEC_QUEUE_FLAG_HIGH_PRIORITY BIT(4); #define EXEC_QUEUE_FLAG_LOW_LATENCY BIT(5); #define EXEC_QUEUE_FLAG_MIGRATE BIT(6); #define EXEC_QUEUE_FLAG_DISABLE_STATE_CACHE_PERF_FIX BIT(7); unsigned long flags; union { struct list_head multi_gt_list; struct list_head multi_gt_link; }; union { struct xe_execlist_exec_queue *execlist; struct xe_guc_exec_queue *guc; }; struct { struct xe_exec_queue_group *group; struct list_head link; enum xe_multi_queue_priority priority; spinlock_t lock; u8 pos; u8 valid:1; u8 is_primary:1; } multi_queue; struct { u32 timeslice_us; u32 preempt_timeout_us; u32 job_timeout_ms; enum xe_exec_queue_priority priority; } sched_props; struct { struct dma_fence *pfence; u64 context; u32 seqno; struct list_head link; bool suspended; } lr; #define XE_EXEC_QUEUE_TLB_INVAL_PRIMARY_GT 0; #define XE_EXEC_QUEUE_TLB_INVAL_MEDIA_GT 1; #define XE_EXEC_QUEUE_TLB_INVAL_COUNT (XE_EXEC_QUEUE_TLB_INVAL_MEDIA_GT + 1); struct { struct xe_dep_scheduler *dep_scheduler; struct dma_fence *last_fence; } tlb_inval[XE_EXEC_QUEUE_TLB_INVAL_COUNT]; struct list_head vm_exec_queue_link; struct { u8 type; struct list_head link; } pxp; struct drm_syncobj *ufence_syncobj; u64 ufence_timeline_value; void *replay_state; const struct xe_exec_queue_ops *ops; const struct xe_ring_ops *ring_ops; struct drm_sched_entity *entity; #define XE_MAX_JOB_COUNT_PER_EXEC_QUEUE 1000; atomic_t job_cnt; u64 tlb_flush_seqno; struct list_head hw_engine_group_link; spinlock_t lrc_lookup_lock; struct xe_lrc *lrc[]; }; **Members** ``xef`` Back pointer to xe file if this is user created exec queue ``gt`` GT structure this exec queue can submit to ``hwe`` A hardware of the same class. May (physical engine) or may not (virtual engine) be where jobs actual engine up running. Should never really be used for submissions. ``refcount`` ref count of this exec queue ``vm`` VM (address space) for this exec queue ``user_vm`` User VM (address space) for this exec queue (bind queues only) ``class`` class of this exec queue ``logical_mask`` logical mask of where job submitted to exec queue can run ``name`` name of this exec queue ``width`` width (number BB submitted per exec) of this exec queue ``msix_vec`` MSI-X vector (for platforms that support it) ``fence_irq`` fence IRQ used to signal job completion ``last_fence`` last fence on exec queue, protected by vm->lock in write mode if bind exec queue, protected by dma resv lock if non-bind exec queue ``flags`` flags for this exec queue, should statically setup aside from ban bit ``{unnamed_union}`` anonymous ``multi_gt_list`` list head for VM bind engines if multi-GT ``multi_gt_link`` link for VM bind engines if multi-GT ``{unnamed_union}`` anonymous ``execlist`` execlist backend specific state for exec queue ``guc`` GuC backend specific state for exec queue ``multi_queue`` Multi queue information ``multi_queue.group`` Queue group information ``multi_queue.link`` Link into group's secondary queues list ``multi_queue.priority`` Queue priority within the multi-queue group. It is protected by **multi_queue.lock**. ``multi_queue.lock`` Lock for protecting certain members ``multi_queue.pos`` Position of queue within the multi-queue group ``multi_queue.valid`` Queue belongs to a multi queue group ``multi_queue.is_primary`` Is primary queue (Q0) of the group ``sched_props`` scheduling properties ``sched_props.timeslice_us`` timeslice period in micro-seconds ``sched_props.preempt_timeout_us`` preemption timeout in micro-seconds ``sched_props.job_timeout_ms`` job timeout in milliseconds ``sched_props.priority`` priority of this exec queue ``lr`` long-running exec queue state ``lr.pfence`` preemption fence ``lr.context`` preemption fence context ``lr.seqno`` preemption fence seqno ``lr.link`` link into VM's list of exec queues ``lr.suspended`` Tracks whether the consumer-issued suspend() succeeded and a matching resume() is still owed. suspend() can fail (e.g. killed/banned/wedged), leaving the queue un-suspended, so consumers must only resume() queues that were actually suspended. Set by the suspend caller on success and cleared by the resume caller. A queue is only ever suspended by a single consumer at a time (preempt-fence mode and hw engine group fault mode are mutually exclusive), so a single flag is sufficient. ``tlb_inval`` TLB invalidations exec queue state ``tlb_inval.dep_scheduler`` The TLB invalidation dependency scheduler ``tlb_inval.last_fence`` last fence for tlb invalidation, protected by vm->lock in write mode ``vm_exec_queue_link`` Link to track exec queue within a VM's list of exec queues. ``pxp`` PXP info tracking ``pxp.type`` PXP session type used by this queue ``pxp.link`` link into the list of PXP exec queues ``ufence_syncobj`` User fence syncobj ``ufence_timeline_value`` User fence timeline value ``replay_state`` GPU hang replay state ``ops`` submission backend exec queue operations ``ring_ops`` ring operations for this exec queue ``entity`` DRM sched entity for this exec queue (1 to 1 relationship) ``job_cnt`` number of drm jobs in this exec queue ``tlb_flush_seqno`` The seqno of the last rebind tlb flush performed Protected by **vm**'s resv. Unused if **vm** == NULL. ``hw_engine_group_link`` link into exec queues in the same hw engine group ``lrc_lookup_lock`` Lock for protecting lrc array access. Only used when running in parallel to queue creation is possible. ``lrc`` logical ring context for this exec queue”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(j )�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj/ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj+ ubhŒ:”…”�”}”(hj+ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KThj' ubj< )�”}”(hX¨ struct xe_exec_queue { struct xe_file *xef; struct xe_gt *gt; struct xe_hw_engine *hwe; struct kref refcount; struct xe_vm *vm; struct xe_vm *user_vm; enum xe_engine_class class; u32 logical_mask; char name[MAX_FENCE_NAME_LEN]; u16 width; u16 msix_vec; struct xe_hw_fence_irq *fence_irq; struct dma_fence *last_fence; #define EXEC_QUEUE_FLAG_KERNEL BIT(0); #define EXEC_QUEUE_FLAG_PERMANENT BIT(1); #define EXEC_QUEUE_FLAG_VM BIT(2); #define EXEC_QUEUE_FLAG_BIND_ENGINE_CHILD BIT(3); #define EXEC_QUEUE_FLAG_HIGH_PRIORITY BIT(4); #define EXEC_QUEUE_FLAG_LOW_LATENCY BIT(5); #define EXEC_QUEUE_FLAG_MIGRATE BIT(6); #define EXEC_QUEUE_FLAG_DISABLE_STATE_CACHE_PERF_FIX BIT(7); unsigned long flags; union { struct list_head multi_gt_list; struct list_head multi_gt_link; }; union { struct xe_execlist_exec_queue *execlist; struct xe_guc_exec_queue *guc; }; struct { struct xe_exec_queue_group *group; struct list_head link; enum xe_multi_queue_priority priority; spinlock_t lock; u8 pos; u8 valid:1; u8 is_primary:1; } multi_queue; struct { u32 timeslice_us; u32 preempt_timeout_us; u32 job_timeout_ms; enum xe_exec_queue_priority priority; } sched_props; struct { struct dma_fence *pfence; u64 context; u32 seqno; struct list_head link; bool suspended; } lr; #define XE_EXEC_QUEUE_TLB_INVAL_PRIMARY_GT 0; #define XE_EXEC_QUEUE_TLB_INVAL_MEDIA_GT 1; #define XE_EXEC_QUEUE_TLB_INVAL_COUNT (XE_EXEC_QUEUE_TLB_INVAL_MEDIA_GT + 1); struct { struct xe_dep_scheduler *dep_scheduler; struct dma_fence *last_fence; } tlb_inval[XE_EXEC_QUEUE_TLB_INVAL_COUNT]; struct list_head vm_exec_queue_link; struct { u8 type; struct list_head link; } pxp; struct drm_syncobj *ufence_syncobj; u64 ufence_timeline_value; void *replay_state; const struct xe_exec_queue_ops *ops; const struct xe_ring_ops *ring_ops; struct drm_sched_entity *entity; #define XE_MAX_JOB_COUNT_PER_EXEC_QUEUE 1000; atomic_t job_cnt; u64 tlb_flush_seqno; struct list_head hw_engine_group_link; spinlock_t lrc_lookup_lock; struct xe_lrc *lrc[]; };”h]”hX¨ struct xe_exec_queue { struct xe_file *xef; struct xe_gt *gt; struct xe_hw_engine *hwe; struct kref refcount; struct xe_vm *vm; struct xe_vm *user_vm; enum xe_engine_class class; u32 logical_mask; char name[MAX_FENCE_NAME_LEN]; u16 width; u16 msix_vec; struct xe_hw_fence_irq *fence_irq; struct dma_fence *last_fence; #define EXEC_QUEUE_FLAG_KERNEL BIT(0); #define EXEC_QUEUE_FLAG_PERMANENT BIT(1); #define EXEC_QUEUE_FLAG_VM BIT(2); #define EXEC_QUEUE_FLAG_BIND_ENGINE_CHILD BIT(3); #define EXEC_QUEUE_FLAG_HIGH_PRIORITY BIT(4); #define EXEC_QUEUE_FLAG_LOW_LATENCY BIT(5); #define EXEC_QUEUE_FLAG_MIGRATE BIT(6); #define EXEC_QUEUE_FLAG_DISABLE_STATE_CACHE_PERF_FIX BIT(7); unsigned long flags; union { struct list_head multi_gt_list; struct list_head multi_gt_link; }; union { struct xe_execlist_exec_queue *execlist; struct xe_guc_exec_queue *guc; }; struct { struct xe_exec_queue_group *group; struct list_head link; enum xe_multi_queue_priority priority; spinlock_t lock; u8 pos; u8 valid:1; u8 is_primary:1; } multi_queue; struct { u32 timeslice_us; u32 preempt_timeout_us; u32 job_timeout_ms; enum xe_exec_queue_priority priority; } sched_props; struct { struct dma_fence *pfence; u64 context; u32 seqno; struct list_head link; bool suspended; } lr; #define XE_EXEC_QUEUE_TLB_INVAL_PRIMARY_GT 0; #define XE_EXEC_QUEUE_TLB_INVAL_MEDIA_GT 1; #define XE_EXEC_QUEUE_TLB_INVAL_COUNT (XE_EXEC_QUEUE_TLB_INVAL_MEDIA_GT + 1); struct { struct xe_dep_scheduler *dep_scheduler; struct dma_fence *last_fence; } tlb_inval[XE_EXEC_QUEUE_TLB_INVAL_COUNT]; struct list_head vm_exec_queue_link; struct { u8 type; struct list_head link; } pxp; struct drm_syncobj *ufence_syncobj; u64 ufence_timeline_value; void *replay_state; const struct xe_exec_queue_ops *ops; const struct xe_ring_ops *ring_ops; struct drm_sched_entity *entity; #define XE_MAX_JOB_COUNT_PER_EXEC_QUEUE 1000; atomic_t job_cnt; u64 tlb_flush_seqno; struct list_head hw_engine_group_link; spinlock_t lrc_lookup_lock; struct xe_lrc *lrc[]; };”…”�”}”hjH sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j; h³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KVhj' ubhÞ)�”}”(hŒ **Members**”h]”j )�”}”(hjY h]”hŒMembers”…”�”}”(hj[ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjW ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K¥hj' ubj¶)�”}”(hhh]”(j»)�”}”(hŒC``xef`` Back pointer to xe file if this is user created exec queue ”h]”(jÁ)�”}”(hŒ``xef``”h]”jÇ)�”}”(hjx h]”hŒxef”…”�”}”(hjz h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjv ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KWhjr ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ:Back pointer to xe file if this is user created exec queue”h]”hŒ:Back pointer to xe file if this is user created exec queue”…”�”}”(hj‘ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j� h´KWhjŽ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjr ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j� h´KWhjo ubj»)�”}”(hŒ2``gt`` GT structure this exec queue can submit to ”h]”(jÁ)�”}”(hŒ``gt``”h]”jÇ)�”}”(hj± h]”hŒgt”…”�”}”(hj³ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj¯ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KZhj« ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ*GT structure this exec queue can submit to”h]”hŒ*GT structure this exec queue can submit to”…”�”}”(hjÊ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÆ h´KZhjÇ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj« ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÆ h´KZhjo ubj»)�”}”(hŒ­``hwe`` A hardware of the same class. May (physical engine) or may not (virtual engine) be where jobs actual engine up running. Should never really be used for submissions. ”h]”(jÁ)�”}”(hŒ``hwe``”h]”jÇ)�”}”(hjê h]”hŒhwe”…”�”}”(hjì h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjè ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K_hjä ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ¤A hardware of the same class. May (physical engine) or may not (virtual engine) be where jobs actual engine up running. Should never really be used for submissions.”h]”hŒ¤A hardware of the same class. May (physical engine) or may not (virtual engine) be where jobs actual engine up running. Should never really be used for submissions.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K]hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjä ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÿ h´K_hjo ubj»)�”}”(hŒ*``refcount`` ref count of this exec queue ”h]”(jÁ)�”}”(hŒ ``refcount``”h]”jÇ)�”}”(hj$ h]”hŒrefcount”…”�”}”(hj& h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj" ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´Kbhj ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒref count of this exec queue”h]”hŒref count of this exec queue”…”�”}”(hj= h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j9 h´Kbhj: ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j9 h´Kbhjo ubj»)�”}”(hŒ.``vm`` VM (address space) for this exec queue ”h]”(jÁ)�”}”(hŒ``vm``”h]”jÇ)�”}”(hj] h]”hŒvm”…”�”}”(hj_ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj[ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KdhjW ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ&VM (address space) for this exec queue”h]”hŒ&VM (address space) for this exec queue”…”�”}”(hjv h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jr h´Kdhjs ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjW ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jr h´Kdhjo ubj»)�”}”(hŒK``user_vm`` User VM (address space) for this exec queue (bind queues only) ”h]”(jÁ)�”}”(hŒ ``user_vm``”h]”jÇ)�”}”(hj– h]”hŒuser_vm”…”�”}”(hj˜ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj” ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´Khhj� ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ>User VM (address space) for this exec queue (bind queues only)”h]”hŒ>User VM (address space) for this exec queue (bind queues only)”…”�”}”(hj¯ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´Kghj¬ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj� ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j« h´Khhjo ubj»)�”}”(hŒ#``class`` class of this exec queue ”h]”(jÁ)�”}”(hŒ ``class``”h]”jÇ)�”}”(hjÐ h]”hŒclass”…”�”}”(hjÒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÎ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KlhjÊ ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒclass of this exec queue”h]”hŒclass of this exec queue”…”�”}”(hjé h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jå h´Klhjæ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÊ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jå h´Klhjo ubj»)�”}”(hŒK``logical_mask`` logical mask of where job submitted to exec queue can run ”h]”(jÁ)�”}”(hŒ``logical_mask``”h]”jÇ)�”}”(hj h]”hŒ logical_mask”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KohjubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ9logical mask of where job submitted to exec queue can run”h]”hŒ9logical mask of where job submitted to exec queue can run”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jh´Kohjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jh´Kohjo ubj»)�”}”(hŒ!``name`` name of this exec queue ”h]”(jÁ)�”}”(hŒ``name``”h]”jÇ)�”}”(hjBh]”hŒname”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´Krhj<ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒname of this exec queue”h]”hŒname of this exec queue”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jWh´KrhjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jWh´Krhjo ubj»)�”}”(hŒB``width`` width (number BB submitted per exec) of this exec queue ”h]”(jÁ)�”}”(hŒ ``width``”h]”jÇ)�”}”(hj{h]”hŒwidth”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjyubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KthjuubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ7width (number BB submitted per exec) of this exec queue”h]”hŒ7width (number BB submitted per exec) of this exec queue”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j�h´Kthj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjuubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j�h´Kthjo ubj»)�”}”(hŒ:``msix_vec`` MSI-X vector (for platforms that support it) ”h]”(jÁ)�”}”(hŒ ``msix_vec``”h]”jÇ)�”}”(hj´h]”hŒmsix_vec”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´Kvhj®ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ,MSI-X vector (for platforms that support it)”h]”hŒ,MSI-X vector (for platforms that support it)”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÉh´KvhjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÉh´Kvhjo ubj»)�”}”(hŒ6``fence_irq`` fence IRQ used to signal job completion ”h]”(jÁ)�”}”(hŒ ``fence_irq``”h]”jÇ)�”}”(hjíh]”hŒ fence_irq”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjëubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KxhjçubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ'fence IRQ used to signal job completion”h]”hŒ'fence IRQ used to signal job completion”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jh´Kxhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjçubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jh´Kxhjo ubj»)�”}”(hŒ“``last_fence`` last fence on exec queue, protected by vm->lock in write mode if bind exec queue, protected by dma resv lock if non-bind exec queue ”•Bh]”(jÁ)�”}”(hŒ``last_fence``”h]”jÇ)�”}”(hj&h]”hŒ last_fence”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K~hj ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒƒlast fence on exec queue, protected by vm->lock in write mode if bind exec queue, protected by dma resv lock if non-bind exec queue”h]”hŒƒlast fence on exec queue, protected by vm->lock in write mode if bind exec queue, protected by dma resv lock if non-bind exec queue”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K|hj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j;h´K~hjo ubj»)�”}”(hŒP``flags`` flags for this exec queue, should statically setup aside from ban bit ”h]”(jÁ)�”}”(hŒ ``flags``”h]”jÇ)�”}”(hj`h]”hŒflags”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K•hjZubjÝ)�”}”(hhh]”hÞ)�”}”(hŒEflags for this exec queue, should statically setup aside from ban bit”h]”hŒEflags for this exec queue, should statically setup aside from ban bit”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K”hjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjZubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³juh´K•hjo ubj»)�”}”(hŒ``{unnamed_union}`` anonymous ”h]”(jÁ)�”}”(hŒ``{unnamed_union}``”h]”jÇ)�”}”(hjšh]”hŒ{unnamed_union}”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´Khj”ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ anonymous”h]”hŒ anonymous”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¯h´Khj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j¯h´Khjo ubj»)�”}”(hŒ<``multi_gt_list`` list head for VM bind engines if multi-GT ”h]”(jÁ)�”}”(hŒ``multi_gt_list``”h]”jÇ)�”}”(hjÓh]”hŒ multi_gt_list”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KšhjÍubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ)list head for VM bind engines if multi-GT”h]”hŒ)list head for VM bind engines if multi-GT”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jèh´Kšhjéubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÍubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jèh´Kšhjo ubj»)�”}”(hŒ7``multi_gt_link`` link for VM bind engines if multi-GT ”h]”(jÁ)�”}”(hŒ``multi_gt_link``”h]”jÇ)�”}”(hj h]”hŒ multi_gt_link”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KœhjubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ$link for VM bind engines if multi-GT”h]”hŒ$link for VM bind engines if multi-GT”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j!h´Kœhj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j!h´Kœhjo ubj»)�”}”(hŒ``{unnamed_union}`` anonymous ”h]”(jÁ)�”}”(hŒ``{unnamed_union}``”h]”jÇ)�”}”(hjEh]”hŒ{unnamed_union}”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjCubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´Khj?ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ anonymous”h]”hŒ anonymous”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jZh´Khj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jZh´Khjo ubj»)�”}”(hŒ<``execlist`` execlist backend specific state for exec queue ”h]”(jÁ)�”}”(hŒ ``execlist``”h]”jÇ)�”}”(hj~h]”hŒexeclist”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj|ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K¡hjxubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ.execlist backend specific state for exec queue”h]”hŒ.execlist backend specific state for exec queue”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j“h´K¡hj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjxubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j“h´K¡hjo ubj»)�”}”(hŒ2``guc`` GuC backend specific state for exec queue ”h]”(jÁ)�”}”(hŒ``guc``”h]”jÇ)�”}”(hj·h]”hŒguc”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjµubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K£hj±ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ)GuC backend specific state for exec queue”h]”hŒ)GuC backend specific state for exec queue”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÌh´K£hjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj±ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÌh´K£hjo ubj»)�”}”(hŒ(``multi_queue`` Multi queue information ”h]”(jÁ)�”}”(hŒ``multi_queue``”h]”jÇ)�”}”(hjðh]”hŒ multi_queue”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjîubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K§hjêubjÝ)�”}”(hhh]”hÞ)�”}”(hŒMulti queue information”h]”hŒMulti queue information”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jh´K§hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjêubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jh´K§hjo ubj»)�”}”(hŒ.``multi_queue.group`` Queue group information ”h]”(jÁ)�”}”(hŒ``multi_queue.group``”h]”jÇ)�”}”(hj)h]”hŒmulti_queue.group”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K©hj#ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒQueue group information”h]”hŒQueue group information”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j>h´K©hj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j>h´K©hjo ubj»)�”}”(hŒ=``multi_queue.link`` Link into group's secondary queues list ”h]”(jÁ)�”}”(hŒ``multi_queue.link``”h]”jÇ)�”}”(hjbh]”hŒmulti_queue.link”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K«hj\ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ'Link into group's secondary queues list”h]”hŒ)Link into group’s secondary queues list”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jwh´K«hjxubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jwh´K«hjo ubj»)�”}”(hŒo``multi_queue.priority`` Queue priority within the multi-queue group. It is protected by **multi_queue.lock**. ”h]”(jÁ)�”}”(hŒ``multi_queue.priority``”h]”jÇ)�”}”(hj›h]”hŒmulti_queue.priority”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K¯hj•ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒUQueue priority within the multi-queue group. It is protected by **multi_queue.lock**.”h]”(hŒ@Queue priority within the multi-queue group. It is protected by ”…”�”}”(hj´h²hh³Nh´Nubj )�”}”(hŒ**multi_queue.lock**”h]”hŒmulti_queue.lock”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj´ubhŒ.”…”�”}”(hj´h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K®hj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j°h´K¯hjo ubj»)�”}”(hŒ9``multi_queue.lock`` Lock for protecting certain members ”h]”(jÁ)�”}”(hŒ``multi_queue.lock``”h]”jÇ)�”}”(hjçh]”hŒmulti_queue.lock”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjåubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K²hjáubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ#Lock for protecting certain members”h]”hŒ#Lock for protecting certain members”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jüh´K²hjýubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjáubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jüh´K²hjo ubj»)�”}”(hŒC``multi_queue.pos`` Position of queue within the multi-queue group ”h]”(jÁ)�”}”(hŒ``multi_queue.pos``”h]”jÇ)�”}”(hj h]”hŒmulti_queue.pos”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K´hjubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ.Position of queue within the multi-queue group”h]”hŒ.Position of queue within the multi-queue group”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j5h´K´hj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j5h´K´hjo ubj»)�”}”(hŒ;``multi_queue.valid`` Queue belongs to a multi queue group ”h]”(jÁ)�”}”(hŒ``multi_queue.valid``”h]”jÇ)�”}”(hjYh]”hŒmulti_queue.valid”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K¶hjSubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ$Queue belongs to a multi queue group”h]”hŒ$Queue belongs to a multi queue group”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jnh´K¶hjoubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjSubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jnh´K¶hjo ubj»)�”}”(hŒ>``multi_queue.is_primary`` Is primary queue (Q0) of the group ”h]”(jÁ)�”}”(hŒ``multi_queue.is_primary``”h]”jÇ)�”}”(hj’h]”hŒmulti_queue.is_primary”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K¸hjŒubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ"Is primary queue (Q0) of the group”h]”hŒ"Is primary queue (Q0) of the group”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j§h´K¸hj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjŒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j§h´K¸hjo ubj»)�”}”(hŒ&``sched_props`` scheduling properties ”h]”(jÁ)�”}”(hŒ``sched_props``”h]”jÇ)�”}”(hjËh]”hŒ sched_props”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K¼hjÅubjÝ)�”}”(hhh]”hÞ)�”}”(hŒscheduling properties”h]”hŒscheduling properties”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jàh´K¼hjáubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÅubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jàh´K¼hjo ubj»)�”}”(hŒ?``sched_props.timeslice_us`` timeslice period in micro-seconds ”h]”(jÁ)�”}”(hŒ``sched_props.timeslice_us``”h]”jÇ)�”}”(hjh]”hŒsched_props.timeslice_us”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K¾hjþubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ!timeslice period in micro-seconds”h]”hŒ!timeslice period in micro-seconds”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jh´K¾hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjþubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jh´K¾hjo ubj»)�”}”(hŒG``sched_props.preempt_timeout_us`` preemption timeout in micro-seconds ”h]”(jÁ)�”}”(hŒ"``sched_props.preempt_timeout_us``”h]”jÇ)�”}”(hj=h]”hŒsched_props.preempt_timeout_us”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KÀhj7ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ#preemption timeout in micro-seconds”h]”hŒ#preemption timeout in micro-seconds”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jRh´KÀhjSubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jRh´KÀhjo ubj»)�”}”(hŒ;``sched_props.job_timeout_ms`` job timeout in milliseconds ”h]”(jÁ)�”}”(hŒ``sched_props.job_timeout_ms``”h]”jÇ)�”}”(hjvh]”hŒsched_props.job_timeout_ms”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjtubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KÂhjpubjÝ)�”}”(hhh]”hÞ)�”}”(hŒjob timeout in milliseconds”h]”hŒjob timeout in milliseconds”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j‹h´KÂhjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjpubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j‹h´KÂhjo ubj»)�”}”(hŒ5``sched_props.priority`` priority of this exec queue ”h]”(jÁ)�”}”(hŒ``sched_props.priority``”h]”jÇ)�”}”(hj¯h]”hŒsched_props.priority”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KÄhj©ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒpriority of this exec queue”h]”hŒpriority of this exec queue”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÄh´KÄhjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÄh´KÄhjo ubj»)�”}”(hŒ%``lr`` long-running exec queue state ”h]”(jÁ)�”}”(hŒ``lr``”h]”jÇ)�”}”(hjèh]”hŒlr”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjæubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KÈhjâubjÝ)�”}”(hhh]”hÞ)�”}”(hŒlong-running exec queue state”h]”hŒlong-running exec queue state”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jýh´KÈhjþubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjâubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jýh´KÈhjo ubj»)�”}”(hŒ``lr.pfence`` preemption fence ”h]”(jÁ)�”}”(hŒ ``lr.pfence``”h]”jÇ)�”}”(hj!h]”hŒ lr.pfence”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KÊhjubjÝ)�”}”(hhh]”hÞ)�”}”(hŒpreemption fence”h]”hŒpreemption fence”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j6h´KÊhj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j6h´KÊhjo ubj»)�”}”(hŒ(``lr.context`` preemption fence context ”h]”(jÁ)�”}”(hŒ``lr.context``”h]”jÇ)�”}”(hjZh]”hŒ lr.context”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KÌhjTubjÝ)�”}”(hhh]”hÞ)�”}”(hŒpreemption fence context”h]”hŒpreemption fence context”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³joh´KÌhjpubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjTubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³joh´KÌhjo ubj»)�”}”(hŒ$``lr.seqno`` preemption fence seqno ”h]”(jÁ)�”}”(hŒ ``lr.seqno``”h]”jÇ)�”}”(hj“h]”hŒlr.seqno”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KÎhj�ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒpreemption fence seqno”h]”hŒpreemption fence seqno”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¨h´KÎhj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j¨h´KÎhjo ubj»)�”}”(hŒ/``lr.link`` link into VM's list of exec queues ”h]”(jÁ)�”}”(hŒ ``lr.link``”h]”jÇ)�”}”(hjÌh]”hŒlr.link”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KÐhjÆubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ"link into VM's list of exec queues”h]”hŒ$link into VM’s list of exec queues”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jáh´KÐhjâubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÆubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jáh´KÐhjo ubj»)�”}”(hXõ``lr.suspended`` Tracks whether the consumer-issued suspend() succeeded and a matching resume() is still owed. suspend() can fail (e.g. killed/banned/wedged), leaving the queue un-suspended, so consumers must only resume() queues that were actually suspended. Set by the suspend caller on success and cleared by the resume caller. A queue is only ever suspended by a single consumer at a time (preempt-fence mode and hw engine group fault mode are mutually exclusive), so a single flag is sufficient. ”h]”(jÁ)�”}”(hŒ``lr.suspended``”h]”jÇ)�”}”(hjh]”hŒ lr.suspended”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KÛhjÿubjÝ)�”}”(hhh]”hÞ)�”}”(hXãTracks whether the consumer-issued suspend() succeeded and a matching resume() is still owed. suspend() can fail (e.g. killed/banned/wedged), leaving the queue un-suspended, so consumers must only resume() queues that were actually suspended. Set by the suspend caller on success and cleared by the resume caller. A queue is only ever suspended by a single consumer at a time (preempt-fence mode and hw engine group fault mode are mutually exclusive), so a single flag is sufficient.”h]”hXãTracks whether the consumer-issued suspend() succeeded and a matching resume() is still owed. suspend() can fail (e.g. killed/banned/wedged), leaving the queue un-suspended, so consumers must only resume() queues that were actually suspended. Set by the suspend caller on success and cleared by the resume caller. A queue is only ever suspended by a single consumer at a time (preempt-fence mode and hw engine group fault mode are mutually exclusive), so a single flag is sufficient.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KÓhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÿubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jh´KÛhjo ubj»)�”}”(hŒ1``tlb_inval`` TLB invalidations exec queue state ”h]”(jÁ)�”}”(hŒ ``tlb_inval``”h]”jÇ)�”}”(hj?h]”hŒ tlb_inval”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´Kähj9ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ"TLB invalidations exec queue state”h]”hŒ"TLB invalidations exec queue state”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jTh´KähjUubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jTh´Kähjo ubj»)�”}”(hŒF``tlb_inval.dep_scheduler`` The TLB invalidation dependency scheduler ”h]”(jÁ)�”}”(hŒ``tlb_inval.dep_scheduler``”h]”jÇ)�”}”(hjxh]”hŒtlb_inval.dep_scheduler”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KèhjrubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ)The TLB invalidation dependency scheduler”h]”hŒ)The TLB invalidation dependency scheduler”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KçhjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjrubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j�h´Kèhjo ubj»)�”}”(hŒ^``tlb_inval.last_fence`` last fence for tlb invalidation, protected by vm->lock in write mode ”h]”(jÁ)�”}”(hŒ``tlb_inval.last_fence``”h]”jÇ)�”}”(hj²h]”hŒtlb_inval.last_fence”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´Kíhj¬ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒDlast fence for tlb invalidation, protected by vm->lock in write mode”h]”hŒDlast fence for tlb invalidation, protected by vm->lock in write mode”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KìhjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÇh´Kíhjo ubj»)�”}”(hŒS``vm_exec_queue_link`` Link to track exec queue within a VM's list of exec queues. ”h]”(jÁ)�”}”(hŒ``vm_exec_queue_link``”h]”jÇ)�”}”(hjìh]”hŒvm_exec_queue_link”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjêubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KòhjæubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ;Link to track exec queue within a VM's list of exec queues.”h]”hŒ=Link to track exec queue within a VM’s list of exec queues.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jh´Kòhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjæubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jh´Kòhjo ubj»)�”}”(hŒ``pxp`` PXP info tracking ”h]”(jÁ)�”}”(hŒ``pxp``”h]”jÇ)�”}”(hj%h]”hŒpxp”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KõhjubjÝ)�”}”(hhh]”hÞ)�”}”(hŒPXP info tracking”h]”hŒPXP info tracking”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j:h´Kõhj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j:h´Kõhjo ubj»)�”}”(hŒ1``pxp.type`` PXP session type used by this queue ”h]”(jÁ)�”}”(hŒ ``pxp.type``”h]”jÇ)�”}”(hj^h]”hŒpxp.type”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´K÷hjXubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ#PXP session type used by this queue”h]”hŒ#PXP session type used by this queue”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jsh´K÷hjtubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jsh´K÷hjo ubj»)�”}”(hŒ3``pxp.link`` link into the list of PXP exec queues ”h]”(jÁ)�”}”(hŒ ``pxp.link``”h]”jÇ)�”}”(hj—h]”hŒpxp.link”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´Kùhj‘ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ%link into the list of PXP exec queues”h]”hŒ%link into the list of PXP exec queues”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¬h´Kùhj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j¬h´Kùhjo ubj»)�”}”(hŒ&``ufence_syncobj`` User fence syncobj ”h]”(jÁ)�”}”(hŒ``ufence_syncobj``”h]”jÇ)�”}”(hjÐh]”hŒufence_syncobj”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KýhjÊubjÝ)�”}”(hhh]”hÞ)�”}”(hŒUser fence syncobj”h]”hŒUser fence syncobj”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jåh´Kýhjæubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÊubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jåh´Kýhjo ubj»)�”}”(hŒ4``ufence_timeline_value`` User fence timeline value ”h]”(jÁ)�”}”(hŒ``ufence_timeline_value``”h]”jÇ)�”}”(hj h]”hŒufence_timeline_value”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´MhjubjÝ)�”}”(hhh]”hÞ)�”}”(hŒUser fence timeline value”h]”hŒUser fence timeline value”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jh´Mhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jh´Mhjo ubj»)�”}”(hŒ'``replay_state`` GPU hang replay state ”h]”(jÁ)�”}”(hŒ``replay_state``”h]”jÇ)�”}”(hjBh]”hŒ replay_state”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´Mhj<ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒGPU hang replay state”h]”hŒGPU hang replay state”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jWh´MhjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jWh´Mhjo ubj»)�”}”(hŒ1``ops`` submission backend exec queue operations ”h]”(jÁ)�”}”(hŒ``ops``”h]”jÇ)�”}”(hj{h]”hŒops”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjyubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´MhjuubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ(submission backend exec queue operations”h]”hŒ(submission backend exec queue operations”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j�h´Mhj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjuubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j�h´Mhjo ubj»)�”}”(hŒ1``ring_ops`` ring operations for this exec queue ”h]”(jÁ)�”}”(hŒ ``ring_ops``”h]”jÇ)�”}”(hj´h]”hŒring_ops”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M hj®ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ#ring operations for this exec queue”h]”hŒ#ring operations for this exec queue”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÉh´M hjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÉh´M hjo ubj»)�”}”(hŒF``entity`` DRM sched entity for this exec queue (1 to 1 relationship) ”h]”(jÁ)�”}”(hŒ ``entity``”h]”jÇ)�”}”(hjíh]”hŒentity”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjëubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M hjçubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ:DRM sched entity for this exec queue (1 to 1 relationship)”h]”hŒ:DRM sched entity for this exec queue (1 to 1 relationship)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jh´M hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjçubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jh´M hjo ubj»)�”}”(hŒ2``job_cnt`` number of drm jobs in this exec queue ”h]”(jÁ)�”}”(hŒ ``job_cnt``”h]”jÇ)�”}”(hj&h]”hŒjob_cnt”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´Mhj ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ%number of drm jobs in this exec queue”h]”hŒ%number of drm jobs in this exec queue”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j;h´Mhj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j;h´Mhjo ubj»)�”}”(hŒ{``tlb_flush_seqno`` The seqno of the last rebind tlb flush performed Protected by **vm**'s resv. Unused if **vm** == NULL. ”h]”(jÁ)�”}”(hŒ``tlb_flush_seqno``”h]”jÇ)�”}”(hj_h]”hŒtlb_flush_seqno”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´MhjYubjÝ)�”}”(hhh]”hÞ)�”}”(hŒfThe seqno of the last rebind tlb flush performed Protected by **vm**'s resv. Unused if **vm** == NULL.”h]”(hŒ>The seqno of the last rebind tlb flush performed Protected by ”…”�”}”(hjxh²hh³Nh´Nubj )�”}”(hŒ**vm**”h]”hŒvm”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjxubhŒ’s resv. Unused if ”…”�”}”(hjxh²hh³Nh´Nubj )�”}”(hŒ**vm**”h]”hŒvm”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjxubhŒ == NULL.”…”�”}”(hjxh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´Mhjuubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjYubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jth´Mhjo ubj»)�”}”(hŒK``hw_engine_group_link`` link into exec queues in the same hw engine group ”h]”(jÁ)�”}”(hŒ``hw_engine_group_link``”h]”jÇ)�”}”(hj½h]”hŒhw_engine_group_link”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj»ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´Mhj·ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ1link into exec queues in the same hw engine group”h]”hŒ1link into exec queues in the same hw engine group”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÒh´MhjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj·ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÒh´Mhjo ubj»)�”}”(hŒ|``lrc_lookup_lock`` Lock for protecting lrc array access. Only used when running in parallel to queue creation is possible. ”h]”(jÁ)�”}”(hŒ``lrc_lookup_lock``”h]”jÇ)�”}”(hjöh]”hŒlrc_lookup_lock”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjôubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´MhjðubjÝ)�”}”(hhh]”hÞ)�”}”(hŒgLock for protecting lrc array access. Only used when running in parallel to queue creation is possible.”h]”hŒgLock for protecting lrc array access. Only used when running in parallel to queue creation is possible.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´Mhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjðubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j h´Mhjo ubj»)�”}”(hŒ0``lrc`` logical ring context for this exec queue”h]”(jÁ)�”}”(hŒ``lrc``”h]”jÇ)�”}”(hj0h]”hŒlrc”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´Mhj*ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ(logical ring context for this exec queue”h]”hŒ(logical ring context for this exec queue”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´MhjFubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jEh´Mhjo ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhj' ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´NubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hjsh]”hŒ Description”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjqubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M!hjåh²hubhÞ)�”}”(hŒ]Contains all state necessary for submissions. Can either be a user object or a kernel object.”h]”hŒ]Contains all state necessary for submissions. Can either be a user object or a kernel object.”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KQhjåh²hubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒxe_exec_queue_ops (C struct)”Œc.xe_exec_queue_ops”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒxe_exec_queue_ops”h]”j)�”}”(hŒstruct xe_exec_queue_ops”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj­h²hh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´KWubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj­h²hh³j¾h´KWubj<)�”}”(hŒxe_exec_queue_ops”h]”jB)�”}”(hj«h]”hŒxe_exec_queue_ops”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjÍubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hj­h²hh³j¾h´KWubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahj©h²hh³j¾h´KWubah}”(h]”j¤ah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j¾h´KWhj¦h²hubjn)�”}”(hhh]”hÞ)�”}”(hŒ(Submission backend exec queue operations”h]”hŒ(Submission backend exec queue operations”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M"hjðh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj¦h²hh³j¾h´KWubeh}”(h]”h ]”(jŠŒstruct”eh"]”h$]”h&]”j�jŠj�j j‘j j’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hX³ **Definition**:: struct xe_exec_queue_ops { int (*init)(struct xe_exec_queue *q); void (*kill)(struct xe_exec_queue *q); void (*fini)(struct xe_exec_queue *q); void (*destroy)(struct xe_exec_queue *q); int (*set_priority)(struct xe_exec_queue *q, enum xe_exec_queue_priority priority); int (*set_timeslice)(struct xe_exec_queue *q, u32 timeslice_us); int (*set_preempt_timeout)(struct xe_exec_queue *q, u32 preempt_timeout_us); int (*set_multi_queue_priority)(struct xe_exec_queue *q, enum xe_multi_queue_priority priority); int (*suspend)(struct xe_exec_queue *q); int (*suspend_wait)(struct xe_exec_queue *q); int (*suspend_wait_blocking)(struct xe_exec_queue *q); void (*resume)(struct xe_exec_queue *q); bool (*reset_status)(struct xe_exec_queue *q); }; **Members** ``init`` Initialize exec queue for submission backend ``kill`` Kill inflight submissions for backend ``fini`` Undoes the init() for submission backend ``destroy`` Destroy exec queue for submission backend. The backend function must call xe_exec_queue_fini() (which will in turn call the fini() backend function) to ensure the queue is properly cleaned up. ``set_priority`` Set priority for exec queue ``set_timeslice`` Set timeslice for exec queue ``set_preempt_timeout`` Set preemption timeout for exec queue ``set_multi_queue_priority`` Set multi queue priority ``suspend`` Suspend exec queue from executing, allowed to be called multiple times in a row before resume with the caveat that suspend_wait returns before calling suspend again. ``suspend_wait`` Wait for an exec queue to suspend executing, should be call after suspend. In dma-fencing path thus must return within a reasonable amount of time. -ETIME return shall indicate an error waiting for suspend resulting in associated VM getting killed. -EAGAIN return indicates the wait should be tried again, if the wait is within a work item, the work item should be requeued as deadlock avoidance mechanism. ``suspend_wait_blocking`` Like **suspend_wait**, but waits uninterruptibly (does not abort on the calling task's signals). For cleanup/undo paths that must complete a suspend on behalf of a queue that may belong to a different process than the caller: a signal to the caller must not abandon the wait, which would leave the other process's queue suspended forever (cross-process DoS). A timeout bans like suspend_wait. ``resume`` Resume exec queue execution, exec queue must be in a suspended state and dma fence returned from most recent suspend call must be signalled when this function is called. ``reset_status`` check exec queue reset status”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(j )�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjubhŒ:”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M&hjubj< )�”}”(hXstruct xe_exec_queue_ops { int (*init)(struct xe_exec_queue *q); void (*kill)(struct xe_exec_queue *q); void (*fini)(struct xe_exec_queue *q); void (*destroy)(struct xe_exec_queue *q); int (*set_priority)(struct xe_exec_queue *q, enum xe_exec_queue_priority priority); int (*set_timeslice)(struct xe_exec_queue *q, u32 timeslice_us); int (*set_preempt_timeout)(struct xe_exec_queue *q, u32 preempt_timeout_us); int (*set_multi_queue_priority)(struct xe_exec_queue *q, enum xe_multi_queue_priority priority); int (*suspend)(struct xe_exec_queue *q); int (*suspend_wait)(struct xe_exec_queue *q); int (*suspend_wait_blocking)(struct xe_exec_queue *q); void (*resume)(struct xe_exec_queue *q); bool (*reset_status)(struct xe_exec_queue *q); };”h]”hXstruct xe_exec_queue_ops { int (*init)(struct xe_exec_queue *q); void (*kill)(struct xe_exec_queue *q); void (*fini)(struct xe_exec_queue *q); void (*destroy)(struct xe_exec_queue *q); int (*set_priority)(struct xe_exec_queue *q, enum xe_exec_queue_priority priority); int (*set_timeslice)(struct xe_exec_queue *q, u32 timeslice_us); int (*set_preempt_timeout)(struct xe_exec_queue *q, u32 preempt_timeout_us); int (*set_multi_queue_priority)(struct xe_exec_queue *q, enum xe_multi_queue_priority priority); int (*suspend)(struct xe_exec_queue *q); int (*suspend_wait)(struct xe_exec_queue *q); int (*suspend_wait_blocking)(struct xe_exec_queue *q); void (*resume)(struct xe_exec_queue *q); bool (*reset_status)(struct xe_exec_queue *q); };”…”�”}”hj0sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j; h³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M(hjubhÞ)�”}”(hŒ **Members**”h]”j )�”}”(hjAh]”hŒMembers”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M8hjubj¶)�”}”(hhh]”(j»)�”}”(hŒ6``init`` Initialize exec queue for submission backend ”h]”(jÁ)�”}”(hŒ``init``”h]”jÇ)�”}”(hj`h]”hŒinit”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M&hjZubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ,Initialize exec queue for submission backend”h]”hŒ,Initialize exec queue for submission backend”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³juh´M&hjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjZubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³juh´M&hjWubj»)�”}”(hŒ/``kill`` Kill inflight submissions for backend ”h]”(jÁ)�”}”(hŒ``kill``”h]”jÇ)�”}”(hj™h]”hŒkill”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M(hj“ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ%Kill inflight submissions for backend”h]”hŒ%Kill inflight submissions for backend”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j®h´M(hj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j®h´M(hjWubj»)�”}”(hŒ2``fini`` Undoes the init() for submission backend ”h]”(jÁ)�”}”(hŒ``fini``”h]”jÇ)�”}”(hjÒh]”hŒfini”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÐubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M*hjÌubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ(Undoes the init() for submission backend”h]”hŒ(Undoes the init() for submission backend”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jçh´M*hjèubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÌubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jçh´M*hjWubj»)�”}”(hŒÍ``destroy`` Destroy exec queue for submission backend. The backend function must call xe_exec_queue_fini() (which will in turn call the fini() backend function) to ensure the queue is properly cleaned up. ”h]”(jÁ)�”}”(hŒ ``destroy``”h]”jÇ)�”}”(hj h]”hŒdestroy”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M/hjubjÝ)�”}”(hhh]”hÞ)�”}”(hŒÀDestroy exec queue for submission backend. The backend function must call xe_exec_queue_fini() (which will in turn call the fini() backend function) to ensure the queue is properly cleaned up.”h]”hŒÀDestroy exec queue for submission backend. The backend function must call xe_exec_queue_fini() (which will in turn call the fini() backend function) to ensure the queue is properly cleaned up.”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M-hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j h´M/hjWubj»)�”}”(hŒ-``set_priority`` Set priority for exec queue ”h]”(jÁ)�”}”(hŒ``set_priority``”h]”jÇ)�”}”(hjEh]”hŒ set_priority”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjCubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M2hj?ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒSet priority for exec queue”h]”hŒSet priority for exec queue”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jZh´M2hj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jZh´M2hjWubj»)�”}”(hŒ/``set_timeslice`` Set timeslice for exec queue ”h]”(jÁ)�”}”(hŒ``set_timeslice``”h]”jÇ)�”}”(hj~h]”hŒ set_timeslice”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj|ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M5hjxubjÝ)�”}”(hhh]”hÞ)�”}”(hŒSet timeslice for exec queue”h]”hŒSet timeslice for exec queue”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j“h´M5hj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjxubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j“h´M5hjWubj»)�”}”(hŒ>``set_preempt_timeout`` Set preemption timeout for exec queue ”h]”(jÁ)�”}”(hŒ``set_preempt_timeout``”h]”jÇ)�”}”(hj·h]”hŒset_preempt_timeout”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjµubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M7hj±ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ%Set preemption timeout for exec queue”h]”hŒ%Set preemption timeout for exec queue”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÌh´M7hjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj±ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÌh´M7hjWubj»)�”}”(hŒ6``set_multi_queue_priority`` Set multi queue priority ”h]”(jÁ)�”}”(hŒ``set_multi_queue_priority``”h]”jÇ)�”}”(hjðh]”hŒset_multi_queue_priority”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjîubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M9hjêubjÝ)�”}”(hhh]”hÞ)�”}”(hŒSet multi queue priority”h]”hŒSet multi queue priority”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jh´M9hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjêubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jh´M9hjWubj»)�”}”(hŒ²``suspend`` Suspend exec queue from executing, allowed to be called multiple times in a row before resume with the caveat that suspend_wait returns before calling suspend again. ”h]”(jÁ)�”}”(hŒ ``suspend``”h]”jÇ)�”}”(hj)h]”hŒsuspend”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M?hj#ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ¥Suspend exec queue from executing, allowed to be called multiple times in a row before resume with the caveat that suspend_wait returns before calling suspend again.”h]”hŒ¥Suspend exec queue from executing, allowed to be called multiple times in a row before resume with the caveat that suspend_wait returns before calling suspend again.”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M=hj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j>h´M?hjWubj»)�”}”(hX¨``suspend_wait`` Wait for an exec queue to suspend executing, should be call after suspend. In dma-fencing path thus must return within a reasonable amount of time. -ETIME return shall indicate an error waiting for suspend resulting in associated VM getting killed. -EAGAIN return indicates the wait should be tried again, if the wait is within a work item, the work item should be requeued as deadlock avoidance mechanism. ”h]”(jÁ)�”}”(hŒ``suspend_wait``”h]”jÇ)�”}”(hjch]”hŒ suspend_wait”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjaubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´MIhj]ubjÝ)�”}”(hhh]”hÞ)�”}”(hX–Wait for an exec queue to suspend executing, should be call after suspend. In dma-fencing path thus must return within a reasonable amount of time. -ETIME return shall indicate an error waiting for suspend resulting in associated VM getting killed. -EAGAIN return indicates the wait should be tried again, if the wait is within a work item, the work item should be requeued as deadlock avoidance mechanism.”h]”hX–Wait for an exec queue to suspend executing, should be call after suspend. In dma-fencing path thus must return within a reasonable amount of time. -ETIME return shall indicate an error waiting for suspend resulting in associated VM getting killed. -EAGAIN return indicates the wait should be tried again, if the wait is within a work item, the work item should be requeued as deadlock avoidance mechanism.”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´MChjyubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj]ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jxh´MIhjWubj»)�”}”(hX£``suspend_wait_blocking`` Like **suspend_wait**, but waits uninterruptibly (does not abort on the calling task's signals). For cleanup/undo paths that must complete a suspend on behalf of a queue that may belong to a different process than the caller: a signal to the caller must not abandon the wait, which would leave the other process's queue suspended forever (cross-process DoS). A timeout bans like suspend_wait. ”h]”(jÁ)�”}”(hŒ``suspend_wait_blocking``”h]”jÇ)�”}”(hj�h]”hŒsuspend_wait_blocking”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´MRhj—ubjÝ)�”}”(hhh]”hÞ)�”}”(hXˆLike **suspend_wait**, but waits uninterruptibly (does not abort on the calling task's signals). For cleanup/undo paths that must complete a suspend on behalf of a queue that may belong to a different process than the caller: a signal to the caller must not abandon the wait, which would leave the other process's queue suspended forever (cross-process DoS). A timeout bans like suspend_wait.”h]”(hŒLike ”…”�”}”(hj¶h²hh³Nh´Nubj )�”}”(hŒ**suspend_wait**”h]”hŒ suspend_wait”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj¶ubhXw, but waits uninterruptibly (does not abort on the calling task’s signals). For cleanup/undo paths that must complete a suspend on behalf of a queue that may belong to a different process than the caller: a signal to the caller must not abandon the wait, which would leave the other process’s queue suspended forever (cross-process DoS). A timeout bans like suspend_wait.”…”�”}”(hj¶h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´MMhj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j²h´MRhjWubj»)�”}”(hŒµ``resume`` Resume exec queue execution, exec queue must be in a suspended state and dma fence returned from most recent suspend call must be signalled when this function is called. ”h]”(jÁ)�”}”(hŒ ``resume``”h]”jÇ)�”}”(hjéh]”hŒresume”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjçubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´MXhjãubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ©Resume exec queue execution, exec queue must be in a suspended state and dma fence returned from most recent suspend call must be signalled when this function is called.”h]”hŒ©Resume exec queue execution, exec queue must be in a suspended state and dma fence returned from most recent suspend call must be signalled when this function is called.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´MVhjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjãubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jþh´MXhjWubj»)�”}”(hŒ.``reset_status`` check exec queue reset status”h]”(jÁ)�”}”(hŒ``reset_status``”h]”jÇ)�”}”(hj#h]”hŒ reset_status”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´MZhjubjÝ)�”}”(hhh]”hÞ)�”}”(hŒcheck exec queue reset status”h]”hŒcheck exec queue reset status”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:27: ./drivers/gpu/drm/xe/xe_exec_queue_types.h”h´M[hj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j8h´MZhjWubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ)xe_exec_queue_is_multi_queue (C function)”Œc.xe_exec_queue_is_multi_queue”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒ;bool xe_exec_queue_is_multi_queue (struct xe_exec_queue *q)”h]”j)�”}”(hŒ:bool xe_exec_queue_is_multi_queue(struct xe_exec_queue *q)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒbool”h]”hŒbool”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1j}hjyh²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´KGubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjyh²hh³jŽh´KGubj<)�”}”(hŒxe_exec_queue_is_multi_queue”h]”jB)�”}”(hŒxe_exec_queue_is_multi_queue”h]”hŒxe_exec_queue_is_multi_queue”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj�ubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hjyh²hh³jŽh´KGubhŒdesc_parameterlist”“”)�”}”(hŒ(struct xe_exec_queue *q)”h]”hŒdesc_parameter”“”)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj½ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj½ubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjÜubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”Œ identifier”Œ reftarget”jáŒmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”júŒ ASTIdentifier”“”)�”}”jõj£sbŒc.xe_exec_queue_is_multi_queue”†”asbuh1hhj½ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj½ubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1jhj½ubjB)�”}”(hŒq”h]”hŒq”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj½ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj·ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhjyh²hh³jŽh´KGubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahjuh²hh³jŽh´KGubah}”(h]”jpah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³jŽh´KGhjrh²hubjn)�”}”(hhh]”hÞ)�”}”(hŒ/Whether an exec_queue is part of a queue group.”h]”hŒ/Whether an exec_queue is part of a queue group.”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´KGhjMh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjrh²hh³jŽh´KGubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jhj‘jhj’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hŒ‹**Parameters** ``struct xe_exec_queue *q`` The exec_queue **Return** True if the exec_queue is part of a queue group, false otherwise.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hjrh]”hŒ Parameters”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjpubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´KKhjlubj¶)�”}”(hhh]”j»)�”}”(hŒ+``struct xe_exec_queue *q`` The exec_queue ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hj‘h]”hŒstruct xe_exec_queue *q”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´KHhj‹ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒThe exec_queue”h]”hŒThe exec_queue”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¦h´KHhj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j¦h´KHhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjlubhÞ)�”}”(hŒ **Return**”h]”j )�”}”(hjÌh]”hŒReturn”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´KJhjlubhÞ)�”}”(hŒATrue if the exec_queue is part of a queue group, false otherwise.”h]”hŒATrue if the exec_queue is part of a queue group, false otherwise.”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´KJhjlubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ1xe_exec_queue_is_multi_queue_primary (C function)”Œ&c.xe_exec_queue_is_multi_queue_primary”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒCbool xe_exec_queue_is_multi_queue_primary (struct xe_exec_queue *q)”h]”j)�”}”(hŒBbool xe_exec_queue_is_multi_queue_primary(struct xe_exec_queue *q)”h]”(j~)�”}”(hj�h]”hŒbool”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hj h²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´KRubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj h²hh³jh´KRubj<)�”}”(hŒ$xe_exec_queue_is_multi_queue_primary”h]”jB)�”}”(hŒ$xe_exec_queue_is_multi_queue_primary”h]”hŒ$xe_exec_queue_is_multi_queue_primary”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj-ubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hj h²hh³jh´KRubj¶)�”}”(hŒ(struct xe_exec_queue *q)”h]”j¼)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjIubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjIubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjhubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jmŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõj3sbŒ&c.xe_exec_queue_is_multi_queue_primary”†”asbuh1hhjIubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjIubj)�”}”(hjh]”hŒ*”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjIubjB)�”}”(hj(h]”hŒq”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjIubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjEubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhj h²hh³jh´KRubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahj h²hh³jh´KRubah}”(h]”jah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³jh´KRhjh²hubjn)�”}”(hhh]”hÞ)�”}”(hŒ>Whether an exec_queue is primary queue of a multi queue group.”h]”hŒ>Whether an exec_queue is primary queue of a multi queue group.”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´KRhjÌh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjh²hh³jh´KRubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jçj‘jçj’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hŒ‹**Parameters** ``struct xe_exec_queue *q`` The exec_queue **Return** True if **q** is primary queue of a queue group, false otherwise.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hjñh]”hŒ Parameters”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjïubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´KVhjëubj¶)�”}”(hhh]”j»)�”}”(hŒ+``struct xe_exec_queue *q`` The exec_queue ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hj h]”hŒstruct xe_exec_queue *q”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´KThj ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒThe exec_queue”h]”hŒThe exec_queue”…”�”}”(hj) h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j% h´KThj& ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j% h´KThj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjëubhÞ)�”}”(hŒ **Return**”h]”j )�”}”(hjK h]”hŒReturn”…”�”}”(hjM h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjI ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´KVhjëubhÞ)�”}”(hŒATrue if **q** is primary queue of a queue group, false otherwise.”h]”(hŒTrue if ”…”�”}”(hja h²hh³Nh´Nubj )�”}”(hŒ**q**”h]”hŒq”…”�”}”(hji h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhja ubhŒ4 is primary queue of a queue group, false otherwise.”…”�”}”(hja h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´KVhjëubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ3xe_exec_queue_is_multi_queue_secondary (C function)”Œ(c.xe_exec_queue_is_multi_queue_secondary”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒEbool xe_exec_queue_is_multi_queue_secondary (struct xe_exec_queue *q)”h]”j)�”}”(hŒDbool xe_exec_queue_is_multi_queue_secondary(struct xe_exec_queue *q)”h]”(j~)�”}”(hj�h]”hŒbool”…”�”}”(hj¢ h²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hjž h²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´K^ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj° h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjž h²hh³j¯ h´K^ubj<)�”}”(hŒ&xe_exec_queue_is_multi_queue_secondary”h]”jB)�”}”(hŒ&xe_exec_queue_is_multi_queue_secondary”h]”hŒ&xe_exec_queue_is_multi_queue_secondary”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj¾ ubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hjž h²hh³j¯ h´K^ubj¶)�”}”(hŒ(struct xe_exec_queue *q)”h]”j¼)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjÞ h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjÚ ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjë h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjÚ ubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hjü h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjù ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jþ Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõjÄ sbŒ(c.xe_exec_queue_is_multi_queue_secondary”†”asbuh1hhjÚ ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjÚ ubj)�”}”(hjh]”hŒ*”…”�”}”(hj*!h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjÚ ubjB)�”}”(hj(h]”hŒq”…”�”}”(hj7!h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjÚ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjÖ ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhjž h²hh³j¯ h´K^ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahjš h²hh³j¯ h´K^ubah}”(h]”j• ah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j¯ h´K^hj— h²hubjn)�”}”(hhh]”hÞ)�”}”(hŒ@Whether an exec_queue is secondary queue of a multi queue group.”•h]”hŒ@Whether an exec_queue is secondary queue of a multi queue group.”…”�”}”(hj`!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´K^hj]!h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj— h²hh³j¯ h´K^ubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jx!j‘jx!j’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hŒ�**Parameters** ``struct xe_exec_queue *q`` The exec_queue **Return** True if **q** is secondary queue of a queue group, false otherwise.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hj‚!h]”hŒ Parameters”…”�”}”(hj„!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj€!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´Kbhj|!ubj¶)�”}”(hhh]”j»)�”}”(hŒ+``struct xe_exec_queue *q`` The exec_queue ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hj¡!h]”hŒstruct xe_exec_queue *q”…”�”}”(hj£!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjŸ!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´K`hj›!ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒThe exec_queue”h]”hŒThe exec_queue”…”�”}”(hjº!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¶!h´K`hj·!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj›!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j¶!h´K`hj˜!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj|!ubhÞ)�”}”(hŒ **Return**”h]”j )�”}”(hjÜ!h]”hŒReturn”…”�”}”(hjÞ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjÚ!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´Kbhj|!ubhÞ)�”}”(hŒCTrue if **q** is secondary queue of a queue group, false otherwise.”h]”(hŒTrue if ”…”�”}”(hjò!h²hh³Nh´Nubj )�”}”(hŒ**q**”h]”hŒq”…”�”}”(hjú!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjò!ubhŒ6 is secondary queue of a queue group, false otherwise.”…”�”}”(hjò!h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´Kbhj|!ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ.xe_exec_queue_multi_queue_primary (C function)”Œ#c.xe_exec_queue_multi_queue_primary”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒRstruct xe_exec_queue * xe_exec_queue_multi_queue_primary (struct xe_exec_queue *q)”h]”j)�”}”(hŒPstruct xe_exec_queue *xe_exec_queue_multi_queue_primary(struct xe_exec_queue *q)”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj3"h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj/"h²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´Kjubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjA"h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj/"h²hh³j@"h´Kjubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hjR"h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjO"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jT"Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõŒ!xe_exec_queue_multi_queue_primary”sbŒ#c.xe_exec_queue_multi_queue_primary”†”asbuh1hhj/"h²hh³j@"h´Kjubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjs"h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj/"h²hh³j@"h´Kjubj)�”}”(hjh]”hŒ*”…”�”}”(hj�"h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj/"h²hh³j@"h´Kjubj<)�”}”(hŒ!xe_exec_queue_multi_queue_primary”h]”jB)�”}”(hjp"h]”hŒ!xe_exec_queue_multi_queue_primary”…”�”}”(hj’"h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjŽ"ubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hj/"h²hh³j@"h´Kjubj¶)�”}”(hŒ(struct xe_exec_queue *q)”h]”j¼)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj­"h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj©"ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjº"h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj©"ubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hjË"h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjÈ"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jÍ"Œmodname”NŒ classname”Njùjü)�”}”jÿ]”jn"Œ#c.xe_exec_queue_multi_queue_primary”†”asbuh1hhj©"ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjé"h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj©"ubj)�”}”(hjh]”hŒ*”…”�”}”(hj÷"h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj©"ubjB)�”}”(hj(h]”hŒq”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj©"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj¥"ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhj/"h²hh³j@"h´Kjubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahj+"h²hh³j@"h´Kjubah}”(h]”j&"ah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j@"h´Kjhj("h²hubjn)�”}”(hhh]”hÞ)�”}”(hŒ%Get multi queue group's primary queue”h]”hŒ'Get multi queue group’s primary queue”…”�”}”(hj-#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´Kjhj*#h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj("h²hh³j@"h´Kjubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jE#j‘jE#j’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hŒÐ**Parameters** ``struct xe_exec_queue *q`` The exec_queue **Description** If **q** belongs to a multi queue group, then the primary queue of the group will be returned. Otherwise, **q** will be returned.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hjO#h]”hŒ Parameters”…”�”}”(hjQ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjM#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´KnhjI#ubj¶)�”}”(hhh]”j»)�”}”(hŒ+``struct xe_exec_queue *q`` The exec_queue ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hjn#h]”hŒstruct xe_exec_queue *q”…”�”}”(hjp#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjl#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´Kkhjh#ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒThe exec_queue”h]”hŒThe exec_queue”…”�”}”(hj‡#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jƒ#h´Kkhj„#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjh#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jƒ#h´Kkhje#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjI#ubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hj©#h]”hŒ Description”…”�”}”(hj«#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj§#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´KmhjI#ubhÞ)�”}”(hŒ�If **q** belongs to a multi queue group, then the primary queue of the group will be returned. Otherwise, **q** will be returned.”h]”(hŒIf ”…”�”}”(hj¿#h²hh³Nh´Nubj )�”}”(hŒ**q**”h]”hŒq”…”�”}”(hjÇ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj¿#ubhŒb belongs to a multi queue group, then the primary queue of the group will be returned. Otherwise, ”…”�”}”(hj¿#h²hh³Nh´Nubj )�”}”(hŒ**q**”h]”hŒq”…”�”}”(hjÙ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj¿#ubhŒ will be returned.”…”�”}”(hj¿#h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:30: ./drivers/gpu/drm/xe/xe_exec_queue.h”h´KlhjI#ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ"xe_exec_queue_get_lrc (C function)”Œc.xe_exec_queue_get_lrc”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒHstruct xe_lrc * xe_exec_queue_get_lrc (struct xe_exec_queue *q, u16 idx)”h]”j)�”}”(hŒFstruct xe_lrc *xe_exec_queue_get_lrc(struct xe_exec_queue *q, u16 idx)”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj$h²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj $h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj$h²hh³j$h´Mubh)�”}”(hhh]”jB)�”}”(hŒxe_lrc”h]”hŒxe_lrc”…”�”}”(hj1$h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj.$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j3$Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõŒxe_exec_queue_get_lrc”sbŒc.xe_exec_queue_get_lrc”†”asbuh1hhj$h²hh³j$h´Mubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjR$h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj$h²hh³j$h´Mubj)�”}”(hjh]”hŒ*”…”�”}”(hj`$h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj$h²hh³j$h´Mubj<)�”}”(hŒxe_exec_queue_get_lrc”h]”jB)�”}”(hjO$h]”hŒxe_exec_queue_get_lrc”…”�”}”(hjq$h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjm$ubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hj$h²hh³j$h´Mubj¶)�”}”(hŒ"(struct xe_exec_queue *q, u16 idx)”h]”(j¼)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjŒ$h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjˆ$ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™$h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjˆ$ubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hjª$h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj§$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j¬$Œmodname”NŒ classname”Njùjü)�”}”jÿ]”jM$Œc.xe_exec_queue_get_lrc”†”asbuh1hhjˆ$ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÈ$h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjˆ$ubj)�”}”(hjh]”hŒ*”…”�”}”(hjÖ$h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjˆ$ubjB)�”}”(hj(h]”hŒq”…”�”}”(hjã$h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjˆ$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj„$ubj¼)�”}”(hŒu16 idx”h]”(h)�”}”(hhh]”jB)�”}”(hŒu16”h]”hŒu16”…”�”}”(hjþ$h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjû$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j%Œmodname”NŒ classname”Njùjü)�”}”jÿ]”jM$Œc.xe_exec_queue_get_lrc”†”asbuh1hhj÷$ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj÷$ubjB)�”}”(hŒidx”h]”hŒidx”…”�”}”(hj*%h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj÷$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj„$ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhj$h²hh³j$h´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahj $h²hh³j$h´Mubah}”(h]”j$ah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j$h´Mhj$h²hubjn)�”}”(hhh]”hÞ)�”}”(hŒGet the LRC from exec queue.”h]”hŒGet the LRC from exec queue.”…”�”}”(hjT%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MhjQ%h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj$h²hh³j$h´Mubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jl%j‘jl%j’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hX'**Parameters** ``struct xe_exec_queue *q`` The exec queue instance. ``u16 idx`` Index within multi-LRC array. **Description** Retrieves LRC of given index for the exec queue under lock and takes reference. **Return** Pointer to LRC on success, error on failure, NULL on lookup failure.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hjv%h]”hŒ Parameters”…”�”}”(hjx%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjt%ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M#hjp%ubj¶)�”}”(hhh]”(j»)�”}”(hŒ5``struct xe_exec_queue *q`` The exec queue instance. ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hj•%h]”hŒstruct xe_exec_queue *q”…”�”}”(hj—%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj“%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M hj�%ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒThe exec queue instance.”h]”hŒThe exec queue instance.”…”�”}”(hj®%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jª%h´M hj«%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj�%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jª%h´M hjŒ%ubj»)�”}”(hŒ*``u16 idx`` Index within multi-LRC array. ”h]”(jÁ)�”}”(hŒ ``u16 idx``”h]”jÇ)�”}”(hjÎ%h]”hŒu16 idx”…”�”}”(hjÐ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÌ%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M!hjÈ%ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒIndex within multi-LRC array.”h]”hŒIndex within multi-LRC array.”…”�”}”(hjç%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jã%h´M!hjä%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÈ%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jã%h´M!hjŒ%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhjp%ubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hj &h]”hŒ Description”…”�”}”(hj &h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M#hjp%ubhÞ)�”}”(hŒORetrieves LRC of given index for the exec queue under lock and takes reference.”h]”hŒORetrieves LRC of given index for the exec queue under lock and takes reference.”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M"hjp%ubhÞ)�”}”(hŒ **Return**”h]”j )�”}”(hj0&h]”hŒReturn”…”�”}”(hj2&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj.&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M%hjp%ubhÞ)�”}”(hŒDPointer to LRC on success, error on failure, NULL on lookup failure.”h]”hŒDPointer to LRC on success, error on failure, NULL on lookup failure.”…”�”}”(hjF&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M&hjp%ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒxe_exec_queue_lrc (C function)”Œc.xe_exec_queue_lrc”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒ;struct xe_lrc * xe_exec_queue_lrc (struct xe_exec_queue *q)”h]”j)�”}”(hŒ9struct xe_lrc *xe_exec_queue_lrc(struct xe_exec_queue *q)”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hju&h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjq&h²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M9ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjƒ&h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjq&h²hh³j‚&h´M9ubh)�”}”(hhh]”jB)�”}”(hŒxe_lrc”h]”hŒxe_lrc”…”�”}”(hj”&h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj‘&ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j–&Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõŒxe_exec_queue_lrc”sbŒc.xe_exec_queue_lrc”†”asbuh1hhjq&h²hh³j‚&h´M9ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjµ&h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjq&h²hh³j‚&h´M9ubj)�”}”(hjh]”hŒ*”…”�”}”(hjÃ&h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjq&h²hh³j‚&h´M9ubj<)�”}”(hŒxe_exec_queue_lrc”h]”jB)�”}”(hj²&h]”hŒxe_exec_queue_lrc”…”�”}”(hjÔ&h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjÐ&ubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hjq&h²hh³j‚&h´M9ubj¶)�”}”(hŒ(struct xe_exec_queue *q)”h]”j¼)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjï&h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjë&ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjü&h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjë&ubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hj 'h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj 'ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j'Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j°&Œc.xe_exec_queue_lrc”†”asbuh1hhjë&ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+'h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjë&ubj)�”}”(hjh]”hŒ*”…”�”}”(hj9'h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjë&ubjB)�”}”(hj(h]”hŒq”…”�”}”(hjF'h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjë&ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjç&ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhjq&h²hh³j‚&h´M9ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahjm&h²hh³j‚&h´M9ubah}”(h]”jh&ah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j‚&h´M9hjj&h²hubjn)�”}”(hhh]”hÞ)�”}”(hŒGet the LRC from exec queue.”h]”hŒGet the LRC from exec queue.”…”�”}”(hjo'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M9hjl'h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjj&h²hh³j‚&h´M9ubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�j‡'j‘j‡'j’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hX‘**Parameters** ``struct xe_exec_queue *q`` The exec queue instance. **Description** Retrieves the primary LRC for the exec queue. Note that this function returns only the first LRC instance, even when multiple parallel LRCs are configured. This function does not increment reference count, so the reference can be just forgotten after use. **Return** Pointer to LRC on success, error on failure”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hj‘'h]”hŒ Parameters”…”�”}”(hj“'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj�'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M=hj‹'ubj¶)�”}”(hhh]”j»)�”}”(hŒ5``struct xe_exec_queue *q`` The exec queue instance. ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hj°'h]”hŒstruct xe_exec_queue *q”…”�”}”(hj²'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj®'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M:hjª'ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒThe exec queue instance.”h]”hŒThe exec queue instance.”…”�”}”(hjÉ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÅ'h´M:hjÆ'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjª'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÅ'h´M:hj§'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj‹'ubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hjë'h]”hŒ Description”…”�”}”(hjí'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjé'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M<hj‹'ubhÞ)�”}”(hŒÿRetrieves the primary LRC for the exec queue. Note that this function returns only the first LRC instance, even when multiple parallel LRCs are configured. This function does not increment reference count, so the reference can be just forgotten after use.”h]”hŒÿRetrieves the primary LRC for the exec queue. Note that this function returns only the first LRC instance, even when multiple parallel LRCs are configured. This function does not increment reference count, so the reference can be just forgotten after use.”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M;hj‹'ubhÞ)�”}”(hŒ **Return**”h]”j )�”}”(hj(h]”hŒReturn”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M@hj‹'ubhÞ)�”}”(hŒ+Pointer to LRC on success, error on failure”h]”hŒ+Pointer to LRC on success, error on failure”…”�”}”(hj((h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MAhj‹'ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ!xe_exec_queue_create (C function)”Œc.xe_exec_queue_create”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒ¦struct xe_exec_queue * xe_exec_queue_create (struct xe_device *xe, struct xe_vm *vm, u32 logical_mask, u16 width, struct xe_hw_engine *hwe, u32 flags, u64 extensions)”h]”j)�”}”(hŒ¤struct xe_exec_queue *xe_exec_queue_create(struct xe_device *xe, struct xe_vm *vm, u32 logical_mask, u16 width, struct xe_hw_engine *hwe, u32 flags, u64 extensions)”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjW(h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjS(h²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mšubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hje(h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjS(h²hh³jd(h´Mšubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hjv(h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjs(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jx(Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõŒxe_exec_queue_create”sbŒc.xe_exec_queue_create”†”asbuh1hhjS(h²hh³jd(h´Mšubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—(h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjS(h²hh³jd(h´Mšubj)�”}”(hjh]”hŒ*”…”�”}”(hj¥(h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjS(h²hh³jd(h´Mšubj<)�”}”(hŒxe_exec_queue_create”h]”jB)�”}”(hj”(h]”hŒxe_exec_queue_create”…”�”}”(hj¶(h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj²(ubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hjS(h²hh³jd(h´Mšubj¶)�”}”(hŒz(struct xe_device *xe, struct xe_vm *vm, u32 logical_mask, u16 width, struct xe_hw_engine *hwe, u32 flags, u64 extensions)”h]”(j¼)�”}”(hŒstruct xe_device *xe”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjÑ(h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjÍ(ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞ(h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjÍ(ubh)�”}”(hhh]”jB)�”}”(hŒ xe_device”h]”hŒ xe_device”…”�”}”(hjï(h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjì(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jñ(Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j’(Œc.xe_exec_queue_create”†”asbuh1hhjÍ(ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj )h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjÍ(ubj)�”}”(hjh]”hŒ*”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjÍ(ubjB)�”}”(hŒxe”h]”hŒxe”…”�”}”(hj()h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjÍ(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjÉ(ubj¼)�”}”(hŒstruct xe_vm *vm”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjA)h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj=)ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjN)h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj=)ubh)�”}”(hhh]”jB)�”}”(hŒxe_vm”h]”hŒxe_vm”…”�”}”(hj_)h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj\)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”ja)Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j’(Œc.xe_exec_queue_create”†”asbuh1hhj=)ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj})h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj=)ubj)�”}”(hjh]”hŒ*”…”�”}”(hj‹)h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj=)ubjB)�”}”(hŒvm”h]”hŒvm”…”�”}”(hj˜)h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj=)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjÉ(ubj¼)�”}”(hŒu32 logical_mask”h]”(h)�”}”(hhh]”jB)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj´)h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj±)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j¶)Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j’(Œc.xe_exec_queue_create”†”asbuh1hhj­)ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÒ)h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj­)ubjB)�”}”(hŒ logical_mask”h]”hŒ logical_mask”…”�”}”(hjà)h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj­)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjÉ(ubj¼)�”}”(hŒ u16 width”h]”(h)�”}”(hhh]”jB)�”}”(hŒu16”h]”hŒu16”…”�”}”(hjü)h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjù)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jþ)Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j’(Œc.xe_exec_queue_create”†”asbuh1hhjõ)ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjõ)ubjB)�”}”(hŒwidth”h]”hŒwidth”…”�”}”(hj(*h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjõ)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjÉ(ubj¼)�”}”(hŒstruct xe_hw_engine *hwe”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjA*h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj=*ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjN*h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj=*ubh)�”}”(hhh]”jB)�”}”(hŒ xe_hw_engine”h]”hŒ xe_hw_engine”…”�”}”(hj_*h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj\*ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”ja*Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j’(Œc.xe_exec_queue_create”†”asbuh1hhj=*ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}*h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj=*ubj)�”}”(hjh]”hŒ*”…”�”}”(hj‹*h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj=*ubjB)�”}”(hŒhwe”h]”hŒhwe”…”�”}”(hj˜*h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj=*ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjÉ(ubj¼)�”}”(hŒ u32 flags”h]”(h)�”}”(hhh]”jB)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj´*h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj±*ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j¶*Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j’(Œc.xe_exec_queue_create”†”asbuh1hhj­*ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÒ*h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj­*ubjB)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjà*h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj­*ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjÉ(ubj¼)�”}”(hŒu64 extensions”h]”(h)�”}”(hhh]”jB)�”}”(hŒu64”h]”hŒu64”…”�”}”(hjü*h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjù*ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jþ*Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j’(Œc.xe_exec_queue_create”†”asbuh1hhjõ*ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjõ*ubjB)�”}”(hŒ extensions”h]”hŒ extensions”…”�”}”(hj(+h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjõ*ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjÉ(ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhjS(h²hh³jd(h´Mšubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahjO(h²hh³jd(h´Mšubah}”(h]”jJ(ah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³jd(h´MšhjL(h²hubjn)�”}”(hhh]”hÞ)�”}”(hŒCreate an exec queue”h]”hŒCreate an exec queue”…”�”}”(hjR+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MšhjO+h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjL(h²hh³jd(h´Mšubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jj+j‘jj+j’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hX**Parameters** ``struct xe_device *xe`` Xe device ``struct xe_vm *vm`` VM for the exec queue ``u32 logical_mask`` Logical mask of HW engines ``u16 width`` Width of the exec queue (number of LRCs) ``struct xe_hw_engine *hwe`` Hardware engine ``u32 flags`` Exec queue creation flags ``u64 extensions`` Extensions for exec queue creation **Description** Create an exec queue (allocate and initialize) with the specified parameters **Return** Pointer to the created exec queue on success, ERR_PTR on failure”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hjt+h]”hŒ Parameters”…”�”}”(hjv+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjr+ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mžhjn+ubj¶)�”}”(hhh]”(j»)�”}”(hŒ#``struct xe_device *xe`` Xe device ”h]”(jÁ)�”}”(hŒ``struct xe_device *xe``”h]”jÇ)�”}”(hj“+h]”hŒstruct xe_device *xe”…”�”}”(hj•+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj‘+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M›hj�+ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ Xe device”h]”hŒ Xe device”…”�”}”(hj¬+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¨+h´M›hj©+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj�+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j¨+h´M›hjŠ+ubj»)�”}”(hŒ+``struct xe_vm *vm`` VM for the exec queue ”h]”(jÁ)�”}”(hŒ``struct xe_vm *vm``”h]”jÇ)�”}”(hjÌ+h]”hŒstruct xe_vm *vm”…”�”}”(hjÎ+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÊ+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MœhjÆ+ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒVM for the exec queue”h]”hŒVM for the exec queue”…”�”}”(hjå+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³já+h´Mœhjâ+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÆ+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³já+h´MœhjŠ+ubj»)�”}”(hŒ0``u32 logical_mask`` Logical mask of HW engines ”h]”(jÁ)�”}”(hŒ``u32 logical_mask``”h]”jÇ)�”}”(hj,h]”hŒu32 logical_mask”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M�hjÿ+ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒLogical mask of HW engines”h]”hŒLogical mask of HW engines”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j,h´M�hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÿ+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j,h´M�hjŠ+ubj»)�”}”(hŒ7``u16 width`` Width of the exec queue (number of LRCs) ”h]”(jÁ)�”}”(hŒ ``u16 width``”h]”jÇ)�”}”(hj>,h]”hŒ u16 width”…”�”}”(hj@,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj<,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mžhj8,ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ(Width of the exec queue (number of LRCs)”h]”hŒ(Width of the exec queue (number of LRCs)”…”�”}”(hjW,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jS,h´MžhjT,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj8,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jS,h´MžhjŠ+ubj»)�”}”(hŒ-``struct xe_hw_engine *hwe`` Hardware engine ”h]”(jÁ)�”}”(hŒ``struct xe_hw_engine *hwe``”h]”jÇ)�”}”(hjw,h]”hŒstruct xe_hw_engine *hwe”…”�”}”(hjy,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhju,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MŸhjq,ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒHardware engine”h]”hŒHardware engine”…”�”}”(hj�,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jŒ,h´MŸhj�,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjq,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jŒ,h´MŸhjŠ+ubj»)�”}”(hŒ(``u32 flags`` Exec queue creation flags ”h]”(jÁ)�”}”(hŒ ``u32 flags``”h]”jÇ)�”}”(hj°,h]”hŒ u32 flags”…”�”}”(hj²,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj®,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M hjª,ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒExec queue creation flags”h]”hŒExec queue creation flags”…”�”}”(hjÉ,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÅ,h´M hjÆ,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjª,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÅ,h´M hjŠ+ubj»)�”}”(hŒ6``u64 extensions`` Extensions for exec queue creation ”h]”(jÁ)�”}”(hŒ``u64 extensions``”h]”jÇ)�”}”(hjé,h]”hŒu64 extensions”…”�”}”(hjë,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjç,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M¡hjã,ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ"Extensions for exec queue creation”h]”hŒ"Extensions for exec queue creation”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jþ,h´M¡hjÿ,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjã,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jþ,h´M¡hjŠ+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhjn+ubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hj$-h]”hŒ Description”…”�”}”(hj&-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj"-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M£hjn+ubhÞ)�”}”(hŒLCreate an exec queue (allocate and initialize) with the specified parameters”h]”hŒLCreate an exec queue (allocate and initialize) with the specified parameters”…”�”}”(hj:-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M¢hjn+ubhÞ)�”}”(hŒ **Return**”h]”j )�”}”(hjK-h]”hŒReturn”…”�”}”(hjM-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjI-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M¤hjn+ubhÞ)�”}”(hŒ@Pointer to the created exec queue on success, ERR_PTR on failure”h]”hŒ@Pointer to the created exec queue on success, ERR_PTR on failure”…”�”}”(hja-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M¥hjn+ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ'xe_exec_queue_create_class (C function)”Œc.xe_exec_queue_create_class”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒ£struct xe_exec_queue * xe_exec_queue_create_class (struct xe_device *xe, struct xe_gt *gt, struct xe_vm *vm, enum xe_engine_class class, u32 flags, u64 extensions)”h]”j)�”}”(hŒ¡struct xe_exec_queue *xe_exec_queue_create_class(struct xe_device *xe, struct xe_gt *gt, struct xe_vm *vm, enum xe_engine_class class, u32 flags, u64 extensions)”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj�-h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjŒ-h²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÓubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjž-h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjŒ-h²hh³j�-h´MÓubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hj¯-h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj¬-ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j±-Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõŒxe_exec_queue_create_class”sbŒc.xe_exec_queue_create_class”†”asbuh1hhjŒ-h²hh³j�-h´MÓubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐ-h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjŒ-h²hh³j�-h´MÓubj)�”}”(hjh]”hŒ*”…”�”}”(hjÞ-h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjŒ-h²hh³j�-h´MÓubj<)�”}”(hŒxe_exec_queue_create_class”h]”jB)�”}”(hjÍ-h]”hŒxe_exec_queue_create_class”…”�”}”(hjï-h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjë-ubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hjŒ-h²hh³j�-h´MÓubj¶)�”}”(hŒq(struct xe_device *xe, struct xe_gt *gt, struct xe_vm *vm, enum xe_engine_class class, u32 flags, u64 extensions)”h]”(j¼)�”}”(hŒstruct xe_device *xe”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj .h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj.ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj.ubh)�”}”(hhh]”jB)�”}”(hŒ xe_device”h]”hŒ xe_device”…”�”}”(hj(.h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj%.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j*.Œmodname”NŒ classname”Njùjü)�”}”jÿ]”jË-Œc.xe_exec_queue_create_class”†”asbuh1hhj.ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjF.h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj.ubj)�”}”(hjh]”hŒ*”…”�”}”(hjT.h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj.ubjB)�”}”(hŒxe”h]”hŒxe”…”�”}”(hja.h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj.ubj¼)�”}”(hŒstruct xe_gt *gt”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjz.h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjv.ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‡.h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjv.ubh)�”}”(hhh]”jB)�”}”(hŒxe_gt”h]”hŒxe_gt”…”�”}”(hj˜.h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj•.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jš.Œmodname”NŒ classname”Njùjü)�”}”jÿ]”jË-Œc.xe_exec_queue_create_class”†”asbuh1hhjv.ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶.h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjv.ubj)�”}”(hjh]”hŒ*”…”�”}”(hjÄ.h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjv.ubjB)�”}”(hŒgt”h]”hŒgt”…”�”}”(hjÑ.h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjv.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj.ubj¼)�”}”(hŒstruct xe_vm *vm”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjê.h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjæ.ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj÷.h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjæ.ubh)�”}”(hhh]”jB)�”}”(hŒxe_vm”h]”hŒxe_vm”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj/ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j /Œmodname”NŒ classname”Njùjü)�”}”jÿ]”jË-Œc.xe_exec_queue_create_class”†”asbuh1hhjæ.ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&/h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjæ.ubj)�”}”(hjh]”hŒ*”…”�”}”(hj4/h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjæ.ubjB)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjA/h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjæ.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj.ubj¼)�”}”(hŒenum xe_engine_class class”h]”(j)�”}”(hjh]”hŒenum”…”�”}”(hjZ/h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjV/ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjg/h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjV/ubh)�”}”(hhh]”jB)�”}”(hŒxe_engine_class”h]”hŒxe_engine_class”…”�”}”(hjx/h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhju/ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jz/Œmodname”NŒ classname”Njùjü)�”}”jÿ]”jË-Œc.xe_exec_queue_create_class”†”asbuh1hhjV/ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–/h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjV/ubjB)�”}”(hŒclass”h]”hŒclass”…”�”}”(hj¤/h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjV/ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj.ubj¼)�”}”(hŒ u32 flags”h]”(h)�”}”(hhh]”jB)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjÀ/h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj½/ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jÂ/Œmodname”NŒ classname”Njùjü)�”}”jÿ]”jË-Œc.xe_exec_queue_create_class”†”asbuh1hhj¹/ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞ/h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj¹/ubjB)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjì/h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj¹/ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj.ubj¼)�”}”(hŒu64 extensions”h]”(h)�”}”(hhh]”jB)�”}”(hŒu64”h]”hŒu64”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j 0Œmodname”NŒ classname”Njùjü)�”}”jÿ]”jË-Œc.xe_exec_queue_create_class”†”asbuh1hhj0ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&0h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj0ubjB)�”}”(hŒ extensions”h]”hŒ extensions”…”�”}”(hj40h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj.ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhjŒ-h²hh³j�-h´MÓubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahjˆ-h²hh³j�-h´MÓubah}”(h]”jƒ-ah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j�-h´MÓhj…-h²hubjn)�”}”(hhh]”hÞ)�”}”(hŒ0Create an exec queue for a specific engine class”h]”hŒ0Create an exec queue for a specific engine class”…”�”}”(hj^0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÓhj[0h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj…-h²hh³j�-h´MÓubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jv0j‘jv0j’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hX¸**Parameters** ``struct xe_device *xe`` Xe device ``struct xe_gt *gt`` GT for the exec queue ``struct xe_vm *vm`` VM for the exec queue ``enum xe_engine_class class`` Engine class ``u32 flags`` Exec queue creation flags ``u64 extensions`` Extensions for exec queue creation **Description** Create an exec queue for the specified engine class. **Return** Pointer to the created exec queue on success, ERR_PTR on failure”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hj€0h]”hŒ Parameters”…”�”}”(hj‚0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj~0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M×hjz0ubj¶)�”}”(hhh]”(j»)�”}”(hŒ#``struct xe_device *xe`` Xe device ”h]”(jÁ)�”}”(hŒ``struct xe_device *xe``”h]”jÇ)�”}”(hjŸ0h]”hŒstruct xe_device *xe”…”�”}”(hj¡0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj�0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÔhj™0ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ Xe device”h]”hŒ Xe device”…”�”}”(hj¸0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j´0h´MÔhjµ0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj™0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j´0h´MÔhj–0ubj»)�”}”(hŒ+``struct xe_gt *gt`` GT for the exec queue ”h]”(jÁ)�”}”(hŒ``struct xe_gt *gt``”h]”jÇ)�”}”(hjØ0h]”hŒstruct xe_gt *gt”…”�”}”(hjÚ0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÖ0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÕhjÒ0ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒGT for the exec queue”h]”hŒGT for the exec queue”…”�”}”(hjñ0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jí0h´MÕhjî0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÒ0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jí0h´MÕhj–0ubj»)�”}”(hŒ+``struct xe_vm *vm`` VM for the exec queue ”h]”(jÁ)�”}”(hŒ``struct xe_vm *vm``”h]”jÇ)�”}”(hj1h]”hŒstruct xe_vm *vm”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÖhj 1ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒVM for the exec queue”h]”hŒVM for the exec queue”…”�”}”(hj*1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j&1h´MÖhj'1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj 1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j&1h´MÖhj–0ubj»)�”}”(hŒ,``enum xe_engine_class class`` Engine class ”h]”(jÁ)�”}”(hŒ``enum xe_engine_class class``”h]”jÇ)�”}”(hjJ1h]”hŒenum xe_engine_class class”…”�”}”(hjL1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjH1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M×hjD1ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ Engine class”h]”hŒ Engine class”…”�”}”(hjc1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j_1h´M×hj`1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjD1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j_1h´M×hj–0ubj»)�”}”(hŒ(``u32 flags`` Exec queue creation flags ”h]”(jÁ)�”}”(hŒ ``u32 flags``”h]”jÇ)�”}”(hjƒ1h]”hŒ u32 flags”…”�”}”(hj…1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj�1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MØhj}1ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒExec queue creation flags”h]”hŒExec queue creation flags”…”�”}”(hjœ1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j˜1h´MØhj™1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj}1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j˜1h´MØhj–0ubj»)�”}”(hŒ6``u64 extensions`` Extensions for exec queue creation ”h]”(jÁ)�”}”(hŒ``u64 extensions``”h]”jÇ)�”}”(hj¼1h]”hŒu64 extensions”…”�”}”(hj¾1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjº1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÙhj¶1ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ"Extensions for exec queue creation”h]”hŒ"Extensions for exec queue creation”…”�”}”(hjÕ1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÑ1h´MÙhjÒ1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj¶1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÑ1h´MÙhj–0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhjz0ubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hj÷1h]”hŒ Description”…”�”}”(hjù1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjõ1ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÛhjz0ubhÞ)�”}”(hŒ4Create an exec queue for the specified engine class.”h]”hŒ4Create an exec queue for the specified engine class.”…”�”}”(hj 2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÚhjz0ubhÞ)�”}”(hŒ **Return**”h]”j )�”}”(hj2h]”hŒReturn”…”�”}”(hj 2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÜhjz0ubhÞ)�”}”(hŒ@Pointer to the created exec queue on success, ERR_PTR on failure”h]”hŒ@Pointer to the created exec queue on success, ERR_PTR on failure”…”�”}”(hj42h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÝhjz0ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ&xe_exec_queue_create_bind (C function)”Œc.xe_exec_queue_create_bind”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒ�struct xe_exec_queue * xe_exec_queue_create_bind (struct xe_device *xe, struct xe_tile *tile, struct xe_vm *user_vm, u32 flags, u64 extensions)”h]”j)�”}”(hŒ�struct xe_exec_queue *xe_exec_queue_create_bind(struct xe_device *xe, struct xe_tile *tile, struct xe_vm *user_vm, u32 flags, u64 extensions)”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjc2h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj_2h²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Múubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjq2h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj_2h²hh³jp2h´Múubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hj‚2h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj2ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j„2Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõŒxe_exec_queue_create_bind”sbŒc.xe_exec_queue_create_bind”†”asbuh1hhj_2h²hh³jp2h´Múubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£2h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj_2h²hh³jp2h´Múubj)�”}”(hjh]”hŒ*”…”�”}”(hj±2h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj_2h²hh³jp2h´Múubj<)�”}”(hŒxe_exec_queue_create_bind”h]”jB)�”}”(hj 2h]”hŒxe_exec_queue_create_bind”…”�”}”(hjÂ2h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj¾2ubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hj_2h²hh³jp2h´Múubj¶)�”}”(hŒ^(struct xe_device *xe, struct xe_tile *tile, struct xe_vm *user_vm, u32 flags, u64 extensions)”h]”(j¼)�”}”(hŒstruct xe_device *xe”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjÝ2h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjÙ2ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjê2h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjÙ2ubh)�”}”(hhh]”jB)�”}”(hŒ xe_device”h]”hŒ xe_device”…”�”}”(hjû2h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjø2ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jý2Œmodname”NŒ classname”Njùjü)�”}”jÿ]”jž2Œc.xe_exec_queue_create_bind”†”asbuh1hhjÙ2ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjÙ2ubj)�”}”(hjh]”hŒ*”…”�”}”(hj'3h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjÙ2ubjB)�”}”(hŒxe”h]”hŒxe”…”�”}”(hj43h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjÙ2ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjÕ2ubj¼)�”}”(hŒstruct xe_tile *tile”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjM3h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjI3ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjZ3h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjI3ubh)�”}”(hhh]”jB)�”}”(hŒxe_tile”h]”hŒxe_tile”…”�”}”(hjk3h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjh3ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jm3Œmodname”NŒ classname”Njùjü)�”}”jÿ]”jž2Œc.xe_exec_queue_create_bind”†”asbuh1hhjI3ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‰3h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjI3ubj)�”}”(hjh]”hŒ*”…”�”}”(hj—3h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjI3ubjB)�”}”(hŒtile”h]”hŒtile”…”�”}”(hj¤3h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjI3ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjÕ2ubj¼)�”}”(hŒstruct xe_vm *user_vm”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj½3h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj¹3ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊ3h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj¹3ubh)�”}”(hhh]”jB)�”}”(hŒxe_vm”h]”hŒxe_vm”…”�”}”(hjÛ3h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjØ3ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jÝ3Œmodname”NŒ classname”Njùjü)�”}”jÿ]”jž2Œc.xe_exec_queue_create_bind”†”asbuh1hhj¹3ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjù3h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj¹3ubj)�”}”(hjh]”hŒ*”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj¹3ubjB)�”}”(hŒuser_vm”h]”hŒuser_vm”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj¹3ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjÕ2ubj¼)�”}”(hŒ u32 flags”h]”(h)�”}”(hhh]”jB)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj04h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj-4ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j24Œmodname”NŒ classname”Njùjü)�”}”jÿ]”jž2Œc.xe_exec_queue_create_bind”†”asbuh1hhj)4ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjN4h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj)4ubjB)�”}”(hŒflags”h]”hŒflags”…”�”}”(hj\4h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj)4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjÕ2ubj¼)�”}”(hŒu64 extensions”h]”(h)�”}”(hhh]”jB)�”}”(hŒu64”h]”hŒu64”…”�”}”(hjx4h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhju4ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jz4Œmodname”NŒ classname”Njùjü)�”}”jÿ]”jž2Œc.xe_exec_queue_create_bind”†”asbuh1hhjq4ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–4h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjq4ubjB)�”}”(hŒ extensions”h]”hŒ extensions”…”�”}”(hj¤4h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjq4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjÕ2ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhj_2h²hh³jp2h´Múubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahj[2h²hh³jp2h´Múubah}”(h]”jV2ah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³jp2h´MúhjX2h²hubjn)�”}”(hhh]”hÞ)�”}”(hŒCreate bind exec queue.”h]”hŒCreate bind exec queue.”…”�”}”(hjÎ4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MúhjË4h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjX2h²hh³jp2h´Múubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jæ4j‘jæ4j’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hXì**Parameters** ``struct xe_device *xe`` Xe device. ``struct xe_tile *tile`` tile which bind exec queue belongs to. ``struct xe_vm *user_vm`` The user VM which this exec queue belongs to ``u32 flags`` exec queue creation flags ``u64 extensions`` exec queue creation extensions **Description** Normalize bind exec queue creation. Bind exec queue is tied to migration VM for access to physical memory required for page table programming. On a faulting devices the reserved copy engine instance must be used to avoid deadlocking (user binds cannot get stuck behind faults as kernel binds which resolve faults depend on user binds). On non-faulting devices any copy engine can be used. Returns exec queue on success, ERR_PTR on failure”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hjð4h]”hŒ Parameters”…”�”}”(hjò4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjî4ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mþhjê4ubj¶)�”}”(hhh]”(j»)�”}”(hŒ$``struct xe_device *xe`` Xe device. ”h]”(jÁ)�”}”(hŒ``struct xe_device *xe``”h]”jÇ)�”}”(hj5h]”hŒstruct xe_device *xe”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj 5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mûhj 5ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ Xe device.”h]”hŒ Xe device.”…”�”}”(hj(5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j$5h´Mûhj%5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj 5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j$5h´Mûhj5ubj»)�”}”(hŒ@``struct xe_tile *tile`` tile which bind exec queue belongs to. ”h]”(jÁ)�”}”(hŒ``struct xe_tile *tile``”h]”jÇ)�”}”(hjH5h]”hŒstruct xe_tile *tile”…”�”}”(hjJ5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjF5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MühjB5ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ&tile which bind exec queue belongs to.”h]”hŒ&tile which bind exec queue belongs to.”…”�”}”(hja5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j]5h´Mühj^5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjB5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j]5h´Mühj5ubj»)�”}”(hŒG``struct xe_vm *user_vm`` The user VM which this exec queue belongs to ”h]”(jÁ)�”}”(hŒ``struct xe_vm *user_vm``”h]”jÇ)�”}”(hj�5h]”hŒstruct xe_vm *user_vm”…”�”}”(hjƒ5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mþhj{5ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ,The user VM which this exec queue belongs to”h]”hŒ,The user VM which this exec queue belongs to”…”�”}”(hjš5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j–5h´Mþhj—5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj{5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j–5h´Mþhj5ubj»)�”}”(hŒ(``u32 flags`` exec queue creation flags ”h]”(jÁ)�”}”(hŒ ``u32 flags``”h]”jÇ)�”}”(hjº5h]”hŒ u32 flags”…”�”}”(hj¼5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj¸5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mýhj´5ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒexec queue creation flags”h]”hŒexec queue creation flags”…”�”}”(hjÓ5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÏ5h´MýhjÐ5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj´5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÏ5h´Mýhj5ubj»)�”}”(hŒ2``u64 extensions`` exec queue creation extensions ”h]”(jÁ)�”}”(hŒ``u64 extensions``”h]”jÇ)�”}”(hjó5h]”hŒu64 extensions”…”�”}”(hjõ5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjñ5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mÿhjí5ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒexec queue creation extensions”h]”hŒexec queue creation extensions”…”�”}”(hj 6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j6h´Mÿhj 6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjí5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j6h´Mÿhj5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhjê4ubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hj.6h]”hŒ Description”…”�”}”(hj06h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj,6ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mhjê4ubhÞ)�”}”(hX„Normalize bind exec queue creation. Bind exec queue is tied to migration VM for access to physical memory required for page table programming. On a faulting devices the reserved copy engine instance must be used to avoid deadlocking (user binds cannot get stuck behind faults as kernel binds which resolve faults depend on user binds). On non-faulting devices any copy engine can be used.”h]”hX„Normalize bind exec queue creation. Bind exec queue is tied to migration VM for access to physical memory required for page table programming. On a faulting devices the reserved copy engine instance must be used to avoid deadlocking (user binds cannot get stuck behind faults as kernel binds which resolve faults depend on user binds). On non-faulting devices any copy engine can be used.”…”�”}”(hjD6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mhjê4ubhÞ)�”}”(hŒ1Returns exec queue on success, ERR_PTR on failure”h]”hŒ1Returns exec queue on success, ERR_PTR on failure”…”�”}”(hjS6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mhjê4ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ"xe_exec_queue_destroy (C function)”Œc.xe_exec_queue_destroy”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒ-void xe_exec_queue_destroy (struct kref *ref)”h]”j)�”}”(hŒ,void xe_exec_queue_destroy(struct kref *ref)”h]”(j~)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj‚6h²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hj~6h²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M8ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‘6h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj~6h²hh³j�6h´M8ubj<)�”}”(hŒxe_exec_queue_destroy”h]”jB)�”}”(hŒxe_exec_queue_destroy”h]”hŒxe_exec_queue_destroy”…”�”}”(hj£6h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjŸ6ubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hj~6h²hh³j�6h´M8ubj¶)�”}”(hŒ(struct kref *ref)”h]”j¼)�”}”(hŒstruct kref *ref”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj¿6h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj»6ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌ6h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj»6ubh)�”}”(hhh]”jB)�”}”(hŒkref”h]”hŒkref”…”�”}”(hjÝ6h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjÚ6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jß6Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõj¥6sbŒc.xe_exec_queue_destroy”†”asbuh1hhj»6ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjý6h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj»6ubj)�”}”(hjh]”hŒ*”…”�”}”(hj 7h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj»6ubjB)�”}”(hŒref”h]”hŒref”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj»6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj·6ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhj~6h²hh³j�6h´M8ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahjz6h²hh³j�6h´M8ubah}”(h]”ju6ah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j�6h´M8hjw6h²hubjn)�”}”(hhh]”hÞ)�”}”(hŒDestroy an exec queue”h]”hŒDestroy an exec queue”…”�”}”(hjB7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M8hj?7h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjw6h²hh³j�6h´M8ubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jZ7j‘jZ7j’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hX**Parameters** ``struct kref *ref`` Reference count of the exec queue **Description** Called when the last reference to the exec queue is dropped. Cleans up all resources associated with the exec queue. This function should not be called directly; use xe_exec_queue_put() instead.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hjd7h]”hŒ Parameters”…”�”}”(hjf7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjb7ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M<hj^7ubj¶)�”}”(hhh]”j»)�”}”(hŒ7``struct kref *ref`` Reference count of the exec queue ”h]”(jÁ)�”}”(hŒ``struct kref *ref``”h]”jÇ)�”}”(hjƒ7h]”hŒstruct kref *ref”…”�”}”(hj…7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj�7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M9hj}7ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ!Reference count of the exec queue”h]”hŒ!Reference count of the exec queue”…”�”}”(hjœ7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j˜7h´M9hj™7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj}7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j˜7h´M9hjz7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj^7ubhÞ)�”}”(hŒ**Description**”h•]”j )�”}”(hj¾7h]”hŒ Description”…”�”}”(hjÀ7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj¼7ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M;hj^7ubhÞ)�”}”(hŒÂCalled when the last reference to the exec queue is dropped. Cleans up all resources associated with the exec queue. This function should not be called directly; use xe_exec_queue_put() instead.”h]”hŒÂCalled when the last reference to the exec queue is dropped. Cleans up all resources associated with the exec queue. This function should not be called directly; use xe_exec_queue_put() instead.”…”�”}”(hjÔ7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M:hj^7ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒxe_exec_queue_fini (C function)”Œc.xe_exec_queue_fini”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒ1void xe_exec_queue_fini (struct xe_exec_queue *q)”h]”j)�”}”(hŒ0void xe_exec_queue_fini(struct xe_exec_queue *q)”h]”(j~)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hjÿ7h²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M`ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjÿ7h²hh³j8h´M`ubj<)�”}”(hŒxe_exec_queue_fini”h]”jB)�”}”(hŒxe_exec_queue_fini”h]”hŒxe_exec_queue_fini”…”�”}”(hj$8h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj 8ubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hjÿ7h²hh³j8h´M`ubj¶)�”}”(hŒ(struct xe_exec_queue *q)”h]”j¼)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj@8h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj<8ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjM8h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj<8ubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hj^8h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj[8ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j`8Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõj&8sbŒc.xe_exec_queue_fini”†”asbuh1hhj<8ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~8h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj<8ubj)�”}”(hjh]”hŒ*”…”�”}”(hjŒ8h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj<8ubjB)�”}”(hj(h]”hŒq”…”�”}”(hj™8h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj<8ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj88ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhjÿ7h²hh³j8h´M`ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahjû7h²hh³j8h´M`ubah}”(h]”jö7ah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j8h´M`hjø7h²hubjn)�”}”(hhh]”hÞ)�”}”(hŒFinalize an exec queue”h]”hŒFinalize an exec queue”…”�”}”(hjÂ8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M`hj¿8h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjø7h²hh³j8h´M`ubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jÚ8j‘jÚ8j’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hX**Parameters** ``struct xe_exec_queue *q`` The exec queue **Description** Finalizes the exec queue by updating run ticks, releasing LRC references, and freeing the queue structure. This is called after the queue has been destroyed and all references have been dropped.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hjä8h]”hŒ Parameters”…”�”}”(hjæ8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjâ8ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MdhjÞ8ubj¶)�”}”(hhh]”j»)�”}”(hŒ+``struct xe_exec_queue *q`` The exec queue ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hj9h]”hŒstruct xe_exec_queue *q”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mahjý8ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒThe exec queue”h]”hŒThe exec queue”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j9h´Mahj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjý8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j9h´Mahjú8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjÞ8ubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hj>9h]”hŒ Description”…”�”}”(hj@9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj<9ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MchjÞ8ubhÞ)�”}”(hŒÂFinalizes the exec queue by updating run ticks, releasing LRC references, and freeing the queue structure. This is called after the queue has been destroyed and all references have been dropped.”h]”hŒÂFinalizes the exec queue by updating run ticks, releasing LRC references, and freeing the queue structure. This is called after the queue has been destroyed and all references have been dropped.”…”�”}”(hjT9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MbhjÞ8ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ&xe_exec_queue_assign_name (C function)”Œc.xe_exec_queue_assign_name”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒFvoid xe_exec_queue_assign_name (struct xe_exec_queue *q, u32 instance)”h]”j)�”}”(hŒEvoid xe_exec_queue_assign_name(struct xe_exec_queue *q, u32 instance)”h]”(j~)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjƒ9h²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hj9h²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mvubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’9h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj9h²hh³j‘9h´Mvubj<)�”}”(hŒxe_exec_queue_assign_name”h]”jB)�”}”(hŒxe_exec_queue_assign_name”h]”hŒxe_exec_queue_assign_name”…”�”}”(hj¤9h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj 9ubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hj9h²hh³j‘9h´Mvubj¶)�”}”(hŒ'(struct xe_exec_queue *q, u32 instance)”h]”(j¼)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjÀ9h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj¼9ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍ9h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj¼9ubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hjÞ9h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjÛ9ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jà9Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõj¦9sbŒc.xe_exec_queue_assign_name”†”asbuh1hhj¼9ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþ9h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj¼9ubj)�”}”(hjh]”hŒ*”…”�”}”(hj :h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj¼9ubjB)�”}”(hj(h]”hŒq”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj¼9ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj¸9ubj¼)�”}”(hŒ u32 instance”h]”(h)�”}”(hhh]”jB)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj4:h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj1:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j6:Œmodname”NŒ classname”Njùjü)�”}”jÿ]”jú9Œc.xe_exec_queue_assign_name”†”asbuh1hhj-:ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjR:h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj-:ubjB)�”}”(hŒinstance”h]”hŒinstance”…”�”}”(hj`:h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj-:ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj¸9ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhj9h²hh³j‘9h´Mvubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahj{9h²hh³j‘9h´Mvubah}”(h]”jv9ah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j‘9h´Mvhjx9h²hubjn)�”}”(hhh]”hÞ)�”}”(hŒAssign a name to an exec queue”h]”hŒAssign a name to an exec queue”…”�”}”(hjŠ:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mvhj‡:h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjx9h²hh³j‘9h´Mvubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�j¢:j‘j¢:j’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hŒÿ**Parameters** ``struct xe_exec_queue *q`` The exec queue ``u32 instance`` Instance number for the engine **Description** Assigns a human-readable name to the exec queue based on its engine class and instance number (e.g., "rcs0", "vcs1", "bcs2").”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hj¬:h]”hŒ Parameters”…”�”}”(hj®:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjª:ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mzhj¦:ubj¶)�”}”(hhh]”(j»)�”}”(hŒ+``struct xe_exec_queue *q`` The exec queue ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hjË:h]”hŒstruct xe_exec_queue *q”…”�”}”(hjÍ:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÉ:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MwhjÅ:ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒThe exec queue”h]”hŒThe exec queue”…”�”}”(hjä:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jà:h´Mwhjá:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÅ:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jà:h´MwhjÂ:ubj»)�”}”(hŒ0``u32 instance`` Instance number for the engine ”h]”(jÁ)�”}”(hŒ``u32 instance``”h]”jÇ)�”}”(hj;h]”hŒ u32 instance”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mxhjþ:ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒInstance number for the engine”h]”hŒInstance number for the engine”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j;h´Mxhj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjþ:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j;h´MxhjÂ:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhj¦:ubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hj?;h]”hŒ Description”…”�”}”(hjA;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj=;ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mzhj¦:ubhÞ)�”}”(hŒ}Assigns a human-readable name to the exec queue based on its engine class and instance number (e.g., "rcs0", "vcs1", "bcs2").”h]”hŒ‰Assigns a human-readable name to the exec queue based on its engine class and instance number (e.g., “rcs0â€�, “vcs1â€�, “bcs2â€�).”…”�”}”(hjU;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Myhj¦:ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ!xe_exec_queue_lookup (C function)”Œc.xe_exec_queue_lookup”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒIstruct xe_exec_queue * xe_exec_queue_lookup (struct xe_file *xef, u32 id)”h]”j)�”}”(hŒGstruct xe_exec_queue *xe_exec_queue_lookup(struct xe_file *xef, u32 id)”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj„;h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj€;h²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M˜ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’;h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj€;h²hh³j‘;h´M˜ubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hj£;h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj ;ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j¥;Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõŒxe_exec_queue_lookup”sbŒc.xe_exec_queue_lookup”†”asbuh1hhj€;h²hh³j‘;h´M˜ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÄ;h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj€;h²hh³j‘;h´M˜ubj)�”}”(hjh]”hŒ*”…”�”}”(hjÒ;h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj€;h²hh³j‘;h´M˜ubj<)�”}”(hŒxe_exec_queue_lookup”h]”jB)�”}”(hjÁ;h]”hŒxe_exec_queue_lookup”…”�”}”(hjã;h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjß;ubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hj€;h²hh³j‘;h´M˜ubj¶)�”}”(hŒ(struct xe_file *xef, u32 id)”h]”(j¼)�”}”(hŒstruct xe_file *xef”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjþ;h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjú;ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj <h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjú;ubh)�”}”(hhh]”jB)�”}”(hŒxe_file”h]”hŒxe_file”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj<ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j<Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j¿;Œc.xe_exec_queue_lookup”†”asbuh1hhjú;ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:<h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjú;ubj)�”}”(hjh]”hŒ*”…”�”}”(hjH<h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjú;ubjB)�”}”(hŒxef”h]”hŒxef”…”�”}”(hjU<h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjú;ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjö;ubj¼)�”}”(hŒu32 id”h]”(h)�”}”(hhh]”jB)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjq<h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjn<ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”js<Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j¿;Œc.xe_exec_queue_lookup”†”asbuh1hhjj<ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�<h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjj<ubjB)�”}”(hŒid”h]”hŒid”…”�”}”(hj�<h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjj<ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjö;ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhj€;h²hh³j‘;h´M˜ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahj|;h²hh³j‘;h´M˜ubah}”(h]”jw;ah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j‘;h´M˜hjy;h²hubjn)�”}”(hhh]”hÞ)�”}”(hŒLook up an exec queue by ID”h]”hŒLook up an exec queue by ID”…”�”}”(hjÇ<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M˜hjÄ<h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjy;h²hh³j‘;h´M˜ubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jß<j‘jß<j’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hŒñ**Parameters** ``struct xe_file *xef`` Xe file private data ``u32 id`` Exec queue ID **Description** Looks up an exec queue by its ID and increments its reference count. **Return** Pointer to the exec queue if found, NULL otherwise”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hjé<h]”hŒ Parameters”…”�”}”(hjë<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjç<ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mœhjã<ubj¶)�”}”(hhh]”(j»)�”}”(hŒ-``struct xe_file *xef`` Xe file private data ”h]”(jÁ)�”}”(hŒ``struct xe_file *xef``”h]”jÇ)�”}”(hj=h]”hŒstruct xe_file *xef”…”�”}”(hj =h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M™hj=ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒXe file private data”h]”hŒXe file private data”…”�”}”(hj!=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j=h´M™hj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j=h´M™hjÿ<ubj»)�”}”(hŒ``u32 id`` Exec queue ID ”h]”(jÁ)�”}”(hŒ ``u32 id``”h]”jÇ)�”}”(hjA=h]”hŒu32 id”…”�”}”(hjC=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj?=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mšhj;=ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ Exec queue ID”h]”hŒ Exec queue ID”…”�”}”(hjZ=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jV=h´MšhjW=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj;=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jV=h´Mšhjÿ<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhjã<ubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hj|=h]”hŒ Description”…”�”}”(hj~=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjz=ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mœhjã<ubhÞ)�”}”(hŒDLooks up an exec queue by its ID and increments its reference count.”h]”hŒDLooks up an exec queue by its ID and increments its reference count.”…”�”}”(hj’=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M›hjã<ubhÞ)�”}”(hŒ **Return**”h]”j )�”}”(hj£=h]”hŒReturn”…”�”}”(hj¥=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj¡=ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M�hjã<ubhÞ)�”}”(hŒ2Pointer to the exec queue if found, NULL otherwise”h]”hŒ2Pointer to the exec queue if found, NULL otherwise”…”�”}”(hj¹=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mžhjã<ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ2xe_exec_queue_device_get_max_priority (C function)”Œ'c.xe_exec_queue_device_get_max_priority”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒXenum xe_exec_queue_priority xe_exec_queue_device_get_max_priority (struct xe_device *xe)”h]”j)�”}”(hŒWenum xe_exec_queue_priority xe_exec_queue_device_get_max_priority(struct xe_device *xe)”h]”(j)�”}”(hjh]”hŒenum”…”�”}”(hjè=h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjä=h²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M®ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjö=h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjä=h²hh³jõ=h´M®ubh)�”}”(hhh]”jB)�”}”(hŒxe_exec_queue_priority”h]”hŒxe_exec_queue_priority”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj>ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j >Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõŒ%xe_exec_queue_device_get_max_priority”sbŒ'c.xe_exec_queue_device_get_max_priority”†”asbuh1hhjä=h²hh³jõ=h´M®ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(>h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjä=h²hh³jõ=h´M®ubj<)�”}”(hŒ%xe_exec_queue_device_get_max_priority”h]”jB)�”}”(hj%>h]”hŒ%xe_exec_queue_device_get_max_priority”…”�”}”(hj:>h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj6>ubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hjä=h²hh³jõ=h´M®ubj¶)�”}”(hŒ(struct xe_device *xe)”h]”j¼)�”}”(hŒstruct xe_device *xe”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjU>h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjQ>ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjb>h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjQ>ubh)�”}”(hhh]”jB)�”}”(hŒ xe_device”h]”hŒ xe_device”…”�”}”(hjs>h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjp>ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”ju>Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j#>Œ'c.xe_exec_queue_device_get_max_priority”†”asbuh1hhjQ>ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‘>h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjQ>ubj)�”}”(hjh]”hŒ*”…”�”}”(hjŸ>h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjQ>ubjB)�”}”(hŒxe”h]”hŒxe”…”�”}”(hj¬>h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjQ>ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjM>ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhjä=h²hh³jõ=h´M®ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahjà=h²hh³jõ=h´M®ubah}”(h]”jÛ=ah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³jõ=h´M®hjÝ=h²hubjn)�”}”(hhh]”hÞ)�”}”(hŒ'Get maximum priority for an exec queues”h]”hŒ'Get maximum priority for an exec queues”…”�”}”(hjÖ>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M®hjÓ>h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÝ=h²hh³jõ=h´M®ubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jî>j‘jî>j’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hŒÞ**Parameters** ``struct xe_device *xe`` Xe device **Description** Returns the maximum priority level that can be assigned to an exec queues. **Return** Maximum priority level (HIGH if CAP_SYS_NICE, NORMAL otherwise)”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hjø>h]”hŒ Parameters”…”�”}”(hjú>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjö>ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M²hjò>ubj¶)�”}”(hhh]”j»)�”}”(hŒ#``struct xe_device *xe`` Xe device ”h]”(jÁ)�”}”(hŒ``struct xe_device *xe``”h]”jÇ)�”}”(hj?h]”hŒstruct xe_device *xe”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M¯hj?ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ Xe device”h]”hŒ Xe device”…”�”}”(hj0?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j,?h´M¯hj-?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j,?h´M¯hj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjò>ubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hjR?h]”hŒ Description”…”�”}”(hjT?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjP?ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M±hjò>ubhÞ)�”}”(hŒJReturns the maximum priority level that can be assigned to an exec queues.”h]”hŒJReturns the maximum priority level that can be assigned to an exec queues.”…”�”}”(hjh?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M°hjò>ubhÞ)�”}”(hŒ **Return**”h]”j )�”}”(hjy?h]”hŒReturn”…”�”}”(hj{?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjw?ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M²hjò>ubhÞ)�”}”(hŒ?Maximum priority level (HIGH if CAP_SYS_NICE, NORMAL otherwise)”h]”hŒ?Maximum priority level (HIGH if CAP_SYS_NICE, NORMAL otherwise)”…”�”}”(hj�?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M³hjò>ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ-xe_exec_queue_set_property_ioctl (C function)”Œ"c.xe_exec_queue_set_property_ioctl”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒ`int xe_exec_queue_set_property_ioctl (struct drm_device *dev, void *data, struct drm_file *file)”h]”j)�”}”(hŒ_int xe_exec_queue_set_property_ioctl(struct drm_device *dev, void *data, struct drm_file *file)”h]”(j~)�”}”(hŒint”h]”hŒint”…”�”}”(hj¾?h²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hjº?h²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mõubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍ?h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjº?h²hh³jÌ?h´Mõubj<)�”}”(hŒ xe_exec_queue_set_property_ioctl”h]”jB)�”}”(hŒ xe_exec_queue_set_property_ioctl”h]”hŒ xe_exec_queue_set_property_ioctl”…”�”}”(hjß?h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjÛ?ubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hjº?h²hh³jÌ?h´Mõubj¶)�”}”(hŒ;(struct drm_device *dev, void *data, struct drm_file *file)”h]”(j¼)�”}”(hŒstruct drm_device *dev”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjû?h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj÷?ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj÷?ubh)�”}”(hhh]”jB)�”}”(hŒ drm_device”h]”hŒ drm_device”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj@ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j@Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõjá?sbŒ"c.xe_exec_queue_set_property_ioctl”†”asbuh1hhj÷?ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9@h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj÷?ubj)�”}”(hjh]”hŒ*”…”�”}”(hjG@h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj÷?ubjB)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjT@h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj÷?ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjó?ubj¼)�”}”(hŒ void *data”h]”(j~)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjm@h²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hji@ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{@h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hji@ubj)�”}”(hjh]”hŒ*”…”�”}”(hj‰@h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhji@ubjB)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj–@h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhji@ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjó?ubj¼)�”}”(hŒstruct drm_file *file”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj¯@h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj«@ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼@h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj«@ubh)�”}”(hhh]”jB)�”}”(hŒdrm_file”h]”hŒdrm_file”…”�”}”(hjÍ@h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjÊ@ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jÏ@Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j5@Œ"c.xe_exec_queue_set_property_ioctl”†”asbuh1hhj«@ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjë@h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj«@ubj)�”}”(hjh]”hŒ*”…”�”}”(hjù@h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj«@ubjB)�”}”(hŒfile”h]”hŒfile”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj«@ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjó?ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhjº?h²hh³jÌ?h´Mõubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahj¶?h²hh³jÌ?h´Mõubah}”(h]”j±?ah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³jÌ?h´Mõhj³?h²hubjn)�”}”(hhh]”hÞ)�”}”(hŒSet a property on an exec queue”h]”hŒSet a property on an exec queue”…”�”}”(hj0Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mõhj-Ah²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj³?h²hh³jÌ?h´Mõubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jHAj‘jHAj’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hX1**Parameters** ``struct drm_device *dev`` DRM device ``void *data`` IOCTL data ``struct drm_file *file`` DRM file **Description** Allows setting properties on an existing exec queue. Currently only supports setting multi-queue priority. **Return** 0 on success, negative error code on failure”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hjRAh]”hŒ Parameters”…”�”}”(hjTAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjPAubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MùhjLAubj¶)�”}”(hhh]”(j»)�”}”(hŒ&``struct drm_device *dev`` DRM device ”h]”(jÁ)�”}”(hŒ``struct drm_device *dev``”h]”jÇ)�”}”(hjqAh]”hŒstruct drm_device *dev”…”�”}”(hjsAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjoAubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MöhjkAubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ DRM device”h]”hŒ DRM device”…”�”}”(hjŠAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j†Ah´Möhj‡Aubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjkAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j†Ah´MöhjhAubj»)�”}”(hŒ``void *data`` IOCTL data ”h]”(jÁ)�”}”(hŒ``void *data``”h]”jÇ)�”}”(hjªAh]”hŒ void *data”…”�”}”(hj¬Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj¨Aubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M÷hj¤AubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ IOCTL data”h]”hŒ IOCTL data”…”�”}”(hjÃAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¿Ah´M÷hjÀAubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj¤Aubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j¿Ah´M÷hjhAubj»)�”}”(hŒ#``struct drm_file *file`` DRM file ”h]”(jÁ)�”}”(hŒ``struct drm_file *file``”h]”jÇ)�”}”(hjãAh]”hŒstruct drm_file *file”…”�”}”(hjåAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjáAubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MøhjÝAubjÝ)�”}”(hhh]”hÞ)�”}”(hŒDRM file”h]”hŒDRM file”…”�”}”(hjüAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jøAh´MøhjùAubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÝAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jøAh´MøhjhAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhjLAubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hjBh]”hŒ Description”…”�”}”(hj Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjBubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MúhjLAubhÞ)�”}”(hŒjAllows setting properties on an existing exec queue. Currently only supports setting multi-queue priority.”h]”hŒjAllows setting properties on an existing exec queue. Currently only supports setting multi-queue priority.”…”�”}”(hj4Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MùhjLAubhÞ)�”}”(hŒ **Return**”h]”j )�”}”(hjEBh]”hŒReturn”…”�”}”(hjGBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjCBubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MühjLAubhÞ)�”}”(hŒ,0 on success, negative error code on failure”h]”hŒ,0 on success, negative error code on failure”…”�”}”(hj[Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MýhjLAubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ'xe_exec_queue_create_ioctl (C function)”Œc.xe_exec_queue_create_ioctl”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒZint xe_exec_queue_create_ioctl (struct drm_device *dev, void *data, struct drm_file *file)”h]”j)�”}”(hŒYint xe_exec_queue_create_ioctl(struct drm_device *dev, void *data, struct drm_file *file)”h]”(j~)�”}”(hŒint”h]”hŒint”…”�”}”(hjŠBh²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hj†Bh²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mìubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™Bh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj†Bh²hh³j˜Bh´Mìubj<)�”}”(hŒxe_exec_queue_create_ioctl”h]”jB)�”}”(hŒxe_exec_queue_create_ioctl”h]”hŒxe_exec_queue_create_ioctl”…”�”}”(hj«Bh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj§Bubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hj†Bh²hh³j˜Bh´Mìubj¶)�”}”(hŒ;(struct drm_device *dev, void *data, struct drm_file *file)”h]”(j¼)�”}”(hŒstruct drm_device *dev”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjÇBh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjÃBubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔBh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjÃBubh)�”}”(hhh]”jB)�”}”(hŒ drm_device”h]”hŒ drm_device”…”�”}”(hjåBh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjâBubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jçBŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõj­BsbŒc.xe_exec_queue_create_ioctl”†”asbuh1hhjÃBubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjÃBubj)�”}”(hjh]”hŒ*”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjÃBubjB)�”}”(hŒdev”h]”hŒdev”…”�”}”(hj Ch²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjÃBubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj¿Bubj¼)�”}”(hŒ void *data”h]”(j~)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj9Ch²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hj5Cubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjGCh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj5Cubj)�”}”(hjh]”hŒ*”…”�”}”(hjUCh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj5CubjB)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjbCh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj5Cubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj¿Bubj¼)�”}”(hŒstruct drm_file *file”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj{Ch²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjwCubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjˆCh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjwCubh)�”}”(hhh]”jB)�”}”(hŒdrm_file”h]”hŒdrm_file”…”�”}”(hj™Ch²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj–Cubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j›CŒmodname”NŒ classname”Njùjü)�”}”jÿ]”jCŒc.xe_exec_queue_create_ioctl”†”asbuh1hhjwCubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj·Ch²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjwCubj)�”}”(hjh]”hŒ*”…”�”}”(hjÅCh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjwCubjB)�”}”(hŒfile”h]”hŒfile”…”�”}”(hjÒCh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjwCubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj¿Bubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhj†Bh²hh³j˜Bh´Mìubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahj‚Bh²hh³j˜Bh´Mìubah}”(h]”j}Bah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j˜Bh´MìhjBh²hubjn)�”}”(hhh]”hÞ)�”}”(hŒCreate an exec queue via IOCTL”h]”hŒCreate an exec queue via IOCTL”…”�”}”(hjüCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MìhjùCh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjBh²hh³j˜Bh´Mìubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jDj‘jDj’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hX„**Parameters** ``struct drm_device *dev`` DRM device ``void *data`` IOCTL data ``struct drm_file *file`` DRM file **Description** Creates a new exec queue based on user-provided parameters. Supports creating VM bind queues, regular exec queues, multi-lrc exec queues and multi-queue groups. **Return** 0 on success with exec_queue_id filled in, negative error code on failure”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hjDh]”hŒ Parameters”…”�”}”(hj Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjDubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MðhjDubj¶)�”}”(hhh]”(j»)�”}”(hŒ&``struct drm_device *dev`` DRM device ”h]”(jÁ)�”}”(hŒ``struct drm_device *dev``”h]”jÇ)�”}”(hj=Dh]”hŒstruct drm_device *dev”…”�”}”(hj?Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj;Dubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Míhj7DubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ DRM device”h]”hŒ DRM device”…”�”}”(hjVDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jRDh´MíhjSDubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj7Dubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jRDh´Míhj4Dubj»)�”}”(hŒ``void *data`` IOCTL data ”h]”(jÁ)�”}”(hŒ``void *data``”h]”jÇ)�”}”(hjvDh]”hŒ void *data”…”�”}”(hjxDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjtDubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MîhjpDubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ IOCTL data”h]”hŒ IOCTL data”…”�”}”(hj�Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j‹Dh´MîhjŒDubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjpDubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j‹Dh´Mîhj4Dubj»)�”}”(hŒ#``struct drm_file *file`` DRM file ”h]”(jÁ)�”}”(hŒ``struct drm_file *file``”h]”jÇ)�”}”(hj¯Dh]”hŒstruct drm_file *file”…”�”}”(hj±Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj­Dubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mïhj©DubjÝ)�”}”(hhh]”hÞ)�”}”(hŒDRM file”h]”hŒDRM file”…”�”}”(hjÈDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÄDh´MïhjÅDubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj©Dubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÄDh´Mïhj4Dubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhjDubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hjêDh]”hŒ Description”…”�”}”(hjìDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjèDubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MñhjDubhÞ)�”}”(hŒ Creates a new exec queue based on user-provided parameters. Supports creating VM bind queues, regular exec queues, multi-lrc exec queues and multi-queue groups.”h]”hŒ Creates a new exec queue based on user-provided parameters. Supports creating VM bind queues, regular exec queues, multi-lrc exec queues and multi-queue groups.”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MðhjDubhÞ)�”}”(hŒ **Return**”h]”j )�”}”(hjEh]”hŒReturn”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjEubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MôhjDubhÞ)�”}”(hŒI0 on success with exec_queue_id filled in, negative error code on failure”h]”hŒI0 on success with exec_queue_id filled in, negative error code on failure”…”�”}”(hj'Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MõhjDubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ-xe_exec_queue_get_property_ioctl (C function)”Œ"c.xe_exec_queue_get_property_ioctl”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒ`int xe_exec_queue_get_property_ioctl (struct drm_device *dev, void *data, struct drm_file *file)”h]”j)�”}”(hŒ_int xe_exec_queue_get_property_ioctl(struct drm_device *dev, void *data, struct drm_file *file)”h]”(j~)�”}”(hŒint”h]”hŒint”…”�”}”(hjVEh²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hjREh²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M«ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjeEh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjREh²hh³jdEh´M«ubj<)�”}”(hŒ xe_exec_queue_get_property_ioctl”h]”jB)�”}”(hŒ xe_exec_queue_get_property_ioctl”h]”hŒ xe_exec_queue_get_property_ioctl”…”�”}”(hjwEh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjsEubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hjREh²hh³jdEh´M«ubj¶)�”}”(hŒ;(struct drm_device *dev, void *data, struct drm_file *file)”h]”(j¼)�”}”(hŒstruct drm_device *dev”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj“Eh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj�Eubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj Eh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj�Eubh)�”}”(hhh]”jB)�”}”(hŒ drm_device”h]”hŒ drm_device”…”�”}”(hj±Eh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj®Eubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j³EŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõjyEsbŒ"c.xe_exec_queue_get_property_ioctl”†”asbuh1hhj�Eubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑEh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj�Eubj)�”}”(hjh]”hŒ*”…”�”}”(hjßEh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj�EubjB)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjìEh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj�Eubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj‹Eubj¼)�”}”(hŒ void *data”h]”(j~)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hjFubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjFubj)�”}”(hjh]”hŒ*”…”�”}”(hj!Fh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjFubjB)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj.Fh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjFubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj‹Eubj¼)�”}”(hŒstruct drm_file *file”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjGFh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjCFubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjTFh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjCFubh)�”}”(hhh]”jB)�”}”(hŒdrm_file”h]”hŒdrm_file”…”�”}”(hjeFh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjbFubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jgFŒmodname”NŒ classname”Njùjü)�”}”jÿ]”jÍEŒ"c.xe_exec_queue_get_property_ioctl”†”asbuh1hhjCFubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjƒFh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjCFubj)�”}”(hjh]”hŒ*”…”�”}”(hj‘Fh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjCFubjB)�”}”(hŒfile”h]”hŒfile”…”�”}”(hjžFh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjCFubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj‹Eubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhjREh²hh³jdEh´M«ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahjNEh²hh³jdEh´M«ubah}”(h]”jIEah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³jdEh´M«hjKEh²hubjn)�”}”(hhh]”hÞ)�”}”(hŒ!Get a property from an exec queue”h]”hŒ!Get a property from an exec queue”…”�”}”(hjÈFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M«hjÅFh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjKEh²hh³jdEh´M«ubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jàFj‘jàFj’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hXC**Parameters** ``struct drm_device *dev`` DRM device ``void *data`` IOCTL data ``struct drm_file *file`` DRM file **Description** Retrieves property values from an existing exec queue. Currently supports getting the ban/reset status. **Return** 0 on success with value filled in, negative error code on failure”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hjêFh]”hŒ Parameters”…”�”}”(hjìFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjèFubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M¯hjäFubj¶)�”}”(hhh]”(j»)�”}”(hŒ&``struct drm_device *dev`` DRM device ”h]”(jÁ)�”}”(hŒ``struct drm_device *dev``”h]”jÇ)�”}”(hj Gh]”hŒstruct drm_device *dev”…”�”}”(hj Gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M¬hjGubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ DRM device”h]”hŒ DRM device”…”�”}”(hj"Gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jGh´M¬hjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjGubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jGh´M¬hjGubj»)�”}”(hŒ``void *data`` IOCTL data ”h]”(jÁ)�”}”(hŒ``void *data``”h]”jÇ)�”}”(hjBGh]”hŒ void *data”…”�”}”(hjDGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj@Gubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M­hjHubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hjHh²hh³j/Hh´MÔubj¶)�”}”(hŒ(struct xe_exec_queue *q)”h]”j¼)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj^Hh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjZHubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjkHh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjZHubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hj|Hh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjyHubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j~HŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõjDHsbŒc.xe_exec_queue_is_lr”†”asbuh1hhjZHubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœHh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjZHubj)�”}”(hjh]”hŒ*”…”�”}”(hjªHh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjZHubjB)�”}”(hj(h]”hŒq”…”�”}”(hj·Hh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjZHubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjVHubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhjHh²hh³j/Hh´MÔubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahjHh²hh³j/Hh´MÔubah}”(h]”jHah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j/Hh´MÔhjHh²hubjn)�”}”(hhh]”hÞ)�”}”(hŒ%Whether an exec_queue is long-running”h]”hŒ%Whether an exec_queue is long-running”…”�”}”(hjàHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÔhjÝHh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjHh²hh³j/Hh´MÔubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jøHj‘jøHj’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hŒ‚**Parameters** ``struct xe_exec_queue *q`` The exec_queue **Return** True if the exec_queue is long-running, false otherwise.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hjIh]”hŒ Parameters”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjIubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MØhjüHubj¶)�”}”(hhh]”j»)�”}”(hŒ+``struct xe_exec_queue *q`` The exec_queue ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hj!Ih]”hŒstruct xe_exec_queue *q”…”�”}”(hj#Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjIubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÕhjIubjÝ)�”}”(hhh]”hÞ)�”}”(hŒThe exec_queue”h]”hŒThe exec_queue”…”�”}”(hj:Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j6Ih´MÕhj7Iubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjIubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j6Ih´MÕhjIubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjüHubhÞ)�”}”(hŒ **Return**”h]”j )�”}”(hj\Ih]”hŒReturn”…”�”}”(hj^Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjZIubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M×hjüHubhÞ)�”}”(hŒ8True if the exec_queue is long-running, false otherwise.”h]”hŒ8True if the exec_queue is long-running, false otherwise.”…”�”}”(hjrIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M×hjüHubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ"xe_exec_queue_is_idle (C function)”Œc.xe_exec_queue_is_idle”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒ4bool xe_exec_queue_is_idle (struct xe_exec_queue *q)”h]”j)�”}”(hŒ3bool xe_exec_queue_is_idle(struct xe_exec_queue *q)”h]”(j~)�”}”(hj�h]”hŒbool”…”�”}”(hj¡Ih²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hj�Ih²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Màubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¯Ih²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj�Ih²hh³j®Ih´Màubj<)�”}”(hŒxe_exec_queue_is_idle”h]”jB)�”}”(hŒxe_exec_queue_is_idle”h]”hŒxe_exec_queue_is_idle”…”�”}”(hjÁIh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj½Iubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hj�Ih²hh³j®Ih´Màubj¶)�”}”(hŒ(struct xe_exec_queue *q)”h]”j¼)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjÝIh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjÙIubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjêIh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjÙIubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hjûIh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjøIubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jýIŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõjÃIsbŒc.xe_exec_queue_is_idle”†”asbuh1hhjÙIubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjÙIubj)�”}”(hjh]”hŒ*”…”�”}”(hj)Jh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjÙIubjB)�”}”(hj(h]”hŒq”…”�”}”(hj6Jh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjÙIubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjÕIubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhj�Ih²hh³j®Ih´Màubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahj™Ih²hh³j®Ih´Màubah}”(h]”j”Iah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j®Ih´Màhj–Ih²hubjn)�”}”(hhh]”hÞ)�”}”(hŒWhether an exec_queue is idle.”h]”hŒWhether an exec_queue is idle.”…”�”}”(hj_Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Màhj\Jh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj–Ih²hh³j®Ih´Màubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jwJj‘jwJj’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hX$**Parameters** ``struct xe_exec_queue *q`` The exec_queue **Description** FIXME: Need to determine what to use as the short-lived timeline lock for the exec_queues, so that the return value of this function becomes more than just an advisory snapshot in time. The timeline lock must protect the seqno from racing submissions on the same exec_queue. Typically vm->resv, but user-created timeline locks use the migrate vm and never grabs the migrate vm->resv so we have a race there. **Return** True if the exec_queue is idle, false otherwise.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hj�Jh]”hŒ Parameters”…”�”}”(hjƒJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjJubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mähj{Jubj¶)�”}”(hhh]”j»)�”}”(hŒ+``struct xe_exec_queue *q`` The exec_queue ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hj Jh]”hŒstruct xe_exec_queue *q”…”�”}”(hj¢Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjžJubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MáhjšJubjÝ)�”}”(hhh]”hÞ)�”}”(hŒThe exec_queue”h]”hŒThe exec_queue”…”�”}”(hj¹Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jµJh´Máhj¶Jubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjšJubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jµJh´Máhj—Jubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj{JubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hjÛJh]”hŒ Description”…”�”}”(hjÝJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjÙJubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mãhj{JubhÞ)�”}”(hX—FIXME: Need to determine what to use as the short-lived timeline lock for the exec_queues, so that the return value of this function becomes more than just an advisory snapshot in time. The timeline lock must protect the seqno from racing submissions on the same exec_queue. Typically vm->resv, but user-created timeline locks use the migrate vm and never grabs the migrate vm->resv so we have a race there.”h]”hX—FIXME: Need to determine what to use as the short-lived timeline lock for the exec_queues, so that the return value of this function becomes more than just an advisory snapshot in time. The timeline lock must protect the seqno from racing submissions on the same exec_queue. Typically vm->resv, but user-created timeline locks use the migrate vm and never grabs the migrate vm->resv so we have a race there.”…”�”}”(hjñJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mâhj{JubhÞ)�”}”(hŒ **Return**”h]”j )�”}”(hjKh]”hŒReturn”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjKubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mêhj{JubhÞ)�”}”(hŒ0True if the exec_queue is idle, false otherwise.”h]”hŒ0True if the exec_queue is idle, false otherwise.”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mëhj{Jubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ+xe_exec_queue_update_run_ticks (C function)”Œ c.xe_exec_queue_update_run_ticks”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒ=void xe_exec_queue_update_run_ticks (struct xe_exec_queue *q)”h]”j)�”}”(hŒLubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj"LubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hj‚Lh]”hŒ Description”…”�”}”(hj„Lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj€Lubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mhj"LubhÞ)�”}”(hŒwUpdate the timestamp saved by HW for this exec queue and save run ticks calculated by using the delta from last update.”h]”hŒwUpdate the timestamp saved by HW for this exec queue and save run ticks calculated by using the delta from last update.”…”�”}”(hj˜Lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mhj"Lubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒxe_exec_queue_kill (C function)”Œc.xe_exec_queue_kill”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒ1void xe_exec_queue_kill (struct xe_exec_queue *q)”h]”j)�”}”(hŒ0void xe_exec_queue_kill(struct xe_exec_queue *q)”h]”(j~)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÇLh²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hjÃLh²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M(ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖLh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjÃLh²hh³jÕLh´M(ubj<)�”}”(hŒxe_exec_queue_kill”h]”jB)�”}”(hŒxe_exec_queue_kill”h]”hŒxe_exec_queue_kill”…”�”}”(hjèLh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjäLubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hjÃLh²hh³jÕLh´M(ubj¶)�”}”(hŒ(struct xe_exec_queue *q)”h]”j¼)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjMubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjMubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hj"Mh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjMuba•h}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j$MŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõjêLsbŒc.xe_exec_queue_kill”†”asbuh1hhjMubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBMh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjMubj)�”}”(hjh]”hŒ*”…”�”}”(hjPMh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjMubjB)�”}”(hj(h]”hŒq”…”�”}”(hj]Mh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjMubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjüLubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhjÃLh²hh³jÕLh´M(ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahj¿Lh²hh³jÕLh´M(ubah}”(h]”jºLah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³jÕLh´M(hj¼Lh²hubjn)�”}”(hhh]”hÞ)�”}”(hŒ1permanently stop all execution from an exec queue”h]”hŒ1permanently stop all execution from an exec queue”…”�”}”(hj†Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M(hjƒMh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj¼Lh²hh³jÕLh´M(ubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jžMj‘jžMj’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hXS**Parameters** ``struct xe_exec_queue *q`` The exec queue **Description** This function permanently stops all activity on an exec queue. If the queue is actively executing on the HW, it will be kicked off the engine; any pending jobs are discarded and all future submissions are rejected. This function is safe to call multiple times.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hj¨Mh]”hŒ Parameters”…”�”}”(hjªMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj¦Mubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M,hj¢Mubj¶)�”}”(hhh]”j»)�”}”(hŒ+``struct xe_exec_queue *q`` The exec queue ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hjÇMh]”hŒstruct xe_exec_queue *q”…”�”}”(hjÉMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÅMubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M)hjÁMubjÝ)�”}”(hhh]”hÞ)�”}”(hŒThe exec queue”h]”hŒThe exec queue”…”�”}”(hjàMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÜMh´M)hjÝMubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÁMubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÜMh´M)hj¾Mubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj¢MubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hjNh]”hŒ Description”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjNubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M+hj¢MubhÞ)�”}”(hXThis function permanently stops all activity on an exec queue. If the queue is actively executing on the HW, it will be kicked off the engine; any pending jobs are discarded and all future submissions are rejected. This function is safe to call multiple times.”h]”hXThis function permanently stops all activity on an exec queue. If the queue is actively executing on the HW, it will be kicked off the engine; any pending jobs are discarded and all future submissions are rejected. This function is safe to call multiple times.”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M*hj¢Mubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ(xe_exec_queue_destroy_ioctl (C function)”Œc.xe_exec_queue_destroy_ioctl”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒ[int xe_exec_queue_destroy_ioctl (struct drm_device *dev, void *data, struct drm_file *file)”h]”j)�”}”(hŒZint xe_exec_queue_destroy_ioctl(struct drm_device *dev, void *data, struct drm_file *file)”h]”(j~)�”}”(hŒint”h]”hŒint”…”�”}”(hjGNh²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hjCNh²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M?ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjVNh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjCNh²hh³jUNh´M?ubj<)�”}”(hŒxe_exec_queue_destroy_ioctl”h]”jB)�”}”(hŒxe_exec_queue_destroy_ioctl”h]”hŒxe_exec_queue_destroy_ioctl”…”�”}”(hjhNh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjdNubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hjCNh²hh³jUNh´M?ubj¶)�”}”(hŒ;(struct drm_device *dev, void *data, struct drm_file *file)”h]”(j¼)�”}”(hŒstruct drm_device *dev”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj„Nh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj€Nubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‘Nh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj€Nubh)�”}”(hhh]”jB)�”}”(hŒ drm_device”h]”hŒ drm_device”…”�”}”(hj¢Nh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjŸNubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j¤NŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõjjNsbŒc.xe_exec_queue_destroy_ioctl”†”asbuh1hhj€Nubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÂNh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj€Nubj)�”}”(hjh]”hŒ*”…”�”}”(hjÐNh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj€NubjB)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjÝNh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj€Nubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj|Nubj¼)�”}”(hŒ void *data”h]”(j~)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjöNh²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hjòNubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjòNubj)�”}”(hjh]”hŒ*”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjòNubjB)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjòNubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj|Nubj¼)�”}”(hŒstruct drm_file *file”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj8Oh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj4Oubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjEOh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj4Oubh)�”}”(hhh]”jB)�”}”(hŒdrm_file”h]”hŒdrm_file”…”�”}”(hjVOh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjSOubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jXOŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j¾NŒc.xe_exec_queue_destroy_ioctl”†”asbuh1hhj4Oubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjtOh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj4Oubj)�”}”(hjh]”hŒ*”…”�”}”(hj‚Oh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj4OubjB)�”}”(hŒfile”h]”hŒfile”…”�”}”(hj�Oh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj4Oubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj|Nubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhjCNh²hh³jUNh´M?ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahj?Nh²hh³jUNh´M?ubah}”(h]”j:Nah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³jUNh´M?hj``struct xe_vm *vm`` The VM the engine does a bind or exec for”h]”(jÁ)�”}”(hŒ``struct xe_vm *vm``”h]”jÇ)�”}”(hj¼Rh]”hŒstruct xe_vm *vm”…”�”}”(hj¾Rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjºRubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Myhj¶RubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ)The VM the engine does a bind or exec for”h]”hŒ)The VM the engine does a bind or exec for”…”�”}”(hjÕRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MxhjÒRubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj¶Rubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÑRh´MyhjzRubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhj^Rubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ2xe_exec_queue_last_fence_put_unlocked (C function)”Œ'c.xe_exec_queue_last_fence_put_unlocked”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒDvoid xe_exec_queue_last_fence_put_unlocked (struct xe_exec_queue *q)”h]”j)�”}”(hŒCvoid xe_exec_queue_last_fence_put_unlocked(struct xe_exec_queue *q)”h]”(j~)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hjSh²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M‚ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%Sh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjSh²hh³j$Sh´M‚ubj<)�”}”(hŒ%xe_exec_queue_last_fence_put_unlocked”h]”jB)�”}”(hŒ%xe_exec_queue_last_fence_put_unlocked”h]”hŒ%xe_exec_queue_last_fence_put_unlocked”…”�”}”(hj7Sh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj3Subah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hjSh²hh³j$Sh´M‚ubj¶)�”}”(hŒ(struct xe_exec_queue *q)”h]”j¼)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjSSh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjOSubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`Sh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjOSubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hjqSh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjnSubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jsSŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõj9SsbŒ'c.xe_exec_queue_last_fence_put_unlocked”†”asbuh1hhjOSubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‘Sh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjOSubj)�”}”(hjh]”hŒ*”…”�”}”(hjŸSh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjOSubjB)�”}”(hj(h]”hŒq”…”�”}”(hj¬Sh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjOSubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjKSubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhjSh²hh³j$Sh´M‚ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahjSh²hh³j$Sh´M‚ubah}”(h]”j Sah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j$Sh´M‚hj Sh²hubjn)�”}”(hhh]”hÞ)�”}”(hŒDrop ref to last fence unlocked”h]”hŒDrop ref to last fence unlocked”…”�”}”(hjÕSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M‚hjÒSh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj Sh²hh³j$Sh´M‚ubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jíSj‘jíSj’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hŒƒ**Parameters** ``struct xe_exec_queue *q`` The exec queue **Description** Only safe to be called from xe_exec_queue_destroy().”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hj÷Sh]”hŒ Parameters”…”�”}”(hjùSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjõSubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M†hjñSubj¶)�”}”(hhh]”j»)�”}”(hŒ+``struct xe_exec_queue *q`` The exec queue ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hjTh]”hŒstruct xe_exec_queue *q”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjTubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MƒhjTubjÝ)�”}”(hhh]”hÞ)�”}”(hŒThe exec queue”h]”hŒThe exec queue”…”�”}”(hj/Th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j+Th´Mƒhj,Tubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjTubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j+Th´Mƒhj Tubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjñSubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hjQTh]”hŒ Description”…”�”}”(hjSTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjOTubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M…hjñSubhÞ)�”}”(hŒ4Only safe to be called from xe_exec_queue_destroy().”h]”hŒ4Only safe to be called from xe_exec_queue_destroy().”…”�”}”(hjgTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M„hjñSubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ)xe_exec_queue_last_fence_get (C function)”Œc.xe_exec_queue_last_fence_get”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒ[struct dma_fence * xe_exec_queue_last_fence_get (struct xe_exec_queue *q, struct xe_vm *vm)”h]”j)�”}”(hŒYstruct dma_fence *xe_exec_queue_last_fence_get(struct xe_exec_queue *q, struct xe_vm *vm)”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj–Th²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj’Th²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M�ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤Th²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj’Th²hh³j£Th´M�ubh)�”}”(hhh]”jB)�”}”(hŒ dma_fence”h]”hŒ dma_fence”…”�”}”(hjµTh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj²Tubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j·TŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõŒxe_exec_queue_last_fence_get”sbŒc.xe_exec_queue_last_fence_get”†”asbuh1hhj’Th²hh³j£Th´M�ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖTh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj’Th²hh³j£Th´M�ubj)�”}”(hjh]”hŒ*”…”�”}”(hjäTh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj’Th²hh³j£Th´M�ubj<)�”}”(hŒxe_exec_queue_last_fence_get”h]”jB)�”}”(hjÓTh]”hŒxe_exec_queue_last_fence_get”…”�”}”(hjõTh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjñTubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hj’Th²hh³j£Th´M�ubj¶)�”}”(hŒ+(struct xe_exec_queue *q, struct xe_vm *vm)”h]”(j¼)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj Uubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj Uubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hj.Uh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj+Uubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j0UŒmodname”NŒ classname”Njùjü)�”}”jÿ]”jÑTŒc.xe_exec_queue_last_fence_get”†”asbuh1hhj Uubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjLUh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj Uubj)�”}”(hjh]”hŒ*”…”�”}”(hjZUh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj UubjB)�”}”(hj(h]”hŒq”…”�”}”(hjgUh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj Uubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjUubj¼)�”}”(hŒstruct xe_vm *vm”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj{Uubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒUh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj{Uubh)�”}”(hhh]”jB)�”}”(hŒxe_vm”h]”hŒxe_vm”…”�”}”(hj�Uh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjšUubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jŸUŒmodname”NŒ classname”Njùjü)�”}”jÿ]”jÑTŒc.xe_exec_queue_last_fence_get”†”asbuh1hhj{Uubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»Uh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj{Uubj)�”}”(hjh]”hŒ*”…”�”}”(hjÉUh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj{UubjB)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjÖUh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj{Uubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjUubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhj’Th²hh³j£Th´M�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahjŽTh²hh³j£Th´M�ubah}”(h]”j‰Tah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j£Th´M�hj‹Th²hubjn)�”}”(hhh]”hÞ)�”}”(hŒGet last fence”h]”hŒGet last fence”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M�hjýUh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj‹Th²hh³j£Th´M�ubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jVj‘jVj’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hŒð**Parameters** ``struct xe_exec_queue *q`` The exec queue ``struct xe_vm *vm`` The VM the engine does a bind or exec for **Description** Get last fence, takes a ref **Return** last fence if not signaled, dma fence stub if signaled”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hj"Vh]”hŒ Parameters”…”�”}”(hj$Vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj Vubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M”hjVubj¶)�”}”(hhh]”(j»)�”}”(hŒ+``struct xe_exec_queue *q`` The exec queue ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hjAVh]”hŒstruct xe_exec_queue *q”…”�”}”(hjCVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj?Vubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M‘hj;VubjÝ)�”}”(hhh]”hÞ)�”}”(hŒThe exec queue”h]”hŒThe exec queue”…”�”}”(hjZVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jVVh´M‘hjWVubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj;Vubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jVVh´M‘hj8Vubj»)�”}”(hŒ?``struct xe_vm *vm`` The VM the engine does a bind or exec for ”h]”(jÁ)�”}”(hŒ``struct xe_vm *vm``”h]”jÇ)�”}”(hjzVh]”hŒstruct xe_vm *vm”…”�”}”(hj|Vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjxVubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M’hjtVubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ)The VM the engine does a bind or exec for”h]”hŒ)The VM the engine does a bind or exec for”…”�”}”(hj“Vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j�Vh´M’hj�Vubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjtVubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j�Vh´M’hj8Vubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhjVubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hjµVh]”hŒ Description”…”�”}”(hj·Vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj³Vubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M”hjVubhÞ)�”}”(hŒGet last fence, takes a ref”h]”hŒGet last fence, takes a ref”…”�”}”(hjËVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M“hjVubhÞ)�”}”(hŒ **Return**”h]”j )�”}”(hjÜVh]”hŒReturn”…”�”}”(hjÞVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjÚVubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M•hjVubhÞ)�”}”(hŒ6last fence if not signaled, dma fence stub if signaled”h]”hŒ6last fence if not signaled, dma fence stub if signaled”…”�”}”(hjòVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M–hjVubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ4xe_exec_queue_last_fence_get_for_resume (C function)”Œ)c.xe_exec_queue_last_fence_get_for_resume”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒfstruct dma_fence * xe_exec_queue_last_fence_get_for_resume (struct xe_exec_queue *q, struct xe_vm *vm)”h]”j)�”}”(hŒdstruct dma_fence *xe_exec_queue_last_fence_get_for_resume(struct xe_exec_queue *q, struct xe_vm *vm)”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj!Wh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjWh²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M©ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/Wh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjWh²hh³j.Wh´M©ubh)�”}”(hhh]”jB)�”}”(hŒ dma_fence”h]”hŒ dma_fence”…”�”}”(hj@Wh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj=Wubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jBWŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõŒ'xe_exec_queue_last_fence_get_for_resume”sbŒ)c.xe_exec_queue_last_fence_get_for_resume”†”asbuh1hhjWh²hh³j.Wh´M©ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjaWh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjWh²hh³j.Wh´M©ubj)�”}”(hjh]”hŒ*”…”�”}”(hjoWh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjWh²hh³j.Wh´M©ubj<)�”}”(hŒ'xe_exec_queue_last_fence_get_for_resume”h]”jB)�”}”(hj^Wh]”hŒ'xe_exec_queue_last_fence_get_for_resume”…”�”}”(hj€Wh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj|Wubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hjWh²hh³j.Wh´M©ubj¶)�”}”(hŒ+(struct xe_exec_queue *q, struct xe_vm *vm)”h]”(j¼)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj›Wh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj—Wubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨Wh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj—Wubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hj¹Wh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj¶Wubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j»WŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j\WŒ)c.xe_exec_queue_last_fence_get_for_resume”†”asbuh1hhj—Wubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj×Wh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj—Wubj)�”}”(hjh]”hŒ*”…”�”}”(hjåWh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj—WubjB)�”}”(hj(h]”hŒq”…”�”}”(hjòWh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj—Wubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj“Wubj¼)�”}”(hŒstruct xe_vm *vm”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj Xh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjXubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjXubh)�”}”(hhh]”jB)�”}”(hŒxe_vm”h]”hŒxe_vm”…”�”}”(hj(Xh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj%Xubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j*XŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j\WŒ)c.xe_exec_queue_last_fence_get_for_resume”†”asbuh1hhjXubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjFXh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjXubj)�”}”(hjh]”hŒ*”…”�”}”(hjTXh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjXubjB)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjaXh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjXubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj“Wubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhjWh²hh³j.Wh´M©ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahjWh²hh³j.Wh´M©ubah}”(h]”jWah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j.Wh´M©hjWh²hubjn)�”}”(hhh]”hÞ)�”}”(hŒGet last fence”h]”hŒGet last fence”…”�”}”(hj‹Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M©hjˆXh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjWh²hh³j.Wh´M©ubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�j£Xj‘j£Xj’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hXt**Parameters** ``struct xe_exec_queue *q`` The exec queue ``struct xe_vm *vm`` The VM the engine does a bind or exec for **Description** Get last fence, takes a ref. Only safe to be called in the context of resuming the hw engine group's long-running exec queue, when the group semaphore is held. **Return** last fence if not signaled, dma fence stub if signaled”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hj­Xh]”hŒ Parameters”…”�”}”(hj¯Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj«Xubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M­hj§Xubj¶)�”}”(hhh]”(j»)�”}”(hŒ+``struct xe_exec_queue *q`` The exec queue ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hjÌXh]”hŒstruct xe_exec_queue *q”…”�”}”(hjÎXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÊXubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MªhjÆXubjÝ)�”}”(hhh]”hÞ)�”}”(hŒThe exec queue”h]”hŒThe exec queue”…”�”}”(hjåXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jáXh´MªhjâXubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÆXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jáXh´MªhjÃXubj»)�”}”(hŒ?``struct xe_vm *vm`` The VM the engine does a bind or exec for ”h]”(jÁ)�”}”(hŒ``struct xe_vm *vm``”h]”jÇ)�”}”(hjYh]”hŒstruct xe_vm *vm”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjYubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M«hjÿXubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ)The VM the engine does a bind or exec for”h]”hŒ)The VM the engine does a bind or exec for”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jYh´M«hjYubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÿXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jYh´M«hjÃXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhj§XubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hj@Yh]”hŒ Description”…”�”}”(hjBYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj>Yubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M­hj§XubhÞ)�”}”(hŒŸGet last fence, takes a ref. Only safe to be called in the context of resuming the hw engine group's long-running exec queue, when the group semaphore is held.”h]”hŒ¡Get last fence, takes a ref. Only safe to be called in the context of resuming the hw engine group’s long-running exec queue, when the group semaphore is held.”…”�”}”(hjVYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M¬hj§XubhÞ)�”}”(hŒ **Return**”h]”j )�”}”(hjgYh]”hŒReturn”…”�”}”(hjiYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjeYubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M°hj§XubhÞ)�”}”(hŒ6last fence if not signaled, dma fence stub if signaled”h]”hŒ6last fence if not signaled, dma fence stub if signaled”…”�”}”(hj}Yh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M±hj§Xubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ)xe_exec_queue_last_fence_set (C function)”Œc.xe_exec_queue_last_fence_set”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒfvoid xe_exec_queue_last_fence_set (struct xe_exec_queue *q, struct xe_vm *vm, struct dma_fence *fence)”h]”j)�”}”(hŒevoid xe_exec_queue_last_fence_set(struct xe_exec_queue *q, struct xe_vm *vm, struct dma_fence *fence)”h]”(j~)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¬Yh²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hj¨Yh²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÄubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»Yh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj¨Yh²hh³jºYh´MÄubj<)�”}”(hŒxe_exec_queue_last_fence_set”h]”jB)�”}”(hŒxe_exec_queue_last_fence_set”h]”hŒxe_exec_queue_last_fence_set”…”�”}”(hjÍYh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjÉYubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hj¨Yh²hh³jºYh´MÄubj¶)�”}”(hŒD(struct xe_exec_queue *q, struct xe_vm *vm, struct dma_fence *fence)”h]”(j¼)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjéYh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjåYubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjöYh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjåYubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjZubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j ZŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõjÏYsbŒc.xe_exec_queue_last_fence_set”†”asbuh1hhjåYubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'Zh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjåYubj)�”}”(hjh]”hŒ*”…”�”}”(hj5Zh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjåYubjB)�”}”(hj(h]”hŒq”…”�”}”(hjBZh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjåYubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjáYubj¼)�”}”(hŒstruct xe_vm *vm”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjZZh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjVZubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjgZh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjVZubh)�”}”(hhh]”jB)�”}”(hŒxe_vm”h]”hŒxe_vm”…”�”}”(hjxZh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjuZubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jzZŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j#ZŒc.xe_exec_queue_last_fence_set”†”asbuh1hhjVZubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–Zh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjVZubj)�”}”(hjh]”hŒ*”…”�”}”(hj¤Zh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjVZubjB)�”}”(hŒvm”h]”hŒvm”…”�”}”(hj±Zh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjVZubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjáYubj¼)�”}”(hŒstruct dma_fence *fence”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjÊZh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjÆZubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj×Zh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjÆZubh)�”}”(hhh]”jB)�”}”(hŒ dma_fence”h]”hŒ dma_fence”…”�”}”(hjèZh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjåZubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jêZŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j#ZŒc.xe_exec_queue_last_fence_set”†”asbuh1hhjÆZubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjÆZubj)�”}”(hjh]”hŒ*”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjÆZubjB)�”}”(hŒfence”h]”hŒfence”…”�”}”(hj![h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjÆZubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hjáYubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhj¨Yh²hh³jºYh´MÄubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahj¤Yh²hh³jºYh´MÄubah}”(h]”jŸYah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³jºYh´MÄhj¡Yh²hubjn)�”}”(hhh]”hÞ)�”}”(hŒSet last fence”h]”hŒSet last fence”…”�”}”(hjK[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÄhjH[h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj¡Yh²hh³jºYh´MÄubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jc[j‘jc[j’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hXD**Parameters** ``struct xe_exec_queue *q`` The exec queue ``struct xe_vm *vm`` The VM the engine does a bind or exec for ``struct dma_fence *fence`` The fence **Description** Set the last fence for the engine. Increases reference count for fence, when closing engine xe_exec_queue_last_fence_put should be called.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hjm[h]”hŒ Parameters”…”�”}”(hjo[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjk[ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÈhjg[ubj¶)�”}”(hhh]”(j»)�”}”(hŒ+``struct xe_exec_queue *q`` The exec queue ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hjŒ[h]”hŒstruct xe_exec_queue *q”…”�”}”(hjŽ[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjŠ[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÅhj†[ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒThe exec queue”h]”hŒThe exec queue”…”�”}”(hj¥[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¡[h´MÅhj¢[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj†[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j¡[h´MÅhjƒ[ubj»)�”}”(hŒ?``struct xe_vm *vm`` The VM the engine does a bind or exec for ”h]”(jÁ)�”}”(hŒ``struct xe_vm *vm``”h]”jÇ)�”}”(hjÅ[h]”hŒstruct xe_vm *vm”…”�”}”(hjÇ[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÃ[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÆhj¿[ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ)The VM the engine does a bind or exec for”h]”hŒ)The VM the engine does a bind or exec for”…”�”}”(hjÞ[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÚ[h´MÆhjÛ[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj¿[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÚ[h´MÆhjƒ[ubj»)�”}”(hŒ&``struct dma_fence *fence`` The fence ”h]”(jÁ)�”}”(hŒ``struct dma_fence *fence``”h]”jÇ)�”}”(hjþ[h]”hŒstruct dma_fence *fence”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjü[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÇhjø[ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ The fence”h]”hŒ The fence”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j\h´MÇhj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjø[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j\h´MÇhjƒ[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhjg[ubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hj9\h]”hŒ Description”…”�”}”(hj;\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj7\ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÉhjg[ubhÞ)�”}”(hŒŠSet the last fence for the engine. Increases reference count for fence, when closing engine xe_exec_queue_last_fence_put should be called.”h]”hŒŠSet the last fence for the engine. Increases reference count for fence, when closing engine xe_exec_queue_last_fence_put should be called.”…”�”}”(hjO\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÈhjg[ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ3xe_exec_queue_tlb_inval_last_fence_put (C function)”Œ(c.xe_exec_queue_tlb_inval_last_fence_put”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒjvoid xe_exec_queue_tlb_inval_last_fence_put (struct xe_exec_queue *q, struct xe_vm *vm, unsigned int type)”h]”j)�”}”(hŒivoid xe_exec_queue_tlb_inval_last_fence_put(struct xe_exec_queue *q, struct xe_vm *vm, unsigned int type)”h]”(j~)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj~\h²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hjz\h²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M×ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�\h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjz\h²hh³jŒ\h´M×ubj<)�”}”(hŒ&xe_exec_queue_tlb_inval_last_fence_put”h]”jB)�”}”(hŒ&xe_exec_queue_tlb_inval_last_fence_put”h]”hŒ&xe_exec_queue_tlb_inval_last_fence_put”…”�”}”(hjŸ\h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj›\ubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hjz\h²hh³jŒ\h´M×ubj¶)�”}”(hŒ>(struct xe_exec_queue *q, struct xe_vm *vm, unsigned int type)”h]”(j¼)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj»\h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj·\ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÈ\h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj·\ubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hjÙ\h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjÖ\ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jÛ\Œmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõj¡\sbŒ(c.xe_exec_queue_tlb_inval_last_fence_put”†”asbuh1hhj·\ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjù\h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj·\ubj)�”}”(hjh]”hŒ*”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj·\ubjB)�”}”(hj(h]”hŒq”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj·\ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj³\ubj¼)�”}”(hŒstruct xe_vm *vm”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj,]h²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj(]ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9]h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj(]ubh)�”}”(hhh]”jB)�”}”(hŒxe_vm”h]”hŒxe_vm”…”�”}”(hjJ]h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjG]ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jL]Œmodname”NŒ classname”Njùjü)�”}”jÿ]”jõ\Œ(c.xe_exec_queue_tlb_inval_last_fence_put”†”asbuh1hhj(]ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh]h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj(]ubj)�”}”(hjh]”hŒ*”…”�”}”(hjv]h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj(]ubjB)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjƒ]h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj(]ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj³\ubj¼)�”}”(hŒunsigned int type”h]”(j~)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjœ]h²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hj˜]ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjª]h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj˜]ubj~)�”}”(hŒint”h]”hŒint”…”�”}”(hj¸]h²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hj˜]ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÆ]h²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj˜]ubjB)�”}”(hŒtype”h]”hŒtype”…”�”}”(hjÔ]h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj˜]ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj³\ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhjz\h²hh³jŒ\h´M×ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahjv\h²hh³jŒ\h´M×ubah}”(h]”jq\ah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³jŒ\h´M×hjs\h²hubjn)�”}”(hhh]”hÞ)�”}”(hŒ'Drop ref to last TLB invalidation fence”h]”hŒ'Drop ref to last TLB invalidation fence”…”�”}”(hjþ]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M×hjû]h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjs\h²hh³jŒ\h´M×ubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�j^j‘j^j’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hŒª**Parameters** ``struct xe_exec_queue *q`` The exec queue ``struct xe_vm *vm`` The VM the engine does a bind for ``unsigned int type`` Either primary or media GT”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hj ^h]”hŒ Parameters”…”�”}”(hj"^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÛhj^ubj¶)�”}”(hhh]”(j»)�”}”(hŒ+``struct xe_exec_queue *q`` The exec queue ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hj?^h]”hŒstruct xe_exec_queue *q”…”�”}”(hjA^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj=^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MØhj9^ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒThe exec queue”h]”hŒThe exec queue”…”�”}”(hjX^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jT^h´MØhjU^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj9^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jT^h´MØhj6^ubj»)�”}”(hŒ7``struct xe_vm *vm`` The VM the engine does a bind for ”h]”(jÁ)�”}”(hŒ``struct xe_vm *vm``”h]”jÇ)�”}”(hjx^h]”hŒstruct xe_vm *vm”…”�”}”(hjz^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjv^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÙhjr^ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ!The VM the engine does a bind for”h]”hŒ!The VM the engine does a bind for”…”�”}”(hj‘^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j�^h´MÙhjŽ^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjr^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j�^h´MÙhj6^ubj»)�”}”(hŒ0``unsigned int type`` Either primary or media GT”h]”(jÁ)�”}”(hŒ``unsigned int type``”h]”jÇ)�”}”(hj±^h]”hŒunsigned int type”…”�”}”(hj³^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj¯^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÛhj«^ubjÝ)�”}”(hhh]”hÞ)�”}”(hŒEither primary or media GT”h]”hŒEither primary or media GT”…”�”}”(hjÊ^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÚhjÇ^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj«^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÆ^h´MÛhj6^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhj^ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ(struct xe_exec_queue *q, struct xe_vm *vm, unsigned int type)”h]”(j¼)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hj�ah²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj‹aubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœah²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj‹aubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hj­ah²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjªaubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j¯aŒmodname”NŒ classname”Njùjü)�”}”jÿ]”jPaŒ(c.xe_exec_queue_tlb_inval_last_fence_get”†”asbuh1hhj‹aubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjËah²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj‹aubj)�”}”(hjh]”hŒ*”…”�”}”(hjÙah²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj‹aubjB)�”}”(hj(h]”hŒq”…”�”}”(hjæah²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj‹aubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj‡aubj¼)�”}”(hŒstruct xe_vm *vm”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjþah²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjúaubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj bh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjúaubh)�”}”(hhh]”jB)�”}”(hŒxe_vm”h]”hŒxe_vm”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjbubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jbŒmodname”NŒ classname”Njùjü)�”}”jÿ]”jPaŒ(c.xe_exec_queue_tlb_inval_last_fence_get”†”asbuh1hhjúaubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:bh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjúaubj)�”}”(hjh]”hŒ*”…”�”}”(hjHbh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjúaubjB)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjUbh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjúaubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj‡aubj¼)�”}”(hŒunsigned int type”h]”(j~)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjnbh²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hjjbubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|bh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjjbubj~)�”}”(hŒint”h]”hŒint”…”�”}”(hjŠbh²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hjjbubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜bh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjjbubjB)�”}”(hŒtype”h]”hŒtype”…”�”}”(hj¦bh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjjbubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj‡aubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhjah²hh³j"ah´Múubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahj ah²hh³j"ah´Múubah}”(h]”jaah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j"ah´Múhj ah²hubjn)�”}”(hhh]”hÞ)�”}”(hŒ#Get last fence for TLB invalidation”h]”hŒ#Get last fence for TLB invalidation”…”�”}”(hjÐbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MúhjÍbh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj ah²hh³j"ah´Múubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jèbj‘jèbj’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hX**Parameters** ``struct xe_exec_queue *q`` The exec queue ``struct xe_vm *vm`` The VM the engine does a bind for ``unsigned int type`` Either primary or media GT **Description** Get last fence, takes a ref **Return** last fence if not signaled, dma fence stub if signaled”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hjòbh]”hŒ Parameters”…”�”}”(hjôbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjðbubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mþhjìbubj¶)�”}”(hhh]”(j»)�”}”(hŒ+``struct xe_exec_queue *q`` The exec queue ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hjch]”hŒstruct xe_exec_queue *q”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjcubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mûhj cubjÝ)�”}”(hhh]”hÞ)�”}”(hŒThe exec queue”h]”hŒThe exec queue”…”�”}”(hj*ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j&ch´Mûhj'cubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj cubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j&ch´Mûhjcubj»)�”}”(hŒ7``struct xe_vm *vm`` The VM the engine does a bind for ”h]”(jÁ)�”}”(hŒ``struct xe_vm *vm``”h]”jÇ)�”}”(hjJch]”hŒstruct xe_vm *vm”…”�”}”(hjLch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjHcubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MühjDcubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ!The VM the engine does a bind for”h]”hŒ!The VM the engine does a bind for”…”�”}”(hjcch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j_ch´Mühj`cubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjDcubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j_ch´Mühjcubj»)�”}”(hŒ1``unsigned int type`` Either primary or media GT ”h]”(jÁ)�”}”(hŒ``unsigned int type``”h]”jÇ)�”}”(hjƒch]”hŒunsigned int type”…”�”}”(hj…ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj�cubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”•aUh´Mýhj}cubjÝ)�”}”(hhh]”hÞ)�”}”(hŒEither primary or media GT”h]”hŒEither primary or media GT”…”�”}”(hjœch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j˜ch´Mýhj™cubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj}cubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j˜ch´Mýhjcubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhjìbubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hj¾ch]”hŒ Description”…”�”}”(hjÀch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj¼cubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MÿhjìbubhÞ)�”}”(hŒGet last fence, takes a ref”h]”hŒGet last fence, takes a ref”…”�”}”(hjÔch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MþhjìbubhÞ)�”}”(hŒ **Return**”h]”j )�”}”(hjåch]”hŒReturn”…”�”}”(hjçch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjãcubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MhjìbubhÞ)�”}”(hŒ6last fence if not signaled, dma fence stub if signaled”h]”hŒ6last fence if not signaled, dma fence stub if signaled”…”�”}”(hjûch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mhjìbubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ3xe_exec_queue_tlb_inval_last_fence_set (C function)”Œ(c.xe_exec_queue_tlb_inval_last_fence_set”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒƒvoid xe_exec_queue_tlb_inval_last_fence_set (struct xe_exec_queue *q, struct xe_vm *vm, struct dma_fence *fence, unsigned int type)”h]”j)�”}”(hŒ‚void xe_exec_queue_tlb_inval_last_fence_set(struct xe_exec_queue *q, struct xe_vm *vm, struct dma_fence *fence, unsigned int type)”h]”(j~)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj*dh²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hj&dh²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9dh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj&dh²hh³j8dh´Mubj<)�”}”(hŒ&xe_exec_queue_tlb_inval_last_fence_set”h]”jB)�”}”(hŒ&xe_exec_queue_tlb_inval_last_fence_set”h]”hŒ&xe_exec_queue_tlb_inval_last_fence_set”…”�”}”(hjKdh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjGdubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hj&dh²hh³j8dh´Mubj¶)�”}”(hŒW(struct xe_exec_queue *q, struct xe_vm *vm, struct dma_fence *fence, unsigned int type)”h]”(j¼)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjgdh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjcdubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjtdh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjcdubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hj…dh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj‚dubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”j‡dŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõjMdsbŒ(c.xe_exec_queue_tlb_inval_last_fence_set”†”asbuh1hhjcdubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥dh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjcdubj)�”}”(hjh]”hŒ*”…”�”}”(hj³dh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjcdubjB)�”}”(hj(h]”hŒq”…”�”}”(hjÀdh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjcdubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj_dubj¼)�”}”(hŒstruct xe_vm *vm”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjØdh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjÔdubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjådh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjÔdubh)�”}”(hhh]”jB)�”}”(hŒxe_vm”h]”hŒxe_vm”…”�”}”(hjödh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjódubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jødŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j¡dŒ(c.xe_exec_queue_tlb_inval_last_fence_set”†”asbuh1hhjÔdubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjÔdubj)�”}”(hjh]”hŒ*”…”�”}”(hj"eh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjÔdubjB)�”}”(hŒvm”h]”hŒvm”…”�”}”(hj/eh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjÔdubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj_dubj¼)�”}”(hŒstruct dma_fence *fence”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjHeh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhjDeubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjUeh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjDeubh)�”}”(hhh]”jB)�”}”(hŒ dma_fence”h]”hŒ dma_fence”…”�”}”(hjfeh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjceubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jheŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j¡dŒ(c.xe_exec_queue_tlb_inval_last_fence_set”†”asbuh1hhjDeubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„eh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hjDeubj)�”}”(hjh]”hŒ*”…”�”}”(hj’eh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjDeubjB)�”}”(hŒfence”h]”hŒfence”…”�”}”(hjŸeh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjDeubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj_dubj¼)�”}”(hŒunsigned int type”h]”(j~)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj¸eh²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hj´eubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÆeh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj´eubj~)�”}”(hŒint”h]”hŒint”…”�”}”(hjÔeh²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hj´eubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâeh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj´eubjB)�”}”(hŒtype”h]”hŒtype”…”�”}”(hjðeh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj´eubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj_dubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhj&dh²hh³j8dh´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahj"dh²hh³j8dh´Mubah}”(h]”jdah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j8dh´Mhjdh²hubjn)�”}”(hhh]”hÞ)�”}”(hŒ#Set last fence for TLB invalidation”h]”hŒ#Set last fence for TLB invalidation”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mhjfh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjdh²hh³j8dh´Mubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�j2fj‘j2fj’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hX•**Parameters** ``struct xe_exec_queue *q`` The exec queue ``struct xe_vm *vm`` The VM the engine does a bind for ``struct dma_fence *fence`` The fence ``unsigned int type`` Either primary or media GT **Description** Set the last fence for the tlb invalidation type on the queue. Increases reference count for fence, when closing queue xe_exec_queue_tlb_inval_last_fence_put should be called.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj:fubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mhj6fubj¶)�”}”(hhh]”(j»)�”}”(hŒ+``struct xe_exec_queue *q`` The exec queue ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hj[fh]”hŒstruct xe_exec_queue *q”…”�”}”(hj]fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjYfubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MhjUfubjÝ)�”}”(hhh]”hÞ)�”}”(hŒThe exec queue”h]”hŒThe exec queue”…”�”}”(hjtfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jpfh´Mhjqfubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjUfubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jpfh´MhjRfubj»)�”}”(hŒ7``struct xe_vm *vm`` The VM the engine does a bind for ”h]”(jÁ)�”}”(hŒ``struct xe_vm *vm``”h]”jÇ)�”}”(hj”fh]”hŒstruct xe_vm *vm”…”�”}”(hj–fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj’fubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MhjŽfubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ!The VM the engine does a bind for”h]”hŒ!The VM the engine does a bind for”…”�”}”(hj­fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j©fh´Mhjªfubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjŽfubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³j©fh´MhjRfubj»)�”}”(hŒ&``struct dma_fence *fence`` The fence ”h]”(jÁ)�”}”(hŒ``struct dma_fence *fence``”h]”jÇ)�”}”(hjÍfh]”hŒstruct dma_fence *fence”…”�”}”(hjÏfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjËfubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MhjÇfubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ The fence”h]”hŒ The fence”…”�”}”(hjæfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jâfh´Mhjãfubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÇfubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jâfh´MhjRfubj»)�”}”(hŒ1``unsigned int type`` Either primary or media GT ”h]”(jÁ)�”}”(hŒ``unsigned int type``”h]”jÇ)�”}”(hjgh]”hŒunsigned int type”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjgubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´MhjgubjÝ)�”}”(hhh]”hÞ)�”}”(hŒEither primary or media GT”h]”hŒEither primary or media GT”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jgh´Mhjgubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjgubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jgh´MhjRfubeh}”(h]”h ]”h"]”h$]”h&]”uh1jµhj6fubhÞ)�”}”(hŒ**Description**”h]”j )�”}”(hjAgh]”hŒ Description”…”�”}”(hjCgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj?gubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M hj6fubhÞ)�”}”(hŒ¯Set the last fence for the tlb invalidation type on the queue. Increases reference count for fence, when closing queue xe_exec_queue_tlb_inval_last_fence_put should be called.”h]”hŒ¯Set the last fence for the tlb invalidation type on the queue. Increases reference count for fence, when closing queue xe_exec_queue_tlb_inval_last_fence_put should be called.”…”�”}”(hjWgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´Mhj6fubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j•hjåh²hh³Nh´Nubj÷)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ/xe_exec_queue_contexts_hwsp_rebase (C function)”Œ$c.xe_exec_queue_contexts_hwsp_rebase”hNt”auh1jöhjåh²hh³Nh´Nubj)�”}”(hhh]”(j )�”}”(hŒOint xe_exec_queue_contexts_hwsp_rebase (struct xe_exec_queue *q, void *scratch)”h]”j)�”}”(hŒNint xe_exec_queue_contexts_hwsp_rebase(struct xe_exec_queue *q, void *scratch)”h]”(j~)�”}”(hŒint”h]”hŒint”…”�”}”(hj†gh²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hj‚gh²hh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M5ubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj•gh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj‚gh²hh³j”gh´M5ubj<)�”}”(hŒ"xe_exec_queue_contexts_hwsp_rebase”h]”jB)�”}”(hŒ"xe_exec_queue_contexts_hwsp_rebase”h]”hŒ"xe_exec_queue_contexts_hwsp_rebase”…”�”}”(hj§gh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj£gubah}”(h]”h ]”(jTjUeh"]”h$]”h&]”hÅhÆuh1j;hj‚gh²hh³j”gh´M5ubj¶)�”}”(hŒ((struct xe_exec_queue *q, void *scratch)”h]”(j¼)�”}”(hŒstruct xe_exec_queue *q”h]”(j)�”}”(hj½h]”hŒstruct”…”�”}”(hjÃgh²hh³Nh´Nubah}”(h]”h ]”j%ah"]”h$]”h&]”uh1jhj¿gubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐgh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj¿gubh)�”}”(hhh]”jB)�”}”(hŒ xe_exec_queue”h]”hŒ xe_exec_queue”…”�”}”(hjágh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhjÞgubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŠŒreftype”jõŒ reftarget”jãgŒmodname”NŒ classname”Njùjü)�”}”jÿ]”j)�”}”jõj©gsbŒ$c.xe_exec_queue_contexts_hwsp_rebase”†”asbuh1hhj¿gubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj¿gubj)�”}”(hjh]”hŒ*”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj¿gubjB)�”}”(hj(h]”hŒq”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj¿gubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj»gubj¼)�”}”(hŒ void *scratch”h]”(j~)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj4hh²hh³Nh´Nubah}”(h]”h ]”jŠah"]”h$]”h&]”uh1j}hj0hubj+)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBhh²hh³Nh´Nubah}”(h]”h ]”j7ah"]”h$]”h&]”uh1j*hj0hubj)�”}”(hjh]”hŒ*”…”�”}”(hjPhh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj0hubjB)�”}”(hŒscratch”h]”hŒscratch”…”�”}”(hj]hh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1jAhj0hubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j»hj»gubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jµhj‚gh²hh³j”gh´M5ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj_ˆuh1jj`jahj~gh²hh³j”gh´M5ubah}”(h]”jygah ]”(jejfeh"]”h$]”h&]”jjˆjk)jlhuh1j h³j”gh´M5hj{gh²hubjn)�”}”(hhh]”hÞ)�”}”(hŒ6Re-compute GGTT references within all LRCs of a queue.”h]”hŒ6Re-compute GGTT references within all LRCs of a queue.”…”�”}”(hj‡hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M5hj„hh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj{gh²hh³j”gh´M5ubeh}”(h]”h ]”(jŠŒfunction”eh"]”h$]”h&]”j�jŠj�jŸhj‘jŸhj’‰j“‰j”‰uh1jh²hhjåh³Nh´Nubj–)�”}”(hŒñ**Parameters** ``struct xe_exec_queue *q`` the :c:type:`xe_exec_queue` struct instance containing target LRCs ``void *scratch`` scratch buffer to be used as temporary storage **Return** zero on success, negative error code on failure”h]”(hÞ)�”}”(hŒ**Parameters**”h]”j )�”}”(hj©hh]”hŒ Parameters”…”�”}”(hj«hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj§hubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M9hj£hubj¶)�”}”(hhh]”(j»)�”}”(hŒ_``struct xe_exec_queue *q`` the :c:type:`xe_exec_queue` struct instance containing target LRCs ”h]”(jÁ)�”}”(hŒ``struct xe_exec_queue *q``”h]”jÇ)�”}”(hjÈhh]”hŒstruct xe_exec_queue *q”…”�”}”(hjÊhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÆhubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M7hjÂhubjÝ)�”}”(hhh]”hÞ)�”}”(hŒBthe :c:type:`xe_exec_queue` struct instance containing target LRCs”h]”(hŒthe ”…”�”}”(hjáhh²hh³Nh´Nubh)�”}”(hŒ:c:type:`xe_exec_queue`”h]”jÇ)�”}”(hjëhh]”hŒ xe_exec_queue”…”�”}”(hjíhh²hh³Nh´Nubah}”(h]”h ]”(j­jŠŒc-type”eh"]”h$]”h&]”uh1jÆhjéhubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jºŒ refdomain”jŠŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jùjü)�”}”jÿ]”sbjÀŒ xe_exec_queue”uh1hh³jÝhh´M7hjáhubhŒ' struct instance containing target LRCs”…”�”}”(hjáhh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÝhh´M7hjÞhubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÂhubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºh³jÝhh´M7hj¿hubj»)�”}”(hŒA``void *scratch`` scratch buffer to be used as temporary storage ”h]”(jÁ)�”}”(hŒ``void *scratch``”h]”jÇ)�”}”(hj'ih]”hŒ void *scratch”…”�”}”(hj)ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj%iubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀh³Œg/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_exec_queue:33: ./drivers/gpu/drm/xe/xe_exec_queue.c”h´M8hj!iubjÝ)�”}”(hhh]”hÞ)�”}”(hŒ.scratch buffer to be used as temporary storage”h]”hŒ.scratch buffer to be used as temporary storage”…”�”}”(hj@ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jjŒline”MèŒsource”jAjuh1j#jhjvubj$j)�”}”(hhh]”hÞ)�”}”(hŒeUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.”h]”hŒgUnexpected possible title overline or transition. Treating it as ordinary text because it’s so short.”…”�”}”(hj`jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝhj]jubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”j>jŒline”MèŒsource”jAjuh1j#jhj�ubeŒtransform_messages”]”j$j)�”}”(hhh]”hÞ)�”}”(hhh]”hŒEHyperlink target "multi-queue-group-guc-interface" is not referenced.”…”�”}”hj}jsbah}”(h]”h ]”h"]”h$]”h&]”uh1hÝhjzjubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”j>jŒsource”hÇŒline”Kuh1j#jubaŒ transformer”NŒ include_log”]”Œ decoration”Nh²hub.