€•30Œ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ŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ4/translations/pt_BR/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.”…””}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j*hj'h²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.”…””}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KhjDubah}”(h]”h ]”h"]”h$]”h&]”uh1j*hj'h²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.”…””}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1j*hj'h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1j%h³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”…””}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj„h²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&]”uh1j*hj•h²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&]”uh1j*hj•h²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&]”uh1j*hj•h²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&]”uh1j*hj•h²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.”…””}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K(hj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j*hj•h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jzj{uh1j%h³hÇh´K!hj„h²hubhï)”}”(hŒ%Typical usage example (in drgn REPL):”h]”hŒ%Typical usage example (in drgn REPL):”…””}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K+hj„h²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, }, ... }”…””}”hj]sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒforce”‰Œlanguage”Œpython”Œhighlight_args”}”uh1j[h³hÇh´K-hj„h²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”…””}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjxh²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.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K;hjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1j*hj‰h²hh³hÇh´Nubah}”(h]”h ]”h"]”h$]”h&]”jzj{uh1j%h³hÇh´K;hjxh²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´jjjj~jujrj¯j¬uŒ nametypes”}”(j·‰j‰j‰ju‰j¯‰uh}”(j´hÊjhÝj~jjrj„j¬jxuŒ 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.