€•_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-”…””}”(hjh²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“jj‡hêj†jƒuŒ nametypes”}”(j“‰j‡ˆj†‰uh}”(jhÊ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.