€•G/Œ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”Œ4/translations/zh_CN/driver-api/hw-recoverable-errors”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ4/translations/zh_TW/driver-api/hw-recoverable-errors”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ4/translations/it_IT/driver-api/hw-recoverable-errors”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ4/translations/ja_JP/driver-api/hw-recoverable-errors”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ4/translations/ko_KR/driver-api/hw-recoverable-errors”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ4/translations/sp_SP/driver-api/hw-recoverable-errors”Œ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ŸŒN/var/lib/git/docbuild/linux/Documentation/driver-api/hw-recoverable-errors.rst”h KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ1Recoverable Hardware Error Tracking in vmcoreinfo”h]”hŒ1Recoverable Hardware Error Tracking in vmcoreinfo”…””}”(hh»hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hh¶hžhhŸh³h Kubhµ)”}”(hhh]”(hº)”}”(hŒOverview”h]”hŒOverview”…””}”(hhÌhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hhÉhžhhŸh³h KubhŒ paragraph”“”)”}”(hXThis feature provides a generic infrastructure within the Linux kernel to track and log recoverable hardware errors. These are hardware recoverable errors visible that might not cause immediate panics but may influence health, mainly because new code path will be executed in the kernel.”h]”hXThis feature provides a generic infrastructure within the Linux kernel to track and log recoverable hardware errors. These are hardware recoverable errors visible that might not cause immediate panics but may influence health, mainly because new code path will be executed in the kernel.”…””}”(hhÜhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K hhÉhžhubhÛ)”}”(hX`By recording counts and timestamps of recoverable errors into the vmcoreinfo crash dump notes, this infrastructure aids post-mortem crash analysis tools in correlating hardware events with kernel failures. This enables faster triage and better understanding of root causes, especially in large-scale cloud environments where hardware issues are common.”h]”hX`By recording counts and timestamps of recoverable errors into the vmcoreinfo crash dump notes, this infrastructure aids post-mortem crash analysis tools in correlating hardware events with kernel failures. This enables faster triage and better understanding of root causes, especially in large-scale cloud environments where hardware issues are common.”…””}”(hhêhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h KhhÉhžhubeh}”(h]”Œoverview”ah ]”h"]”Œoverview”ah$]”h&]”uh1h´hh¶hžhhŸh³h Kubhµ)”}”(hhh]”(hº)”}”(hŒBenefits”h]”hŒBenefits”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjhžhhŸh³h KubhŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒ|Facilitates correlation of hardware recoverable errors with kernel panics or unusual code paths that lead to system crashes.”h]”hÛ)”}”(hŒ|Facilitates correlation of hardware recoverable errors with kernel panics or unusual code paths that lead to system crashes.”h]”hŒ|Facilitates correlation of hardware recoverable errors with kernel panics or unusual code paths that lead to system crashes.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjhžhhŸh³h Nubj)”}”(hŒoProvides operators and cloud providers quick insights, improving reliability and reducing troubleshooting time.”h]”hÛ)”}”(hŒoProvides operators and cloud providers quick insights, improving reliability and reducing troubleshooting time.”h]”hŒoProvides operators and cloud providers quick insights, improving reliability and reducing troubleshooting time.”…””}”(hj4hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h Khj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjhžhhŸh³h Nubj)”}”(hŒGComplements existing full hardware diagnostics without replacing them. ”h]”hÛ)”}”(hŒFComplements existing full hardware diagnostics without replacing them.”h]”hŒFComplements existing full hardware diagnostics without replacing them.”…””}”(hjLhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h KhjHubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjhžhhŸh³h Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jhŸh³h Khjhžhubeh}”(h]”Œbenefits”ah ]”h"]”Œbenefits”ah$]”h&]”uh1h´hh¶hžhhŸh³h Kubhµ)”}”(hhh]”(hº)”}”(hŒData Exposure and Consumption”h]”hŒData Exposure and Consumption”…””}”(hjshžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjphžhhŸh³h Kubj)”}”(hhh]”(j)”}”(hŒ[The tracked error data consists of per-error-type counts and timestamps of last occurrence.”h]”hÛ)”}”(hŒ[The tracked error data consists of per-error-type counts and timestamps of last occurrence.”h]”hŒ[The tracked error data consists of per-error-type counts and timestamps of last occurrence.”…””}”(hjˆhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K!hj„ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjhžhhŸh³h Nubj)”}”(hŒzThis data is stored in the `hwerror_data` array, categorized by error source types like CPU, memory, PCI, CXL, and others.”h]”hÛ)”}”(hŒzThis data is stored in the `hwerror_data` array, categorized by error source types like CPU, memory, PCI, CXL, and others.”h]”(hŒThis data is stored in the ”…””}”(hj hžhhŸNh NubhŒtitle_reference”“”)”}”(hŒ`hwerror_data`”h]”hŒ hwerror_data”…””}”(hjªhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¨hj ubhŒQ array, categorized by error source types like CPU, memory, PCI, CXL, and others.”…””}”(hj hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K#hjœubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjhžhhŸh³h Nubj)”}”(hŒ‰It is exposed via vmcoreinfo crash dump notes and can be read using tools like `crash`, `drgn`, or other kernel crash analysis utilities.”h]”hÛ)”}”(hŒ‰It is exposed via vmcoreinfo crash dump notes and can be read using tools like `crash`, `drgn`, or other kernel crash analysis utilities.”h]”(hŒOIt is exposed via vmcoreinfo crash dump notes and can be read using tools like ”…””}”(hjÌhžhhŸNh Nubj©)”}”(hŒ`crash`”h]”hŒcrash”…””}”(hjÔhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¨hjÌubhŒ, ”…””}”(hjÌhžhhŸNh Nubj©)”}”(hŒ`drgn`”h]”hŒdrgn”…””}”(hjæhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¨hjÌubhŒ+, or other kernel crash analysis utilities.”…””}”(hjÌhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K%hjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjhžhhŸh³h Nubj)”}”(hŒEThere is no other way to read these data other than from crash dumps.”h]”hÛ)”}”(hjh]”hŒEThere is no other way to read these data other than from crash dumps.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K'hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjhžhhŸh³h Nubj)”}”(hŒSThese errors are divided by area, which includes CPU, Memory, PCI, CXL and others. ”h]”hÛ)”}”(hŒRThese errors are divided by area, which includes CPU, Memory, PCI, CXL and others.”h]”hŒRThese errors are divided by area, which includes CPU, Memory, PCI, CXL and others.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K(hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjhžhhŸh³h Nubeh}”(h]”h ]”h"]”h$]”h&]”jfjguh1jhŸh³h K!hjphžhubhÛ)”}”(hŒ%Typical usage example (in drgn REPL):”h]”hŒ%Typical usage example (in drgn REPL):”…””}”(hj9hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K+hjphžhubhŒ literal_block”“”)”}”(hŒ>>> prog['hwerror_data'] (struct hwerror_info[HWERR_RECOV_MAX]){ { .count = (int)844, .timestamp = (time64_t)1752852018, }, ... }”h]”hŒ>>> prog['hwerror_data'] (struct hwerror_info[HWERR_RECOV_MAX]){ { .count = (int)844, .timestamp = (time64_t)1752852018, }, ... }”…””}”hjIsbah}”(h]”h ]”h"]”h$]”h&]”h±h²Œforce”‰Œlanguage”Œpython”Œhighlight_args”}”uh1jGhŸh³h K-hjphžhubeh}”(h]”Œdata-exposure-and-consumption”ah ]”h"]”Œdata exposure and consumption”ah$]”h&]”uh1h´hh¶hžhhŸh³h Kubhµ)”}”(hhh]”(hº)”}”(hŒEnabling”h]”hŒEnabling”…””}”(hjghžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjdhžhhŸh³h K9ubj)”}”(hhh]”j)”}”(hŒ8This feature is enabled when CONFIG_VMCORE_INFO is set. ”h]”hÛ)”}”(hŒ7This feature is enabled when CONFIG_VMCORE_INFO is set.”h]”hŒ7This feature is enabled when CONFIG_VMCORE_INFO is set.”…””}”(hj|hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K;hjxubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjuhžhhŸh³h Nubah}”(h]”h ]”h"]”h$]”h&]”jfjguh1jhŸh³h K;hjdhžhubeh}”(h]”Œenabling”ah ]”h"]”Œenabling”ah$]”h&]”uh1h´hh¶hžhhŸh³h K9ubeh}”(h]”Œ1recoverable-hardware-error-tracking-in-vmcoreinfo”ah ]”h"]”Œ1recoverable hardware error tracking in vmcoreinfo”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 hýhújmjjjaj^j›j˜uŒ nametypes”}”(j£‰hý‰jm‰ja‰j›‰uh}”(j h¶húhÉjjjj^jpj˜jduŒ 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.