€•_2Œ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/panthor”Œ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/panthor”Œ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/panthor”Œ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/panthor”Œ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/panthor”Œ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/panthor”Œ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/panthor”Œ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+”h]”hŒ!SPDX-License-Identifier: GPL-2.0+”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³Œ9/var/lib/git/docbuild/linux/Documentation/gpu/panthor.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒdrm/Panthor CSF driver”h]”hŒdrm/Panthor CSF driver”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒtarget”“”)�”}”(hŒ.. _panthor-usage-stats:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œpanthor-usage-stats”uh1hÝh´KhhÊh²hh³hÇubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ-Panthor DRM client usage stats implementation”h]”hŒ-Panthor DRM client usage stats implementation”…”�”}”(hhîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhëh²hh³hÇh´K ubhŒ paragraph”“”)�”}”(hŒzThe drm/Panthor driver implements the DRM client usage stats specification as documented in :ref:`drm-client-usage-stats`.”h]”(hŒ\The drm/Panthor driver implements the DRM client usage stats specification as documented in ”…”�”}”(hhþh²hh³Nh´Nubh)�”}”(hŒ:ref:`drm-client-usage-stats`”h]”hŒinline”“”)�”}”(hjh]”hŒdrm-client-usage-stats”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-ref”eh"]”h$]”h&]”uh1j hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œ gpu/panthor”Œ refdomain”jŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆŒ reftarget”Œdrm-client-usage-stats”uh1hh³hÇh´K hhþubhŒ.”…”�”}”(hhþh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K hhëh²hubhý)�”}”(hŒtExample of the output showing the implemented key value pairs and entirety of the currently possible format options:”h]”hŒtExample of the output showing the implemented key value pairs and entirety of the currently possible format options:”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Khhëh²hubhŒdefinition_list”“”)�”}”(hhh]”hŒdefinition_list_item”“”)�”}”(hXÞ:: pos: 0 flags: 02400002 mnt_id: 29 ino: 491 drm-driver: panthor drm-client-id: 10 drm-engine-panthor: 111110952750 ns drm-cycles-panthor: 94439687187 drm-maxfreq-panthor: 1000000000 Hz drm-curfreq-panthor: 1000000000 Hz panthor-resident-memory: 10396 KiB panthor-active-memory: 10396 KiB drm-total-memory: 16480 KiB drm-shared-memory: 0 drm-active-memory: 16200 KiB drm-resident-memory: 16480 KiB drm-purgeable-memory: 0 ”h]”(hŒterm”“”)�”}”(hŒ::”h]”hŒ::”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jNh³hÇh´K#hjJubhŒ definition”“”)�”}”(hhh]”hý)�”}”(hXÚpos: 0 flags: 02400002 mnt_id: 29 ino: 491 drm-driver: panthor drm-client-id: 10 drm-engine-panthor: 111110952750 ns drm-cycles-panthor: 94439687187 drm-maxfreq-panthor: 1000000000 Hz drm-curfreq-panthor: 1000000000 Hz panthor-resident-memory: 10396 KiB panthor-active-memory: 10396 KiB drm-total-memory: 16480 KiB drm-shared-memory: 0 drm-active-memory: 16200 KiB drm-resident-memory: 16480 KiB drm-purgeable-memory: 0”h]”hXÚpos: 0 flags: 02400002 mnt_id: 29 ino: 491 drm-driver: panthor drm-client-id: 10 drm-engine-panthor: 111110952750 ns drm-cycles-panthor: 94439687187 drm-maxfreq-panthor: 1000000000 Hz drm-curfreq-panthor: 1000000000 Hz panthor-resident-memory: 10396 KiB panthor-active-memory: 10396 KiB drm-total-memory: 16480 KiB drm-shared-memory: 0 drm-active-memory: 16200 KiB drm-resident-memory: 16480 KiB drm-purgeable-memory: 0”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Khj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j^hjJubeh}”(h]”h ]”h"]”h$]”h&]”uh1jHh³hÇh´K#hjEubah}”(h]”h ]”h"]”h$]”h&]”uh1jChhëh²hh³hÇh´Nubhý)�”}”(hŒ~Possible `drm-engine-` key names are: `panthor`. `drm-curfreq-` values convey the current operating frequency for that engine.”h]”(hŒ Possible ”…”�”}”(hjƒh²hh³Nh´NubhŒtitle_reference”“”)�”}”(hŒ `drm-engine-`”h]”hŒ drm-engine-”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹hjƒubhŒ key names are: ”…”�”}”(hjƒh²hh³Nh´NubjŒ)�”}”(hŒ `panthor`”h]”hŒpanthor”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹hjƒubhŒ. ”…”�”}”(hjƒh²hh³Nh´NubjŒ)�”}”(hŒ`drm-curfreq-`”h]”hŒ drm-curfreq-”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹hjƒubhŒ? values convey the current operating frequency for that engine.”…”�”}”(hjƒh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K%hhëh²hubhý)�”}”(hX$Users must bear in mind that engine and cycle sampling are disabled by default, because of power saving concerns. `fdinfo` users and benchmark applications which query the fdinfo file must make sure to toggle the job profiling status of the driver by writing into the appropriate sysfs node::”h]”(hŒrUsers must bear in mind that engine and cycle sampling are disabled by default, because of power saving concerns. ”…”�”}”(hjÉh²hh³Nh´NubjŒ)�”}”(hŒ`fdinfo`”h]”hŒfdinfo”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹hjÉubhŒ© users and benchmark applications which query the fdinfo file must make sure to toggle the job profiling status of the driver by writing into the appropriate sysfs node:”…”�”}”(hjÉh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K(hhëh²hubhŒ literal_block”“”)�”}”(hŒDecho > /sys/bus/platform/drivers/panthor/[a-f0-9]*.gpu/profiling”h]”hŒDecho > /sys/bus/platform/drivers/panthor/[a-f0-9]*.gpu/profiling”…”�”}”hjësbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jéh³hÇh´K-hhëh²hubhý)�”}”(hŒqWhere `N` is a bit mask where cycle and timestamp sampling are respectively enabled by the first and second bits.”h]”(hŒWhere ”…”�”}”(hjùh²hh³Nh´NubjŒ)�”}”(hŒ`N`”h]”hŒN”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹hjùubhŒh is a bit mask where cycle and timestamp sampling are respectively enabled by the first and second bits.”…”�”}”(hjùh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K/hhëh²hubhý)�”}”(hXPossible `panthor-*-memory` keys are: `active` and `resident`. These values convey the sizes of the internal driver-owned shmem BO's that aren't exposed to user-space through a DRM handle, like queue ring buffers, sync object arrays and heap chunks. Because they are all allocated and pinned at creation time, only `panthor-resident-memory` is necessary to tell us their size. `panthor-active-memory` shows the size of kernel BO's associated with VM's and groups currently being scheduled for execution by the GPU.”h]”(hŒ Possible ”…”�”}”(hjh²hh³Nh´NubjŒ)�”}”(hŒ`panthor-*-memory`”h]”hŒpanthor-*-memory”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹hjubhŒ keys are: ”…”�”}”(hjh²hh³Nh´NubjŒ)�”}”(hŒ`active`”h]”hŒactive”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹hjubhŒ and ”…”�”}”(hjh²hh³Nh´NubjŒ)�”}”(hŒ `resident`”h]”hŒresident”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹hjubhX. These values convey the sizes of the internal driver-owned shmem BO’s that aren’t exposed to user-space through a DRM handle, like queue ring buffers, sync object arrays and heap chunks. Because they are all allocated and pinned at creation time, only ”…”�”}”(hjh²hh³Nh´NubjŒ)�”}”(hŒ`panthor-resident-memory`”h]”hŒpanthor-resident-memory”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹hjubhŒ% is necessary to tell us their size. ”…”�”}”(hjh²hh³Nh´NubjŒ)�”}”(hŒ`panthor-active-memory`”h]”hŒpanthor-active-memory”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹hjubhŒv shows the size of kernel BO’s associated with VM’s and groups currently being scheduled for execution by the GPU.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K2hhëh²hubeh}”(h]”(Œ-panthor-drm-client-usage-stats-implementation”hêeh ]”h"]”(Œ-panthor drm client usage stats implementation”Œpanthor-usage-stats”eh$]”h&]”uh1hÈhhÊh²hh³hÇh´K Œexpect_referenced_by_name”}”j‡hßsŒexpect_referenced_by_id”}”hêhßsubeh}”(h]”Œdrm-panthor-csf-driver”ah ]”h"]”Œdrm/panthor csf driver”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”}”Œrefids”}”hê]”hßasŒnameids”}”(j“j�j‡hêj†jƒuŒ nametypes”}”(j“‰j‡ˆj†‰uh}”(j�hÊhêhëjƒhëuŒ 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”]”(hŒsystem_message”“”)�”}”(hhh]”hý)�”}”(hŒ`Possible incomplete section title. Treating the overline as ordinary text because it's so short.”h]”hŒbPossible incomplete section title. Treating the overline as ordinary text because it’s so short.”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hühjubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œline”KŒsource”hÇuh1jhhëh²hh³hÇh´Kubj)�”}”(hhh]”hý)�”}”(hŒ`Blank line missing before literal block (after the "::")? Interpreted as a definition list item.”h]”hŒdBlank line missing before literal block (after the “::â€�)? Interpreted as a definition list item.”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hühj:ubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”j7Œline”K$Œsource”hÇuh1jhj`ubeŒtransform_messages”]”j)�”}”(hhh]”hý)�”}”(hhh]”hŒ9Hyperlink target "panthor-usage-stats" is not referenced.”…”�”}”hjZsbah}”(h]”h ]”h"]”h$]”h&]”uh1hühjWubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”j7Œsource”hÇŒline”Kuh1jubaŒ transformer”NŒ include_log”]”Œ decoration”Nh²hub.