€•7?Œ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”Œ2/translations/zh_CN/admin-guide/perf/meson-ddr-pmu”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/zh_TW/admin-guide/perf/meson-ddr-pmu”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/it_IT/admin-guide/perf/meson-ddr-pmu”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/ja_JP/admin-guide/perf/meson-ddr-pmu”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/ko_KR/admin-guide/perf/meson-ddr-pmu”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/pt_BR/admin-guide/perf/meson-ddr-pmu”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/sp_SP/admin-guide/perf/meson-ddr-pmu”Œ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³ŒL/var/lib/git/docbuild/linux/Documentation/admin-guide/perf/meson-ddr-pmu.rst”h´KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ;Amlogic SoC DDR Bandwidth Performance Monitoring Unit (PMU)”h]”hŒ;Amlogic SoC DDR Bandwidth Performance Monitoring Unit (PMU)”…””}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)”}”(hX&The Amlogic Meson G12 SoC contains a bandwidth monitor inside DRAM controller. The monitor includes 4 channels. Each channel can count the request accessing DRAM. The channel can count up to 3 AXI port simultaneously. It can be helpful to show if the performance bottleneck is on DDR bandwidth.”h]”hX&The Amlogic Meson G12 SoC contains a bandwidth monitor inside DRAM controller. The monitor includes 4 channels. Each channel can count the request accessing DRAM. The channel can count up to 3 AXI port simultaneously. It can be helpful to show if the performance bottleneck is on DDR bandwidth.”…””}”(hhßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´KhhÊh²hubhŞ)”}”(hŒubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšh²hh³hÇh´Nubj)”}”(hŒ#h265enc - from HEVC encoder”h]”hŞ)”}”(hjWh]”hŒ#h265enc - from HEVC encoder”…””}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K"hjUubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšh²hh³hÇh´Nubj)”}”(hŒvpu_read2 - from DI read”h]”hŞ)”}”(hjnh]”hŒvpu_read2 - from DI read”…””}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K#hjlubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšh²hh³hÇh´Nubj)”}”(hŒ!vpu_write1 - from VDIN write”h]”hŞ)”}”(hj…h]”hŒ!vpu_write1 - from VDIN write”…””}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K$hjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšh²hh³hÇh´Nubj)”}”(hŒvpu_write2 - from di write”h]”hŞ)”}”(hjœh]”hŒvpu_write2 - from di write”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K%hjšubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšh²hh³hÇh´Nubj)”}”(hŒ1vdec - from legacy codec video decoder”h]”hŞ)”}”(hj³h]”hŒ1vdec - from legacy codec video decoder”…””}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K&hj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšh²hh³hÇh´Nubj)”}”(hŒ#hcodec - from H264 encoder”h]”hŞ)”}”(hjÊh]”hŒ#hcodec - from H264 encoder”…””}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K'hjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšh²hh³hÇh´Nubj)”}”(hŒge2d - from ge2d”h]”hŞ)”}”(hjáh]”hŒge2d - from ge2d”…””}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K(hjßubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšh²hh³hÇh´Nubj)”}”(hŒ'spicc1 - from SPI controller 1”h]”hŞ)”}”(hjøh]”hŒ'spicc1 - from SPI controller 1”…””}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K)hjöubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšh²hh³hÇh´Nubj)”}”(hŒ*usb0 - from USB2.0 controller 0”h]”hŞ)”}”(hjh]”hŒ*usb0 - from USB2.0 controller 0”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K*hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšh²hh³hÇh´Nubj)”}”(hŒ.dma - from system DMA controller 1”h]”hŞ)”}”(hj&h]”hŒ.dma - from system DMA controller 1”…””}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K+hj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšh²hh³hÇh´Nubj)”}”(hŒarb0 - from arb0”h]”hŞ)”}”(hj=h]”hŒarb0 - from arb0”…””}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K,hj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšh²hh³hÇh´Nubj)”}”(hŒ+sd_emmc_b - from SD eMMC b controller”h]”hŞ)”}”(hjTh]”hŒ+sd_emmc_b - from SD eMMC b controller”…””}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K-hjRubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšh²hh³hÇh´Nubj)”}”(hŒ*usb1 - from USB2.0 controller 1”h]”hŞ)”}”(hjkh]”hŒ*usb1 - from USB2.0 controller 1”…””}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K.hjiubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšh²hh³hÇh´Nubj)”}”(hŒ#audio - from Audio module”h]”hŞ)”}”(hj‚h]”hŒ#audio - from Audio module”…””}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K/hj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšh²hh³hÇh´Nubj)”}”(hŒ+sd_emmc_c - from SD eMMC c controller”h]”hŞ)”}”(hj™h]”hŒ+sd_emmc_c - from SD eMMC c controller”…””}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K0hj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšh²hh³hÇh´Nubj)”}”(hŒ'spicc2 - from SPI controller 2”h]”hŞ)”}”(hj°h]”hŒ'spicc2 - from SPI controller 2”…””}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K1hj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšh²hh³hÇh´Nubj)”}”(hŒ,ethernet - from Ethernet controller ”h]”hŞ)”}”(hŒ*ethernet - from Ethernet controller”h]”hŒ*ethernet - from Ethernet controller”…””}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K2hjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j|j}uh1hûh³hÇh´KhhÊh²hubhŞ)”}”(hŒ Examples:”h]”hŒ Examples:”…””}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K5hhÊh²hubhŒ block_quote”“”)”}”(hXà+ Show the total DDR bandwidth per seconds: .. code-block:: bash perf stat -a -e meson_ddr_bw/total_rw_bytes/ -I 1000 sleep 10 + Show individual DDR bandwidth from CPU and GPU respectively, as well as sum of them: .. code-block:: bash perf stat -a -e meson_ddr_bw/chan_1_rw_bytes,arm=1/ -I 1000 sleep 10 perf stat -a -e meson_ddr_bw/chan_2_rw_bytes,gpu=1/ -I 1000 sleep 10 perf stat -a -e meson_ddr_bw/chan_3_rw_bytes,arm=1,gpu=1/ -I 1000 sleep 10 ”h]”hü)”}”(hhh]”(j)”}”(hŒƒShow the total DDR bandwidth per seconds: .. code-block:: bash perf stat -a -e meson_ddr_bw/total_rw_bytes/ -I 1000 sleep 10 ”h]”(hŞ)”}”(hŒ)Show the total DDR bandwidth per seconds:”h]”hŒ)Show the total DDR bandwidth per seconds:”…””}”(hjşh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K7hjúubhŒ literal_block”“”)”}”(hŒ=perf stat -a -e meson_ddr_bw/total_rw_bytes/ -I 1000 sleep 10”h]”hŒ=perf stat -a -e meson_ddr_bw/total_rw_bytes/ -I 1000 sleep 10”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒforce”‰Œlanguage”Œbash”Œhighlight_args”}”uh1j h³hÇh´K9hjúubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj÷ubj)”}”(hXJShow individual DDR bandwidth from CPU and GPU respectively, as well as sum of them: .. code-block:: bash perf stat -a -e meson_ddr_bw/chan_1_rw_bytes,arm=1/ -I 1000 sleep 10 perf stat -a -e meson_ddr_bw/chan_2_rw_bytes,gpu=1/ -I 1000 sleep 10 perf stat -a -e meson_ddr_bw/chan_3_rw_bytes,arm=1,gpu=1/ -I 1000 sleep 10 ”h]”(hŞ)”}”(hŒTShow individual DDR bandwidth from CPU and GPU respectively, as well as sum of them:”h]”hŒTShow individual DDR bandwidth from CPU and GPU respectively, as well as sum of them:”…””}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K>hj'ubj )”}”(hŒÔperf stat -a -e meson_ddr_bw/chan_1_rw_bytes,arm=1/ -I 1000 sleep 10 perf stat -a -e meson_ddr_bw/chan_2_rw_bytes,gpu=1/ -I 1000 sleep 10 perf stat -a -e meson_ddr_bw/chan_3_rw_bytes,arm=1,gpu=1/ -I 1000 sleep 10”h]”hŒÔperf stat -a -e meson_ddr_bw/chan_1_rw_bytes,arm=1/ -I 1000 sleep 10 perf stat -a -e meson_ddr_bw/chan_2_rw_bytes,gpu=1/ -I 1000 sleep 10 perf stat -a -e meson_ddr_bw/chan_3_rw_bytes,arm=1,gpu=1/ -I 1000 sleep 10”…””}”hj9sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆj‰jŒbash”j}”uh1j h³hÇh´KAhj'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj÷ubeh}”(h]”h ]”h"]”h$]”h&]”j|j}uh1hûh³hÇh´K7hjóubah}”(h]”h ]”h"]”h$]”h&]”uh1jñh³hÇh´K7hhÊh²hubeh}”(h]”Œ9amlogic-soc-ddr-bandwidth-performance-monitoring-unit-pmu”ah ]”h"]”Œ;amlogic soc ddr bandwidth performance monitoring unit (pmu)”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”}”Œnameids”}”j`j]sŒ nametypes”}”j`‰sh}”j]hÊsŒ 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.