€•Ð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”Œ,/translations/zh_CN/power/shutdown-debugging”Œ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/power/shutdown-debugging”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/it_IT/power/shutdown-debugging”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/ja_JP/power/shutdown-debugging”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/ko_KR/power/shutdown-debugging”Œ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/power/shutdown-debugging”Œ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ŸŒF/var/lib/git/docbuild/linux/Documentation/power/shutdown-debugging.rst”h KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ+Debugging Kernel Shutdown Hangs with pstore”h]”hŒ+Debugging Kernel Shutdown Hangs with pstore”…””}”(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”“”)”}”(hŒeIf the system hangs while shutting down, the kernel logs may need to be retrieved to debug the issue.”h]”hŒeIf the system hangs while shutting down, the kernel logs may need to be retrieved to debug the issue.”…””}”(hhÜhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h KhhÉhžhubhÛ)”}”(hŒuOn systems that have a UART available, it is best to configure the kernel to use this UART for kernel console output.”h]”hŒuOn systems that have a UART available, it is best to configure the kernel to use this UART for kernel console output.”…””}”(hhêhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K hhÉhžhubhÛ)”}”(hŒ¢If a UART isn't available, the ``pstore`` subsystem provides a mechanism to persist this data across a system reset, allowing it to be retrieved on the next boot.”h]”(hŒ!If a UART isn’t available, the ”…””}”(hhøhžhhŸNh NubhŒliteral”“”)”}”(hŒ ``pstore``”h]”hŒpstore”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhøubhŒy subsystem provides a mechanism to persist this data across a system reset, allowing it to be retrieved on the next boot.”…””}”(hhøhžhhŸNh Nubeh}”(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ŒKernel Configuration”h]”hŒKernel Configuration”…””}”(hj%hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hj"hžhhŸh³h KubhÛ)”}”(hŒoTo enable ``pstore`` and enable saving kernel ring buffer logs, set the following kernel configuration options:”h]”(hŒ To enable ”…””}”(hj3hžhhŸNh Nubj)”}”(hŒ ``pstore``”h]”hŒpstore”…””}”(hj;hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj3ubhŒ[ and enable saving kernel ring buffer logs, set the following kernel configuration options:”…””}”(hj3hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h Khj"hžhubhŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒ``CONFIG_PSTORE=y``”h]”hÛ)”}”(hj\h]”j)”}”(hj\h]”hŒCONFIG_PSTORE=y”…””}”(hjahžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h KhjZubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjUhžhhŸh³h NubjY)”}”(hŒ``CONFIG_PSTORE_CONSOLE=y`` ”h]”hÛ)”}”(hŒ``CONFIG_PSTORE_CONSOLE=y``”h]”j)”}”(hj€h]”hŒCONFIG_PSTORE_CONSOLE=y”…””}”(hj‚hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h Khjzubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjUhžhhŸh³h Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1jShŸh³h Khj"hžhubhÛ)”}”(hŒnAdditionally, enable a backend to store the data. Depending upon your platform some potential options include:”h]”hŒnAdditionally, enable a backend to store the data. Depending upon your platform some potential options include:”…””}”(hj£hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h Khj"hžhubjT)”}”(hhh]”(jY)”}”(hŒ``CONFIG_EFI_VARS_PSTORE=y``”h]”hÛ)”}”(hj¶h]”j)”}”(hj¶h]”hŒCONFIG_EFI_VARS_PSTORE=y”…””}”(hj»hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h Khj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj±hžhhŸh³h NubjY)”}”(hŒ``CONFIG_PSTORE_RAM=y``”h]”hÛ)”}”(hjÖh]”j)”}”(hjÖh]”hŒCONFIG_PSTORE_RAM=y”…””}”(hjÛhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjØubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h KhjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj±hžhhŸh³h NubjY)”}”(hŒ``CONFIG_CHROMEOS_PSTORE=y``”h]”hÛ)”}”(hjöh]”j)”}”(hjöh]”hŒCONFIG_CHROMEOS_PSTORE=y”…””}”(hjûhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjøubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h Khjôubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj±hžhhŸh³h NubjY)”}”(hŒ``CONFIG_PSTORE_BLK=y`` ”h]”hÛ)”}”(hŒ``CONFIG_PSTORE_BLK=y``”h]”j)”}”(hjh]”hŒCONFIG_PSTORE_BLK=y”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj±hžhhŸh³h Nubeh}”(h]”h ]”h"]”h$]”h&]”j¡j¢uh1jShŸh³h Khj"hžhubeh}”(h]”Œkernel-configuration”ah ]”h"]”Œkernel configuration”ah$]”h&]”uh1h´hh¶hžhhŸh³h Kubhµ)”}”(hhh]”(hº)”}”(hŒKernel Command-line Parameters”h]”hŒKernel Command-line Parameters”…””}”(hjFhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjChžhhŸh³h K#ubhÛ)”}”(hŒ1Add these parameters to your kernel command line:”h]”hŒ1Add these parameters to your kernel command line:”…””}”(hjThžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K$hjChžhubjT)”}”(hhh]”(jY)”}”(hŒ``printk.always_kmsg_dump=Y`` * Forces the kernel to dump the entire message buffer to pstore during shutdown”h]”hŒdefinition_list”“”)”}”(hhh]”hŒdefinition_list_item”“”)”}”(hŒu``printk.always_kmsg_dump=Y`` * Forces the kernel to dump the entire message buffer to pstore during shutdown”h]”(hŒterm”“”)”}”(hŒ``printk.always_kmsg_dump=Y``”h]”j)”}”(hjxh]”hŒprintk.always_kmsg_dump=Y”…””}”(hjzhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jthŸh³h K'hjpubhŒ definition”“”)”}”(hhh]”jT)”}”(hhh]”jY)”}”(hŒSForces the kernel to dump the entire message buffer to pstore during shutdown”h]”jj)”}”(hhh]”jo)”}”(hŒMForces the kernel to dump the entire message buffer to pstore during shutdown”h]”(ju)”}”(hŒDForces the kernel to dump the entire message buffer to pstore during”h]”hŒDForces the kernel to dump the entire message buffer to pstore during”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jthŸh³h K'hjœubjŽ)”}”(hhh]”hÛ)”}”(hŒshutdown”h]”hŒshutdown”…””}”(hj±hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K(hj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjœubeh}”(h]”h ]”h"]”h$]”h&]”uh1jnhŸh³h K'hj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jihj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj’ubah}”(h]”h ]”h"]”h$]”h&]”j¡j¢uh1jShŸh³h K'hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjpubeh}”(h]”h ]”h"]”h$]”h&]”uh1jnhŸh³h K'hjkubah}”(h]”h ]”h"]”h$]”h&]”uh1jihjeubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjbhžhhŸNh NubjY)”}”(hŒa``efi_pstore.pstore_disable=N`` * For EFI-based systems, ensures the EFI backend is active ”h]”jj)”}”(hhh]”jo)”}”(hŒ[``efi_pstore.pstore_disable=N`` * For EFI-based systems, ensures the EFI backend is active ”h]”(ju)”}”(hŒ``efi_pstore.pstore_disable=N``”h]”j)”}”(hjh]”hŒefi_pstore.pstore_disable=N”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jthŸh³h K*hjüubjŽ)”}”(hhh]”jT)”}”(hhh]”jY)”}”(hŒ9For EFI-based systems, ensures the EFI backend is active ”h]”hÛ)”}”(hŒ8For EFI-based systems, ensures the EFI backend is active”h]”hŒ8For EFI-based systems, ensures the EFI backend is active”…””}”(hj!hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K*hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjubah}”(h]”h ]”h"]”h$]”h&]”j¡j¢uh1jShŸh³h K*hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjüubeh}”(h]”h ]”h"]”h$]”h&]”uh1jnhŸh³h K*hjùubah}”(h]”h ]”h"]”h$]”h&]”uh1jihjõubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjbhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”j¡j¢uh1jShŸh³h K&hjChžhubeh}”(h]”Œkernel-command-line-parameters”ah ]”h"]”Œkernel command-line parameters”ah$]”h&]”uh1h´hh¶hžhhŸh³h K#ubhµ)”}”(hhh]”(hº)”}”(hŒ'Userspace Interaction and Log Retrieval”h]”hŒ'Userspace Interaction and Log Retrieval”…””}”(hjdhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjahžhhŸh³h K-ubhÛ)”}”(hŒOn the next boot after a hang, pstore logs will be available in the pstore filesystem (``/sys/fs/pstore``) and can be retrieved by userspace.”h]”(hŒWOn the next boot after a hang, pstore logs will be available in the pstore filesystem (”…””}”(hjrhžhhŸNh Nubj)”}”(hŒ``/sys/fs/pstore``”h]”hŒ/sys/fs/pstore”…””}”(hjzhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjrubhŒ$) and can be retrieved by userspace.”…””}”(hjrhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K.hjahžhubhÛ)”}”(hŒNOn systemd systems, the ``systemd-pstore`` service will help do the following:”h]”(hŒOn systemd systems, the ”…””}”(hj’hžhhŸNh Nubj)”}”(hŒ``systemd-pstore``”h]”hŒsystemd-pstore”…””}”(hjšhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj’ubhŒ$ service will help do the following:”…””}”(hj’hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K1hjahžhubhŒenumerated_list”“”)”}”(hhh]”(jY)”}”(hŒ(Locate pstore data in ``/sys/fs/pstore``”h]”hÛ)”}”(hj¹h]”(hŒLocate pstore data in ”…””}”(hj»hžhhŸNh Nubj)”}”(hŒ``/sys/fs/pstore``”h]”hŒ/sys/fs/pstore”…””}”(hjÂhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj»ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K3hj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj´hžhhŸh³h NubjY)”}”(hŒ/Read and save it to ``/var/lib/systemd/pstore``”h]”hÛ)”}”(hjÞh]”(hŒRead and save it to ”…””}”(hjàhžhhŸNh Nubj)”}”(hŒ``/var/lib/systemd/pstore``”h]”hŒ/var/lib/systemd/pstore”…””}”(hjçhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjàubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K4hjÜubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj´hžhhŸh³h NubjY)”}”(hŒ$Clear pstore data for the next event”h]”hÛ)”}”(hjh]”hŒ$Clear pstore data for the next event”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K5hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj´hžhhŸh³h Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1j²hjahžhhŸh³h K3ubeh}”(h]”Œ'userspace-interaction-and-log-retrieval”ah ]”h"]”Œ'userspace interaction and log retrieval”ah$]”h&]”uh1h´hh¶hžhhŸh³h K-ubeh}”(h]”Œ+debugging-kernel-shutdown-hangs-with-pstore”ah ]”h"]”Œ+debugging kernel shutdown hangs with pstore”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”jVŒ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”}”(j0j-jjj@j=j^j[j(j%uŒ nametypes”}”(j0‰j‰j@‰j^‰j(‰uh}”(j-h¶jhÉj=j"j[jCj%jauŒ 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.