€•³—Œ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_debugging”Œ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_debugging”Œ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_debugging”Œ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_debugging”Œ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_debugging”Œ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_debugging”Œ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_debugging”Œ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³ŒA/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging.rst”h´KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ Debugging”h]”hŒ Debugging”…””}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒtarget”“”)”}”(hŒ.. _Xe Asserts:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œ xe-asserts”uh1hÝh´KhhÊh²hh³NŒ referenced”KubhŒ paragraph”“”)”}”(hŒ**Xe Asserts**”h]”hŒstrong”“”)”}”(hhðh]”hŒ Xe Asserts”…””}”(hhôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hòhhîubah}”(h]”hêah ]”h"]”Œ xe asserts”ah$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´KhhÊh²hŒexpect_referenced_by_name”}”jhßsŒexpect_referenced_by_id”}”hêhßshëKubhí)”}”(hŒ°While Xe driver aims to be simpler than legacy i915 driver it is still complex enough that some changes introduced while adding new functionality could break the existing code.”h]”hŒ°While Xe driver aims to be simpler than legacy i915 driver it is still complex enough that some changes introduced while adding new functionality could break the existing code.”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´KhhÊh²hubhí)”}”(hŒâAdding :c:type:`drm_WARN` or :c:type:`drm_err` to catch unwanted programming usage could lead to undesired increased driver footprint and may impact production driver performance as this additional code will be always present.”h]”(hŒAdding ”…””}”(hjh²hh³Nh´Nubh)”}”(hŒ:c:type:`drm_WARN`”h]”hŒliteral”“”)”}”(hj&h]”hŒdrm_WARN”…””}”(hj*h²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œc”Œc-type”eh"]”h$]”h&]”uh1j(hj$ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œgpu/xe/xe_debugging”Œ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰Œ reftarget”Œdrm_WARN”uh1hh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´KhjubhŒ or ”…””}”(hjh²hh³Nh´Nubh)”}”(hŒ:c:type:`drm_err`”h]”j))”}”(hjPh]”hŒdrm_err”…””}”(hjRh²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hjNubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jGŒdrm_err”uh1hh³jIh´KhjubhŒ´ to catch unwanted programming usage could lead to undesired increased driver footprint and may impact production driver performance as this additional code will be always present.”…””}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jIh´KhhÊh²hubhí)”}”(hXfTo allow annotate functions with additional detailed debug checks to assert that all prerequisites are satisfied, without worrying about footprint or performance penalty on production builds where all potential misuses introduced during code integration were already fixed, we introduce family of Xe assert macros that try to follow classic assert() utility:”h]”hXfTo allow annotate functions with additional detailed debug checks to assert that all prerequisites are satisfied, without worrying about footprint or performance penalty on production builds where all potential misuses introduced during code integration were already fixed, we introduce family of Xe assert macros that try to follow classic assert() utility:”…””}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´KhhÊh²hubhŒ block_quote”“”)”}”(hŒ2* xe_assert() * xe_tile_assert() * xe_gt_assert() ”h]”hŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒ xe_assert()”h]”hí)”}”(hj•h]”hŒ xe_assert()”…””}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K hj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjŽubj’)”}”(hŒxe_tile_assert()”h]”hí)”}”(hj­h]”hŒxe_tile_assert()”…””}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K!hj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjŽubj’)”}”(hŒxe_gt_assert() ”h]”hí)”}”(hŒxe_gt_assert()”h]”hŒxe_gt_assert()”…””}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K"hjÃubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjŽubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1jŒh³j¤h´K hjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1j†h³j¤h´K hhÊh²hubhí)”}”(hX#These macros are implemented on top of :c:type:`drm_WARN`, but unlikely to the origin, warning is triggered when provided condition is false. Additionally all above assert macros cannot be used in expressions or as a condition, since underlying code will be compiled out on non-debug builds.”h]”(hŒ'These macros are implemented on top of ”…””}”(hjêh²hh³Nh´Nubh)”}”(hŒ:c:type:`drm_WARN`”h]”j))”}”(hjôh]”hŒdrm_WARN”…””}”(hjöh²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hjòubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jGŒdrm_WARN”uh1hh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K$hjêubhŒê, but unlikely to the origin, warning is triggered when provided condition is false. Additionally all above assert macros cannot be used in expressions or as a condition, since underlying code will be compiled out on non-debug builds.”…””}”(hjêh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jh´K$hhÊh²hubhí)”}”(hŒ¾Note that these macros are not intended for use to cover known gaps in the implementation; for such cases use regular :c:type:`drm_WARN` or :c:type:`drm_err` and provide valid safe fallback.”h]”(hŒvNote that these macros are not intended for use to cover known gaps in the implementation; for such cases use regular ”…””}”(hjh²hh³Nh´Nubh)”}”(hŒ:c:type:`drm_WARN`”h]”j))”}”(hj&h]”hŒdrm_WARN”…””}”(hj(h²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hj$ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jGŒdrm_WARN”uh1hh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K)hjubhŒ or ”…””}”(hjh²hh³Nh´Nubh)”}”(hŒ:c:type:`drm_err`”h]”j))”}”(hjJh]”hŒdrm_err”…””}”(hjLh²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hjHubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jGŒdrm_err”uh1hh³jCh´K)hjubhŒ! and provide valid safe fallback.”…””}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jCh´K)hhÊh²hubhí)”}”(hŒïAlso in cases where performance or footprint is not an issue, developers should continue to use the regular :c:type:`drm_WARN` or :c:type:`drm_err` to ensure that bug reports from production builds will contain meaningful diagnostics data.”h]”(hŒlAlso in cases where performance or footprint is not an issue, developers should continue to use the regular ”…””}”(hjqh²hh³Nh´Nubh)”}”(hŒ:c:type:`drm_WARN`”h]”j))”}”(hj{h]”hŒdrm_WARN”…””}”(hj}h²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hjyubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jGŒdrm_WARN”uh1hh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K-hjqubhŒ or ”…””}”(hjqh²hh³Nh´Nubh)”}”(hŒ:c:type:`drm_err`”h]”j))”}”(hjŸh]”hŒdrm_err”…””}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jGŒdrm_err”uh1hh³j˜h´K-hjqubhŒ\ to ensure that bug reports from production builds will contain meaningful diagnostics data.”…””}”(hjqh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j˜h´K-hhÊh²hubhí)”}”(hŒIBelow code shows how asserts could help in debug to catch unplanned use::”h]”hŒHBelow code shows how asserts could help in debug to catch unplanned use:”…””}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K1hhÊh²hubhŒ literal_block”“”)”}”(hX|static void one_igfx(struct xe_device *xe) { xe_assert(xe, xe->info.is_dgfx == false); xe_assert(xe, xe->info.tile_count == 1); } static void two_dgfx(struct xe_device *xe) { xe_assert(xe, xe->info.is_dgfx); xe_assert(xe, xe->info.tile_count == 2); } void foo(struct xe_device *xe) { if (xe->info.dgfx) return two_dgfx(xe); return one_igfx(xe); } void bar(struct xe_device *xe) { if (drm_WARN_ON(xe->drm, xe->info.tile_count > 2)) return; if (xe->info.tile_count == 2) return two_dgfx(xe); return one_igfx(xe); }”h]”hX|static void one_igfx(struct xe_device *xe) { xe_assert(xe, xe->info.is_dgfx == false); xe_assert(xe, xe->info.tile_count == 1); } static void two_dgfx(struct xe_device *xe) { xe_assert(xe, xe->info.is_dgfx); xe_assert(xe, xe->info.tile_count == 2); } void foo(struct xe_device *xe) { if (xe->info.dgfx) return two_dgfx(xe); return one_igfx(xe); } void bar(struct xe_device *xe) { if (drm_WARN_ON(xe->drm, xe->info.tile_count > 2)) return; if (xe->info.tile_count == 2) return two_dgfx(xe); return one_igfx(xe); }”…””}”hj×sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÕh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K3hhÊh²hubhŒindex”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œxe_assert (C macro)”Œ c.xe_assert”hNt”auh1jæhhÊh²hh³Nh´NubhŒdesc”“”)”}”(hhh]”(hŒdesc_signature”“”)”}”(hŒ xe_assert”h]”hŒdesc_signature_line”“”)”}”(hŒ xe_assert”h]”hŒ desc_name”“”)”}”(hŒ xe_assert”h]”hŒ desc_sig_name”“”)”}”(hjh]”hŒ xe_assert”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jhj ubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1jhjh²hh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K`ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1jŒsphinx_line_type”Œ declarator”hjþh²hh³j&h´K`ubah}”(h]”jõah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jüh³j&h´K`hjùh²hubhŒ desc_content”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j;hjùh²hh³j&h´K`ubeh}”(h]”h ]”(j5Œmacro”eh"]”h$]”h&]”Œdomain”j5Œobjtype”jIŒdesctype”jIŒnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1j÷h²hhhÊh³Nh´Nubhí)”}”(hŒ``xe_assert (xe, condition)``”h]”j))”}”(hjUh]”hŒxe_assert (xe, condition)”…””}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjSubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´KbhhÊh²hubj‡)”}”(hŒ+warn if condition is false when debugging. ”h]”hí)”}”(hŒ*warn if condition is false when debugging.”h]”hŒ*warn if condition is false when debugging.”…””}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K`hjkubah}”(h]”h ]”h"]”h$]”h&]”uh1j†h³j}h´K`hhÊh²hubhŒ container”“”)”}”(hX=**Parameters** ``xe`` the :c:type:`struct xe_device ` pointer to which :c:type:`condition` applies ``condition`` condition to check **Description** xe_assert() uses :c:type:`drm_WARN` to emit a warning and print additional information that could be read from the :c:type:`xe` pointer if provided :c:type:`condition` is false. Contrary to :c:type:`drm_WARN`, xe_assert() is effective only on debug builds (:c:type:`CONFIG_DRM_XE_DEBUG` must be enabled) and cannot be used in expressions or as a condition. See `Xe Asserts`_ for general usage guidelines.”h]”(hí)”}”(hŒ**Parameters**”h]”hó)”}”(hjŒh]”hŒ Parameters”…””}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hòhjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´Kdhj†ubhŒdefinition_list”“”)”}”(hhh]”(hŒdefinition_list_item”“”)”}”(hŒ_``xe`` the :c:type:`struct xe_device ` pointer to which :c:type:`condition` applies ”h]”(hŒterm”“”)”}”(hŒ``xe``”h]”j))”}”(hj±h]”hŒxe”…””}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1j­h³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´Kahj©ubhŒ definition”“”)”}”(hhh]”hí)”}”(hŒWthe :c:type:`struct xe_device ` pointer to which :c:type:`condition` applies”h]”(hŒthe ”…””}”(hjÌh²hh³Nh´Nubh)”}”(hŒ&:c:type:`struct xe_device `”h]”j))”}”(hjÖh]”hŒstruct xe_device”…””}”(hjØh²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hjÔubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰Œ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)”}”Œdata”]”sbjGŒ xe_device”uh1hh³jÆh´KahjÌubhŒ pointer to which ”…””}”(hjÌh²hh³Nh´Nubh)”}”(hŒ:c:type:`condition`”h]”j))”}”(hjh]”hŒ condition”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hjÿubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jòjöjGŒ condition”uh1hh³jÆh´KahjÌubhŒ applies”…””}”(hjÌh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jÆh´KahjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇhj©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j§h³jÆh´Kahj¤ubj¨)”}”(hŒ!``condition`` condition to check ”h]”(j®)”}”(hŒ ``condition``”h]”j))”}”(hj:h]”hŒ condition”…””}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j­h³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´Kbhj4ubjÈ)”}”(hhh]”hí)”}”(hŒcondition to check”h]”hŒcondition to check”…””}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jOh´KbhjPubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇhj4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j§h³jOh´Kbhj¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¢hj†ubhí)”}”(hŒ**Description**”h]”hó)”}”(hjuh]”hŒ Description”…””}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hòhjsubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´Kdhj†ubhí)”}”(hŒ±xe_assert() uses :c:type:`drm_WARN` to emit a warning and print additional information that could be read from the :c:type:`xe` pointer if provided :c:type:`condition` is false.”h]”(hŒxe_assert() uses ”…””}”(hj‹h²hh³Nh´Nubh)”}”(hŒ:c:type:`drm_WARN`”h]”j))”}”(hj•h]”hŒdrm_WARN”…””}”(hj—h²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hj“ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jòjöjGŒdrm_WARN”uh1hh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´Kchj‹ubhŒP to emit a warning and print additional information that could be read from the ”…””}”(hj‹h²hh³Nh´Nubh)”}”(hŒ :c:type:`xe`”h]”j))”}”(hj¹h]”hŒxe”…””}”(hj»h²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hj·ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jòjöjGŒxe”uh1hh³j²h´Kchj‹ubhŒ pointer if provided ”…””}”(hj‹h²hh³Nh´Nubh)”}”(hŒ:c:type:`condition`”h]”j))”}”(hjÜh]”hŒ condition”…””}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hjÚubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jòjöjGŒ condition”uh1hh³j²h´Kchj‹ubhŒ is false.”…””}”(hj‹h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j²h´Kchj†ubhí)”}”(hŒ²Contrary to :c:type:`drm_WARN`, xe_assert() is effective only on debug builds (:c:type:`CONFIG_DRM_XE_DEBUG` must be enabled) and cannot be used in expressions or as a condition.”h]”(hŒ Contrary to ”…””}”(hjh²hh³Nh´Nubh)”}”(hŒ:c:type:`drm_WARN`”h]”j))”}”(hj h]”hŒdrm_WARN”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hj ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jòjöjGŒdrm_WARN”uh1hh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´KfhjubhŒ1, xe_assert() is effective only on debug builds (”…””}”(hjh²hh³Nh´Nubh)”}”(hŒ:c:type:`CONFIG_DRM_XE_DEBUG`”h]”j))”}”(hj1h]”hŒCONFIG_DRM_XE_DEBUG”…””}”(hj3h²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hj/ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jòjöjGŒCONFIG_DRM_XE_DEBUG”uh1hh³j*h´KfhjubhŒF must be enabled) and cannot be used in expressions or as a condition.”…””}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j*h´Kfhj†ubhí)”}”(hŒ/See `Xe Asserts`_ for general usage guidelines.”h]”(hŒSee ”…””}”(hjXh²hh³Nh´NubhŒ reference”“”)”}”(hŒ `Xe Asserts`_”h]”hŒ Xe Asserts”…””}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ Xe Asserts”héhêuh1j`hjXŒresolved”KubhŒ for general usage guidelines.”…””}”(hjXh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´Kjhj†ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j„hhÊh²hh³Nh´Nubjç)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jóŒxe_tile_assert (C macro)”Œc.xe_tile_assert”hNt”auh1jæhhÊh²hh³Nh´Nubjø)”}”(hhh]”(jý)”}”(hŒxe_tile_assert”h]”j)”}”(hŒxe_tile_assert”h]”j )”}”(hŒxe_tile_assert”h]”j)”}”(hj˜h]”hŒxe_tile_assert”…””}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjžubah}”(h]”h ]”(j!j"eh"]”h$]”h&]”hÅhÆuh1jhjšh²hh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K‚ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆj-ˆuh1jj.j/hj–h²hh³jµh´K‚ubah}”(h]”j‘ah ]”(j3j4eh"]”h$]”h&]”j8ˆj9)j:huh1jüh³jµh´K‚hj“h²hubj<)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j;hj“h²hh³jµh´K‚ubeh}”(h]”h ]”(j5Œmacro”eh"]”h$]”h&]”jMj5jNjÎjOjÎjP‰jQ‰jR‰uh1j÷h²hhhÊh³Nh´Nubhí)”}”(hŒ$``xe_tile_assert (tile, condition)``”h]”j))”}”(hjÔh]”hŒ xe_tile_assert (tile, condition)”…””}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K„hhÊh²hubj‡)”}”(hŒ+warn if condition is false when debugging. ”h]”hí)”}”(hŒ*warn if condition is false when debugging.”h]”hŒ*warn if condition is false when debugging.”…””}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K‚hjêubah}”(h]”h ]”h"]”h$]”h&]”uh1j†h³jüh´K‚hhÊh²hubj…)”}”(hXG**Parameters** ``tile`` the :c:type:`struct xe_tile ` pointer to which :c:type:`condition` applies ``condition`` condition to check **Description** xe_tile_assert() uses :c:type:`drm_WARN` to emit a warning and print additional information that could be read from the :c:type:`tile` pointer if provided :c:type:`condition` is false. Contrary to :c:type:`drm_WARN`, xe_tile_assert() is effective only on debug builds (:c:type:`CONFIG_DRM_XE_DEBUG` must be enabled) and cannot be used in expressions or as a condition. See `Xe Asserts`_ for general usage guidelines.”h]”(hí)”}”(hŒ**Parameters**”h]”hó)”}”(hj h]”hŒ Parameters”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hòhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K†hjubj£)”}”(hhh]”(j¨)”}”(hŒ]``tile`` the :c:type:`struct xe_tile ` pointer to which :c:type:`condition` applies ”h]”(j®)”}”(hŒ``tile``”h]”j))”}”(hj(h]”hŒtile”…””}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j­h³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´Kƒhj"ubjÈ)”}”(hhh]”hí)”}”(hŒSthe :c:type:`struct xe_tile ` pointer to which :c:type:`condition` applies”h]”(hŒthe ”…””}”(hjAh²hh³Nh´Nubh)”}”(hŒ":c:type:`struct xe_tile `”h]”j))”}”(hjKh]”hŒstruct xe_tile”…””}”(hjMh²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hjIubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jòjöjGŒxe_tile”uh1hh³j=h´KƒhjAubhŒ pointer to which ”…””}”(hjAh²hh³Nh´Nubh)”}”(hŒ:c:type:`condition`”h]”j))”}”(hjnh]”hŒ condition”…””}”(hjph²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hjlubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jòjöjGŒ condition”uh1hh³j=h´KƒhjAubhŒ applies”…””}”(hjAh²hh³Nh´Nubeh}”(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ƒhjubj¨)”}”(hŒ!``condition`` condition to check ”h]”(j®)”}”(hŒ ``condition``”h]”j))”}”(hj§h]”hŒ condition”…””}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1j­h³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K„hj¡ubjÈ)”}”(hhh]”hí)”}”(hŒcondition to check”h]”hŒcondition to check”…””}”(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„hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¢hjubhí)”}”(hŒ**Description**”h]”hó)”}”(hjâh]”hŒ Description”…””}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hòhjàubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K†hjubhí)”}”(hŒ¸xe_tile_assert() uses :c:type:`drm_WARN` to emit a warning and print additional information that could be read from the :c:type:`tile` pointer if provided :c:type:`condition` is false.”h]”(hŒxe_tile_assert() uses ”…””}”(hjøh²hh³Nh´Nubh)”}”(hŒ:c:type:`drm_WARN`”h]”j))”}”(hjh]”hŒdrm_WARN”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jòjöjGŒdrm_WARN”uh1hh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K…hjøubhŒP to emit a warning and print additional information that could be read from the ”…””}”(hjøh²hh³Nh´Nubh)”}”(hŒ:c:type:`tile`”h]”j))”}”(hj&h]”hŒtile”…””}”(hj(h²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hj$ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jòjöjGŒtile”uh1hh³jh´K…hjøubhŒ pointer if provided ”…””}”(hjøh²hh³Nh´Nubh)”}”(hŒ:c:type:`condition`”h]”j))”}”(hjIh]”hŒ condition”…””}”(hjKh²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hjGubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jòjöjGŒ condition”uh1hh³jh´K…hjøubhŒ is false.”…””}”(hjøh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jh´K…hjubhí)”}”(hŒ·Contrary to :c:type:`drm_WARN`, xe_tile_assert() is effective only on debug builds (:c:type:`CONFIG_DRM_XE_DEBUG` must be enabled) and cannot be used in expressions or as a condition.”h]”(hŒ Contrary to ”…””}”(hjph²hh³Nh´Nubh)”}”(hŒ:c:type:`drm_WARN`”h]”j))”}”(hjzh]”hŒdrm_WARN”…””}”(hj|h²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hjxubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jòjöjGŒdrm_WARN”uh1hh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K‰hjpubhŒ6, xe_tile_assert() is effective only on debug builds (”…””}”(hjph²hh³Nh´Nubh)”}”(hŒ:c:type:`CONFIG_DRM_XE_DEBUG`”h]”j))”}”(hjžh]”hŒCONFIG_DRM_XE_DEBUG”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hjœubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jòjöjGŒCONFIG_DRM_XE_DEBUG”uh1hh³j—h´K‰hjpubhŒF must be enabled) and cannot be used in expressions or as a condition.”…””}”(hjph²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j—h´K‰hjubhí)”}”(hŒ/See `Xe Asserts`_ for general usage guidelines.”h]”(hŒSee ”…””}”(hjÅh²hh³Nh´Nubja)”}”(hŒ `Xe Asserts`_”h]”hŒ Xe Asserts”…””}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ Xe Asserts”héhêuh1j`hjÅjrKubhŒ for general usage guidelines.”…””}”(hjÅh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´Khjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j„hhÊh²hh³Nh´Nubjç)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jóŒxe_gt_assert (C macro)”Œc.xe_gt_assert”hNt”auh1jæhhÊh²hh³Nh´Nubjø)”}”(hhh]”(jý)”}”(hŒ xe_gt_assert”h]”j)”}”(hŒ xe_gt_assert”h]”j )”}”(hŒ xe_gt_assert”h]”j)”}”(hjh]”hŒ xe_gt_assert”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjubah}”(h]”h ]”(j!j"eh"]”h$]”h&]”hÅhÆuh1jhjh²hh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K›ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆj-ˆuh1jj.j/hjh²hh³jh´K›ubah}”(h]”jûah ]”(j3j4eh"]”h$]”h&]”j8ˆj9)j:huh1jüh³jh´K›hjýh²hubj<)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j;hjýh²hh³jh´K›ubeh}”(h]”h ]”(j5Œmacro”eh"]”h$]”h&]”jMj5jNj8jOj8jP‰jQ‰jR‰uh1j÷h²hhhÊh³Nh´Nubhí)”}”(hŒ ``xe_gt_assert (gt, condition)``”h]”j))”}”(hj>h]”hŒxe_gt_assert (gt, condition)”…””}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´KhhÊh²hubj‡)”}”(hŒ+warn if condition is false when debugging. ”h]”hí)”}”(hŒ*warn if condition is false when debugging.”h]”hŒ*warn if condition is false when debugging.”…””}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K›hjTubah}”(h]”h ]”h"]”h$]”h&]”uh1j†h³jfh´K›hhÊh²hubj…)”}”(hXD**Parameters** ``gt`` the :c:type:`struct xe_gt ` pointer to which :c:type:`condition` applies ``condition`` condition to check **Description** xe_gt_assert() uses :c:type:`drm_WARN` to emit a warning and print additional information that could be safetely read from the :c:type:`gt` pointer if provided :c:type:`condition` is false. Contrary to :c:type:`drm_WARN`, xe_gt_assert() is effective only on debug builds (:c:type:`CONFIG_DRM_XE_DEBUG` must be enabled) and cannot be used in expressions or as a condition. See `Xe Asserts`_ for general usage guidelines.”h]”(hí)”}”(hŒ**Parameters**”h]”hó)”}”(hjsh]”hŒ Parameters”…””}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hòhjqubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´KŸhjmubj£)”}”(hhh]”(j¨)”}”(hŒW``gt`` the :c:type:`struct xe_gt ` pointer to which :c:type:`condition` applies ”h]”(j®)”}”(hŒ``gt``”h]”j))”}”(hj’h]”hŒgt”…””}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j­h³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´KœhjŒubjÈ)”}”(hhh]”hí)”}”(hŒOthe :c:type:`struct xe_gt ` pointer to which :c:type:`condition` applies”h]”(hŒthe ”…””}”(hj«h²hh³Nh´Nubh)”}”(hŒ:c:type:`struct xe_gt `”h]”j))”}”(hjµh]”hŒ struct xe_gt”…””}”(hj·h²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hj³ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jòjöjGŒxe_gt”uh1hh³j§h´Kœhj«ubhŒ pointer to which ”…””}”(hj«h²hh³Nh´Nubh)”}”(hŒ:c:type:`condition`”h]”j))”}”(hjØh]”hŒ condition”…””}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hjÖubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jòjöjGŒ condition”uh1hh³j§h´Kœhj«ubhŒ applies”…””}”(hj«h²hh³Nh´Nubeh}”(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Œ!``condition`` condition to check ”h]”(j®)”}”(hŒ ``condition``”h]”j))”}”(hj h]”hŒ condition”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j­h³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´Khj ubjÈ)”}”(hhh]”hí)”}”(hŒcondition to check”h]”hŒcondition to check”…””}”(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´Khj‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¢hjmubhí)”}”(hŒ**Description**”h]”hó)”}”(hjL h]”hŒ Description”…””}”(hjN h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hòhjJ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´KŸhjmubhí)”}”(hŒ½xe_gt_assert() uses :c:type:`drm_WARN` to emit a warning and print additional information that could be safetely read from the :c:type:`gt` pointer if provided :c:type:`condition` is false.”h]”(hŒxe_gt_assert() uses ”…””}”(hjb h²hh³Nh´Nubh)”}”(hŒ:c:type:`drm_WARN`”h]”j))”}”(hjl h]”hŒdrm_WARN”…””}”(hjn h²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hjj ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jòjöjGŒdrm_WARN”uh1hh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´Kžhjb ubhŒY to emit a warning and print additional information that could be safetely read from the ”…””}”(hjb h²hh³Nh´Nubh)”}”(hŒ :c:type:`gt`”h]”j))”}”(hj h]”hŒgt”…””}”(hj’ h²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hjŽ ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jòjöjGŒgt”uh1hh³j‰ h´Kžhjb ubhŒ pointer if provided ”…””}”(hjb h²hh³Nh´Nubh)”}”(hŒ:c:type:`condition`”h]”j))”}”(hj³ h]”hŒ condition”…””}”(hjµ h²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hj± ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jòjöjGŒ condition”uh1hh³j‰ h´Kžhjb ubhŒ is false.”…””}”(hjb h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j‰ h´Kžhjmubhí)”}”(hŒµContrary to :c:type:`drm_WARN`, xe_gt_assert() is effective only on debug builds (:c:type:`CONFIG_DRM_XE_DEBUG` must be enabled) and cannot be used in expressions or as a condition.”h]”(hŒ Contrary to ”…””}”(hjÚ h²hh³Nh´Nubh)”}”(hŒ:c:type:`drm_WARN`”h]”j))”}”(hjä h]”hŒdrm_WARN”…””}”(hjæ h²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hjâ ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jòjöjGŒdrm_WARN”uh1hh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K¢hjÚ ubhŒ4, xe_gt_assert() is effective only on debug builds (”…””}”(hjÚ h²hh³Nh´Nubh)”}”(hŒ:c:type:`CONFIG_DRM_XE_DEBUG`”h]”j))”}”(hj h]”hŒCONFIG_DRM_XE_DEBUG”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”(j4j5Œc-type”eh"]”h$]”h&]”uh1j(hj ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jAŒ refdomain”j5Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jòjöjGŒCONFIG_DRM_XE_DEBUG”uh1hh³j h´K¢hjÚ ubhŒF must be enabled) and cannot be used in expressions or as a condition.”…””}”(hjÚ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j h´K¢hjmubhí)”}”(hŒ/See `Xe Asserts`_ for general usage guidelines.”h]”(hŒSee ”…””}”(hj/ h²hh³Nh´Nubja)”}”(hŒ `Xe Asserts`_”h]”hŒ Xe Asserts”…””}”(hj7 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ Xe Asserts”héhêuh1j`hj/ jrKubhŒ for general usage guidelines.”…””}”(hj/ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_debugging:7: ./drivers/gpu/drm/xe/xe_assert.h”h´K¦hjmubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j„hhÊh²hh³Nh´Nubeh}”(h]”Œ debugging”ah ]”h"]”Œ debugging”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j„ Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œ xe asserts”]”(jbjÍj7 esŒrefids”}”hê]”hßasŒnameids”}”(j^ j[ jhêuŒ nametypes”}”(j^ ‰jˆuh}”(j[ hÊhêhîjõjþj‘j–jûjuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.