€•§0Œ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/mm/damon/index”Œ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/mm/damon/index”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/it_IT/mm/damon/index”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/ja_JP/mm/damon/index”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/ko_KR/mm/damon/index”Œ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/mm/damon/index”Œ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ŸŒ` of DAMON make it”h]”(hŒ DAMON is a Linux kernel subsystem that provides a framework for data access monitoring and the monitoring results based system operations. The core monitoring ”…””}”(hhËhžhhŸNh Nubh)”}”(hŒ+:ref:`mechanisms `”h]”hŒinline”“”)”}”(hhÕh]”hŒ mechanisms”…””}”(hhÙhžhhŸNh Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-ref”eh"]”h$]”h&]”uh1h×hhÓubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œmm/damon/index”Œ refdomain”häŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆŒ reftarget”Œdamon_design_monitoring”uh1hhŸh³h KhhËubhŒ of DAMON make it”…””}”(hhËhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khh¶hžhubhŒ block_quote”“”)”}”(hXX- *accurate* (the monitoring output is useful enough for DRAM level memory management; It might not appropriate for CPU Cache levels, though), - *light-weight* (the monitoring overhead is low enough to be applied online), and - *scalable* (the upper-bound of the overhead is in constant range regardless of the size of target workloads). ”h]”hŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒŒ*accurate* (the monitoring output is useful enough for DRAM level memory management; It might not appropriate for CPU Cache levels, though),”h]”hÊ)”}”(hŒŒ*accurate* (the monitoring output is useful enough for DRAM level memory management; It might not appropriate for CPU Cache levels, though),”h]”(hŒemphasis”“”)”}”(hŒ *accurate*”h]”hŒaccurate”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒ‚ (the monitoring output is useful enough for DRAM level memory management; It might not appropriate for CPU Cache levels, though),”…””}”(hjhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj ubj)”}”(hŒP*light-weight* (the monitoring overhead is low enough to be applied online), and”h]”hÊ)”}”(hŒP*light-weight* (the monitoring overhead is low enough to be applied online), and”h]”(j)”}”(hŒ*light-weight*”h]”hŒ light-weight”…””}”(hj?hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj;ubhŒB (the monitoring overhead is low enough to be applied online), and”…””}”(hj;hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K hj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj ubj)”}”(hŒn*scalable* (the upper-bound of the overhead is in constant range regardless of the size of target workloads). ”h]”hÊ)”}”(hŒm*scalable* (the upper-bound of the overhead is in constant range regardless of the size of target workloads).”h]”(j)”}”(hŒ *scalable*”h]”hŒscalable”…””}”(hjehžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjaubhŒc (the upper-bound of the overhead is in constant range regardless of the size of target workloads).”…””}”(hjahžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj ubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jhŸh³h K hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhŸh³h K hh¶hžhubhÊ)”}”(hXaUsing this framework, therefore, the kernel can operate system in an access-aware fashion. Because the features are also exposed to the :doc:`user space `, users who have special information about their workloads can write personalized applications for better understanding and optimizations of their workloads and systems.”h]”(hŒ‰Using this framework, therefore, the kernel can operate system in an access-aware fashion. Because the features are also exposed to the ”…””}”(hj‘hžhhŸNh Nubh)”}”(hŒ/:doc:`user space `”h]”hØ)”}”(hj›h]”hŒ user space”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”(hãŒstd”Œstd-doc”eh"]”h$]”h&]”uh1h×hj™ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”hðŒ refdomain”j§Œreftype”Œdoc”Œ refexplicit”ˆŒrefwarn”ˆhöŒ/admin-guide/mm/damon/index”uh1hhŸh³h Khj‘ubhŒ©, users who have special information about their workloads can write personalized applications for better understanding and optimizations of their workloads and systems.”…””}”(hj‘hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khh¶hžhubhÊ)”}”(hXZFor easier development of such systems, DAMON provides a feature called :ref:`DAMOS ` (DAMon-based Operation Schemes) in addition to the monitoring. Using the feature, DAMON users in both kernel and :doc:`user spaces ` can do access-aware system operations with no code but simple configurations.”h]”(hŒHFor easier development of such systems, DAMON provides a feature called ”…””}”(hjÃhžhhŸNh Nubh)”}”(hŒ!:ref:`DAMOS `”h]”hØ)”}”(hjÍh]”hŒDAMOS”…””}”(hjÏhžhhŸNh Nubah}”(h]”h ]”(hãŒstd”Œstd-ref”eh"]”h$]”h&]”uh1h×hjËubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”hðŒ refdomain”jÙŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆhöŒdamon_design_damos”uh1hhŸh³h KhjÃubhŒs (DAMon-based Operation Schemes) in addition to the monitoring. Using the feature, DAMON users in both kernel and ”…””}”(hjÃhžhhŸNh Nubh)”}”(hŒ0:doc:`user spaces `”h]”hØ)”}”(hjñh]”hŒ user spaces”…””}”(hjóhžhhŸNh Nubah}”(h]”h ]”(hãŒstd”Œstd-doc”eh"]”h$]”h&]”uh1h×hjïubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”hðŒ refdomain”jýŒreftype”Œdoc”Œ refexplicit”ˆŒrefwarn”ˆhöŒ/admin-guide/mm/damon/index”uh1hhŸh³h KhjÃubhŒN can do access-aware system operations with no code but simple configurations.”…””}”(hjÃhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khh¶hžhubhŒcompound”“”)”}”(hhh]”hŒtoctree”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”hhðŒentries”]”(NŒ mm/damon/faq”†”NŒmm/damon/design”†”NŒ mm/damon/api”†”NŒmm/damon/maintainer-profile”†”eŒ includefiles”]”(j+j-j/j1eŒmaxdepth”KŒcaption”NŒglob”‰Œhidden”‰Œ includehidden”‰Œnumbered”KŒ titlesonly”‰Œ rawentries”]”uh1jhŸh³h Khjubah}”(h]”h ]”Œtoctree-wrapper”ah"]”h$]”h&]”uh1jhh¶hžhhŸh³h NubhÊ)”}”(hŒ€To utilize and control DAMON from the user-space, please refer to the administration :doc:`guide `.”h]”(hŒUTo utilize and control DAMON from the user-space, please refer to the administration ”…””}”(hjEhžhhŸNh Nubh)”}”(hŒ*:doc:`guide `”h]”hØ)”}”(hjOh]”hŒguide”…””}”(hjQhžhhŸNh Nubah}”(h]”h ]”(hãŒstd”Œstd-doc”eh"]”h$]”h&]”uh1h×hjMubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”hðŒ refdomain”j[Œreftype”Œdoc”Œ refexplicit”ˆŒrefwarn”ˆhöŒ/admin-guide/mm/damon/index”uh1hhŸh³h K&hjEubhŒ.”…””}”(hjEhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K&hh¶hžhubhÊ)”}”(hX;If you prefer academic papers for reading and citations, please use the papers from `HPDC'22 `_ and `Middleware19 Industry `_ . Note that those cover DAMON implementations in Linux v5.16 and v5.15, respectively.”h]”(hŒTIf you prefer academic papers for reading and citations, please use the papers from ”…””}”(hjwhžhhŸNh NubhŒ reference”“”)”}”(hŒ?`HPDC'22 `_”h]”hŒ HPDC’22”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”ŒHPDC'22”Œrefuri”Œ2https://dl.acm.org/doi/abs/10.1145/3502181.3531466”uh1jhjwubhŒtarget”“”)”}”(hŒ5 ”h]”h}”(h]”Œhpdc-22”ah ]”h"]”Œhpdc'22”ah$]”h&]”Œrefuri”j’uh1j“Œ referenced”KhjwubhŒ and ”…””}”(hjwhžhhŸNh Nubj€)”}”(hŒM`Middleware19 Industry `_”h]”hŒMiddleware19 Industry”…””}”(hj§hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”ŒMiddleware19 Industry”j‘Œ2https://dl.acm.org/doi/abs/10.1145/3366626.3368125”uh1jhjwubj”)”}”(hŒ5 ”h]”h}”(h]”Œmiddleware19-industry”ah ]”h"]”Œmiddleware19 industry”ah$]”h&]”Œrefuri”j·uh1j“j¢KhjwubhŒV . Note that those cover DAMON implementations in Linux v5.16 and v5.15, respectively.”…””}”(hjwhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K)hh¶hžhubeh}”(h]”Œdamon-data-access-monitor”ah ]”h"]”Œdamon: data access monitor”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Ñjžj›jÁj¾uŒ nametypes”}”(jÔ‰jžˆjÁˆuh}”(jÑh¶j›j•j¾j¸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”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.