€•\@Œ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/admin-guide/mm/damon/stat”Œ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/admin-guide/mm/damon/stat”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/it_IT/admin-guide/mm/damon/stat”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/ja_JP/admin-guide/mm/damon/stat”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/ko_KR/admin-guide/mm/damon/stat”Œ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/admin-guide/mm/damon/stat”Œ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ŸŒG/var/lib/git/docbuild/linux/Documentation/admin-guide/mm/damon/stat.rst”h KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ#Data Access Monitoring Results Stat”h]”hŒ#Data Access Monitoring Results Stat”…””}”(hh»hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hh¶hžhhŸh³h KubhŒ paragraph”“”)”}”(hXNData Access Monitoring Results Stat (DAMON_STAT) is a static kernel module that is aimed to be used for simple access pattern monitoring. It monitors accesses on the system's entire physical memory using DAMON, and provides simplified access monitoring results statistics, namely idle time percentiles and estimated memory bandwidth.”h]”hXPData Access Monitoring Results Stat (DAMON_STAT) is a static kernel module that is aimed to be used for simple access pattern monitoring. It monitors accesses on the system’s entire physical memory using DAMON, and provides simplified access monitoring results statistics, namely idle time percentiles and estimated memory bandwidth.”…””}”(hhËhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khh¶hžhubhŒtarget”“”)”}”(hŒ,.. _damon_stat_monitoring_accuracy_overhead:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œ'damon-stat-monitoring-accuracy-overhead”uh1hÙh K hh¶hžhhŸh³ubhµ)”}”(hhh]”(hº)”}”(hŒ Monitoring Accuracy and Overhead”h]”hŒ Monitoring Accuracy and Overhead”…””}”(hhêhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hhçhžhhŸh³h KubhÊ)”}”(hXpDAMON_STAT uses monitoring intervals :ref:`auto-tuning ` to make its accuracy high and overhead minimum. It auto-tunes the intervals aiming 4 % of observable access events to be captured in each snapshot, while limiting the resulting sampling interval to be 5 milliseconds in minimum and 10 seconds in maximum. On a few production server systems, it resulted in consuming only 0.x % single CPU time, while capturing reasonable quality of access patterns. The tuning-resulting intervals can be retrieved via ``aggr_interval_us`` :ref:`parameter `.”h]”(hŒ%DAMON_STAT uses monitoring intervals ”…””}”(hhøhžhhŸNh Nubh)”}”(hŒA:ref:`auto-tuning `”h]”hŒinline”“”)”}”(hjh]”hŒ auto-tuning”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œadmin-guide/mm/damon/stat”Œ refdomain”jŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆŒ reftarget”Œ,damon_design_monitoring_intervals_autotuning”uh1hhŸh³h KhhøubhXÆ to make its accuracy high and overhead minimum. It auto-tunes the intervals aiming 4 % of observable access events to be captured in each snapshot, while limiting the resulting sampling interval to be 5 milliseconds in minimum and 10 seconds in maximum. On a few production server systems, it resulted in consuming only 0.x % single CPU time, while capturing reasonable quality of access patterns. The tuning-resulting intervals can be retrieved via ”…””}”(hhøhžhhŸNh NubhŒliteral”“”)”}”(hŒ``aggr_interval_us``”h]”hŒaggr_interval_us”…””}”(hj+hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hhøubhŒ ”…””}”(hhøhžhhŸNh Nubh)”}”(hŒ.:ref:`parameter `”h]”j)”}”(hj?h]”hŒ parameter”…””}”(hjAhžhhŸNh Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1jhj=ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jKŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆj#Œdamon_stat_aggr_interval_us”uh1hhŸh³h KhhøubhŒ.”…””}”(hhøhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khhçhžhubeh}”(h]”(Œ monitoring-accuracy-and-overhead”hæeh ]”h"]”(Œ monitoring accuracy and overhead”Œ'damon_stat_monitoring_accuracy_overhead”eh$]”h&]”uh1h´hh¶hžhhŸh³h KŒexpect_referenced_by_name”}”jmhÛsŒexpect_referenced_by_id”}”hæhÛsubhµ)”}”(hhh]”(hº)”}”(hŒInterface: Module Parameters”h]”hŒInterface: Module Parameters”…””}”(hjwhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjthžhhŸh³h KubhÊ)”}”(hŒèTo use this feature, you should first ensure your system is running on a kernel that is built with ``CONFIG_DAMON_STAT=y``. The feature can be enabled by default at build time, by setting ``CONFIG_DAMON_STAT_ENABLED_DEFAULT`` true.”h]”(hŒcTo use this feature, you should first ensure your system is running on a kernel that is built with ”…””}”(hj…hžhhŸNh Nubj*)”}”(hŒ``CONFIG_DAMON_STAT=y``”h]”hŒCONFIG_DAMON_STAT=y”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj…ubhŒC. The feature can be enabled by default at build time, by setting ”…””}”(hj…hžhhŸNh Nubj*)”}”(hŒ%``CONFIG_DAMON_STAT_ENABLED_DEFAULT``”h]”hŒ!CONFIG_DAMON_STAT_ENABLED_DEFAULT”…””}”(hjŸhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj…ubhŒ true.”…””}”(hj…hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KhjthžhubhÊ)”}”(hŒ½To let sysadmins enable or disable it at boot and/or runtime, and read the monitoring results, DAMON_STAT provides module parameters. Following sections are descriptions of the parameters.”h]”hŒ½To let sysadmins enable or disable it at boot and/or runtime, and read the monitoring results, DAMON_STAT provides module parameters. Following sections are descriptions of the parameters.”…””}”(hj·hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K#hjthžhubhµ)”}”(hhh]”(hº)”}”(hŒenabled”h]”hŒenabled”…””}”(hjÈhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjÅhžhhŸh³h K(ubhÊ)”}”(hŒEnable or disable DAMON_STAT.”h]”hŒEnable or disable DAMON_STAT.”…””}”(hjÖhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K*hjÅhžhubhÊ)”}”(hŒËYou can enable DAMON_STAT by setting the value of this parameter as ``Y``. Setting it as ``N`` disables DAMON_STAT. The default value is set by ``CONFIG_DAMON_STAT_ENABLED_DEFAULT`` build config option.”h]”(hŒDYou can enable DAMON_STAT by setting the value of this parameter as ”…””}”(hjähžhhŸNh Nubj*)”}”(hŒ``Y``”h]”hŒY”…””}”(hjìhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjäubhŒ. Setting it as ”…””}”(hjähžhhŸNh Nubj*)”}”(hŒ``N``”h]”hŒN”…””}”(hjþhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjäubhŒ3 disables DAMON_STAT. The default value is set by ”…””}”(hjähžhhŸNh Nubj*)”}”(hŒ%``CONFIG_DAMON_STAT_ENABLED_DEFAULT``”h]”hŒ!CONFIG_DAMON_STAT_ENABLED_DEFAULT”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjäubhŒ build config option.”…””}”(hjähžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K,hjÅhžhubhÚ)”}”(hŒ .. _damon_stat_aggr_interval_us:”h]”h}”(h]”h ]”h"]”h$]”h&]”håŒdamon-stat-aggr-interval-us”uh1hÙh K0hjÅhžhhŸh³ubeh}”(h]”Œenabled”ah ]”h"]”Œenabled”ah$]”h&]”uh1h´hjthžhhŸh³h K(ubhµ)”}”(hhh]”(hº)”}”(hŒaggr_interval_us”h]”hŒaggr_interval_us”…””}”(hj>hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hj;hžhhŸh³h K3ubhÊ)”}”(hŒ5Auto-tuned aggregation time interval in microseconds.”h]”hŒ5Auto-tuned aggregation time interval in microseconds.”…””}”(hjLhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K5hj;hžhubhÊ)”}”(hŒÜUsers can read the aggregation interval of DAMON that is being used by the DAMON instance for DAMON_STAT. It is :ref:`auto-tuned ` and therefore the value is dynamically changed.”h]”(hŒqUsers can read the aggregation interval of DAMON that is being used by the DAMON instance for DAMON_STAT. It is ”…””}”(hjZhžhhŸNh Nubh)”}”(hŒ;:ref:`auto-tuned `”h]”j)”}”(hjdh]”hŒ auto-tuned”…””}”(hjfhžhhŸNh Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1jhjbubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jpŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆj#Œ'damon_stat_monitoring_accuracy_overhead”uh1hhŸh³h K7hjZubhŒ0 and therefore the value is dynamically changed.”…””}”(hjZhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K7hj;hžhubeh}”(h]”(Œaggr-interval-us”j2eh ]”h"]”(Œaggr_interval_us”Œdamon_stat_aggr_interval_us”eh$]”h&]”uh1h´hjthžhhŸh³h K3jp}”j’j(sjr}”j2j(subhµ)”}”(hhh]”(hº)”}”(hŒestimated_memory_bandwidth”h]”hŒestimated_memory_bandwidth”…””}”(hjšhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hj—hžhhŸh³h K=ubhÊ)”}”(hŒHEstimated memory bandwidth consumption (bytes per second) of the system.”h]”hŒHEstimated memory bandwidth consumption (bytes per second) of the system.”…””}”(hj¨hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K?hj—hžhubhÊ)”}”(hX[DAMON_STAT reads observed access events on the current DAMON results snapshot and converts it to memory bandwidth consumption estimation in bytes per second. The resulting metric is exposed to user via this read-only parameter. Because DAMON uses sampling, this is only an estimation of the access intensity rather than accurate memory bandwidth.”h]”hX[DAMON_STAT reads observed access events on the current DAMON results snapshot and converts it to memory bandwidth consumption estimation in bytes per second. The resulting metric is exposed to user via this read-only parameter. Because DAMON uses sampling, this is only an estimation of the access intensity rather than accurate memory bandwidth.”…””}”(hj¶hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KAhj—hžhubeh}”(h]”Œestimated-memory-bandwidth”ah ]”h"]”Œestimated_memory_bandwidth”ah$]”h&]”uh1h´hjthžhhŸh³h K=ubhµ)”}”(hhh]”(hº)”}”(hŒmemory_idle_ms_percentiles”h]”hŒmemory_idle_ms_percentiles”…””}”(hjÏhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjÌhžhhŸh³h KHubhÊ)”}”(hŒ