€•Œ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/pstore-blk”Œ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/pstore-blk”Œ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/pstore-blk”Œ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/pstore-blk”Œ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/pstore-blk”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/pt_BR/admin-guide/pstore-blk”Œ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/pstore-blk”Œ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³ŒD/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒpstore block oops/panic logger”h]”hŒpstore block oops/panic logger”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Introduction”h]”hŒ Introduction”…”�”}”(hhàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÝh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hŒÉpstore block (pstore/blk) is an oops/panic logger that writes its logs to a block device and non-block device before the system crashes. You can get these log files by mounting pstore filesystem like::”h]”hŒÈpstore block (pstore/blk) is an oops/panic logger that writes its logs to a block device and non-block device before the system crashes. You can get these log files by mounting pstore filesystem like:”…”�”}”(hhðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K hhÝh²hubhŒ literal_block”“”)�”}”(hŒ%mount -t pstore pstore /sys/fs/pstore”h]”hŒ%mount -t pstore pstore /sys/fs/pstore”…”�”}”hjsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hþh³hÇh´K hhÝh²hubeh}”(h]”Œ introduction”ah ]”h"]”Œ introduction”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒpstore block concepts”h]”hŒpstore block concepts”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjh²hh³hÇh´Kubhï)�”}”(hŒªpstore/blk provides efficient configuration method for pstore/blk, which divides all configurations into two parts, configurations for user and configurations for driver.”h]”hŒªpstore/blk provides efficient configuration method for pstore/blk, which divides all configurations into two parts, configurations for user and configurations for driver.”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khjh²hubhï)�”}”(hŒÉConfigurations for user determine how pstore/blk works, such as pmsg_size, kmsg_size and so on. All of them support both Kconfig and module parameters, but module parameters have priority over Kconfig.”h]”hŒÉConfigurations for user determine how pstore/blk works, such as pmsg_size, kmsg_size and so on. All of them support both Kconfig and module parameters, but module parameters have priority over Kconfig.”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khjh²hubhï)�”}”(hŒˆConfigurations for driver are all about block device and non-block device, such as total_size of block device and read/write operations.”h]”hŒˆConfigurations for driver are all about block device and non-block device, such as total_size of block device and read/write operations.”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khjh²hubeh}”(h]”Œpstore-block-concepts”ah ]”h"]”Œpstore block concepts”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒConfigurations for user”h]”hŒConfigurations for user”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjYh²hh³hÇh´Kubhï)�”}”(hŒyAll of these configurations support both Kconfig and module parameters, but module parameters have priority over Kconfig.”h]”hŒyAll of these configurations support both Kconfig and module parameters, but module parameters have priority over Kconfig.”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K!hjYh²hubhï)�”}”(hŒ*Here is an example for module parameters::”h]”hŒ)Here is an example for module parameters:”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K$hjYh²hubhÿ)�”}”(hŒFpstore_blk.blkdev=/dev/mmcblk0p7 pstore_blk.kmsg_size=64 best_effort=y”h]”hŒFpstore_blk.blkdev=/dev/mmcblk0p7 pstore_blk.kmsg_size=64 best_effort=y”…”�”}”hj†sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hþh³hÇh´K&hjYh²hubhï)�”}”(hŒ represents the device number of disk”h]”hï)�”}”(hjØh]”hŒ5/dev/ represents the device number of disk”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K2hjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjÑh²hh³hÇh´NubjÕ)�”}”(hŒu/dev/ represents the device number of partition - device number of disk plus the partition number”h]”hï)�”}”(hŒu/dev/ represents the device number of partition - device number of disk plus the partition number”h]”hŒu/dev/ represents the device number of partition - device number of disk plus the partition number”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K3hjíubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjÑh²hh³hÇh´NubjÕ)�”}”(hŒx/dev/p - same as the above; this form is used when disk name of partitioned disk ends with a digit. ”h]”hï)�”}”(hŒw/dev/p - same as the above; this form is used when disk name of partitioned disk ends with a digit.”h]”hŒw/dev/p - same as the above; this form is used when disk name of partitioned disk ends with a digit.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K5hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjÑh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1jÏhj¢h²hh³hÇh´K2ubhï)�”}”(hŒRWhen pstore/blk is built into the kernel, "blkdev" accepts the following variants:”h]”hŒVWhen pstore/blk is built into the kernel, “blkdevâ€� accepts the following variants:”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K8hj¢h²hubjÐ)�”}”(hhh]”(jÕ)�”}”(hŒi device number in hexadecimal representation, with no leading 0x, for example b302.”h]”hï)�”}”(hŒi device number in hexadecimal representation, with no leading 0x, for example b302.”h]”hŒi device number in hexadecimal representation, with no leading 0x, for example b302.”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K:hj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj6h²hh³hÇh´NubjÕ)�”}”(hX€PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF represents the unique id of a partition if the partition table provides it. The UUID may be either an EFI/GPT UUID, or refer to an MSDOS partition using the format SSSSSSSS-PP, where SSSSSSSS is a zero-filled hex representation of the 32-bit "NT disk signature", and PP is a zero-filled hex representation of the 1-based partition number.”h]”hï)�”}”(hX€PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF represents the unique id of a partition if the partition table provides it. The UUID may be either an EFI/GPT UUID, or refer to an MSDOS partition using the format SSSSSSSS-PP, where SSSSSSSS is a zero-filled hex representation of the 32-bit "NT disk signature", and PP is a zero-filled hex representation of the 1-based partition number.”h]”hX„PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF represents the unique id of a partition if the partition table provides it. The UUID may be either an EFI/GPT UUID, or refer to an MSDOS partition using the format SSSSSSSS-PP, where SSSSSSSS is a zero-filled hex representation of the 32-bit “NT disk signatureâ€�, and PP is a zero-filled hex representation of the 1-based partition number.”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K/PARTNROFF= to select a partition in relation to a partition with a known unique id.”h]”hï)�”}”(hŒhPARTUUID=/PARTNROFF= to select a partition in relation to a partition with a known unique id.”h]”hŒhPARTUUID=/PARTNROFF= to select a partition in relation to a partition with a known unique id.”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KBhjiubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj6h²hh³hÇh´NubjÕ)�”}”(hŒK: major and minor number of the device separated by a colon. ”h]”hï)�”}”(hŒJ: major and minor number of the device separated by a colon.”h]”hŒJ: major and minor number of the device separated by a colon.”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KDhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj6h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j#j$j%hj&j'uh1jÏhj¢h²hh³hÇh´K:ubhï)�”}”(hŒ1It accepts the following variants for MTD device:”h]”hŒ1It accepts the following variants for MTD device:”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KFhj¢h²hubjÐ)�”}”(hhh]”(jÕ)�”}”(hŒ7 MTD device name. "pstore" is recommended.”h]”hï)�”}”(hj²h]”hŒ; MTD device name. “pstoreâ€� is recommended.”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KHhj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj­h²hh³hÇh´NubjÕ)�”}”(hŒ# MTD device number. ”h]”hï)�”}”(hŒ" MTD device number.”h]”hŒ" MTD device number.”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KIhjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj­h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j#j$j%hj&j'uh1jÏhj¢h²hh³hÇh´KHubeh}”(h]”Œblkdev”ah ]”h"]”Œblkdev”ah$]”h&]”uh1hÈhjYh²hh³hÇh´K+ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ kmsg_size”h]”hŒ kmsg_size”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjíh²hh³hÇh´KLubhï)�”}”(hŒ‰The chunk size in KB for oops/panic front-end. It **MUST** be a multiple of 4. It's optional if you do not care about the oops/panic log.”h]”(hŒ2The chunk size in KB for oops/panic front-end. It ”…”�”}”(hjþh²hh³Nh´NubhŒstrong”“”)�”}”(hŒ**MUST**”h]”hŒMUST”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjþubhŒQ be a multiple of 4. It’s optional if you do not care about the oops/panic log.”…”�”}”(hjþh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KNhjíh²hubhï)�”}”(hŒsThere are multiple chunks for oops/panic front-end depending on the remaining space except other pstore front-ends.”h]”hŒsThere are multiple chunks for oops/panic front-end depending on the remaining space except other pstore front-ends.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KQhjíh²hubhï)�”}”(hŒzpstore/blk will log to oops/panic chunks one by one, and always overwrite the oldest chunk if there is no more free chunk.”h]”hŒzpstore/blk will log to oops/panic chunks one by one, and always overwrite the oldest chunk if there is no more free chunk.”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KThjíh²hubeh}”(h]”Œ kmsg-size”ah ]”h"]”Œ kmsg_size”ah$]”h&]”uh1hÈhjYh²hh³hÇh´KLubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ pmsg_size”h]”hŒ pmsg_size”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjDh²hh³hÇh´KXubhï)�”}”(hŒ}The chunk size in KB for pmsg front-end. It **MUST** be a multiple of 4. It's optional if you do not care about the pmsg log.”h]”(hŒ,The chunk size in KB for pmsg front-end. It ”…”�”}”(hjUh²hh³Nh´Nubj)�”}”(hŒ**MUST**”h]”hŒMUST”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjUubhŒK be a multiple of 4. It’s optional if you do not care about the pmsg log.”…”�”}”(hjUh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KZhjDh²hubhï)�”}”(hŒHUnlike oops/panic front-end, there is only one chunk for pmsg front-end.”h]”hŒHUnlike oops/panic front-end, there is only one chunk for pmsg front-end.”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K]hjDh²hubhï)�”}”(hŒ¬Pmsg is a user space accessible pstore object. Writes to */dev/pmsg0* are appended to the chunk. On reboot the contents are available in */sys/fs/pstore/pmsg-pstore-blk-0*.”h]”(hŒ9Pmsg is a user space accessible pstore object. Writes to ”…”�”}”(hjƒh²hh³Nh´NubhŒemphasis”“”)�”}”(hŒ */dev/pmsg0*”h]”hŒ /dev/pmsg0”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹hjƒubhŒD are appended to the chunk. On reboot the contents are available in ”…”�”}”(hjƒh²hh³Nh´NubjŒ)�”}”(hŒ"*/sys/fs/pstore/pmsg-pstore-blk-0*”h]”hŒ /sys/fs/pstore/pmsg-pstore-blk-0”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹hjƒubhŒ.”…”�”}”(hjƒh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K_hjDh²hubeh}”(h]”Œ pmsg-size”ah ]”h"]”Œ pmsg_size”ah$]”h&]”uh1hÈhjYh²hh³hÇh´KXubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ console_size”h]”hŒ console_size”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj¿h²hh³hÇh´Kdubhï)�”}”(hŒ„The chunk size in KB for console front-end. It **MUST** be a multiple of 4. It's optional if you do not care about the console log.”h]”(hŒ0The chunk size in KB for console front-end. It ”…”�”}”(hjÐh²hh³Nh´Nubj)�”}”(hŒ**MUST**”h]”hŒMUST”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÐubhŒN be a multiple of 4. It’s optional if you do not care about the console log.”…”�”}”(hjÐh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kfhj¿h²hubhï)�”}”(hŒISimilar to pmsg front-end, there is only one chunk for console front-end.”h]”hŒISimilar to pmsg front-end, there is only one chunk for console front-end.”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kihj¿h²hubhï)�”}”(hŒ€All log of console will be appended to the chunk. On reboot the contents are available in */sys/fs/pstore/console-pstore-blk-0*.”h]”(hŒZAll log of console will be appended to the chunk. On reboot the contents are available in ”…”�”}”(hjþh²hh³Nh´NubjŒ)�”}”(hŒ%*/sys/fs/pstore/console-pstore-blk-0*”h]”hŒ#/sys/fs/pstore/console-pstore-blk-0”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹hjþubhŒ.”…”�”}”(hjþh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kkhj¿h²hubeh}”(h]”Œ console-size”ah ]”h"]”Œ console_size”ah$]”h&]”uh1hÈhjYh²hh³hÇh´KdubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ ftrace_size”h]”hŒ ftrace_size”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj&h²hh³hÇh´Koubhï)�”}”(hŒ�The chunk size in KB for ftrace front-end. It **MUST** be a multiple of 4. It's optional if you do not care about the ftrace log.”h]”(hŒ.The chunk size in KB for ftrace front-end. It ”…”�”}”(hj7h²hh³Nh´Nubj)�”}”(hŒ**MUST**”h]”hŒMUST”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj7ubhŒM be a multiple of 4. It’s optional if you do not care about the ftrace log.”…”�”}”(hj7h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kqhj&h²hubhï)�”}”(hŒ¯Similar to oops front-end, there are multiple chunks for ftrace front-end depending on the count of cpu processors. Each chunk size is equal to ftrace_size / processors_count.”h]”hŒ¯Similar to oops front-end, there are multiple chunks for ftrace front-end depending on the count of cpu processors. Each chunk size is equal to ftrace_size / processors_count.”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kthj&h²hubhï)�”}”(hŒ‹All log of ftrace will be appended to the chunk. On reboot the contents are combined and available in */sys/fs/pstore/ftrace-pstore-blk-0*.”h]”(hŒfAll log of ftrace will be appended to the chunk. On reboot the contents are combined and available in ”…”�”}”(hjeh²hh³Nh´NubjŒ)�”}”(hŒ$*/sys/fs/pstore/ftrace-pstore-blk-0*”h]”hŒ"/sys/fs/pstore/ftrace-pstore-blk-0”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹hjeubhŒ.”…”�”}”(hjeh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kxhj&h²hubhï)�”}”(hŒ{Persistent function tracing might be useful for debugging software or hardware related hangs. Here is an example of usage::”h]”hŒzPersistent function tracing might be useful for debugging software or hardware related hangs. Here is an example of usage:”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K{hj&h²hubhÿ)�”}”(hX«# mount -t pstore pstore /sys/fs/pstore # mount -t debugfs debugfs /sys/kernel/debug/ # echo 1 > /sys/kernel/debug/pstore/record_ftrace # reboot -f [...] # mount -t pstore pstore /sys/fs/pstore # tail /sys/fs/pstore/ftrace-pstore-blk-0 CPU:0 ts:5914676 c0063828 c0063b94 call_cpuidle <- cpu_startup_entry+0x1b8/0x1e0 CPU:0 ts:5914678 c039ecdc c006385c cpuidle_enter_state <- call_cpuidle+0x44/0x48 CPU:0 ts:5914680 c039e9a0 c039ecf0 cpuidle_enter_freeze <- cpuidle_enter_state+0x304/0x314 CPU:0 ts:5914681 c0063870 c039ea30 sched_idle_set_state <- cpuidle_enter_state+0x44/0x314 CPU:1 ts:5916720 c0160f59 c015ee04 kernfs_unmap_bin_file <- __kernfs_remove+0x140/0x204 CPU:1 ts:5916721 c05ca625 c015ee0c __mutex_lock_slowpath <- __kernfs_remove+0x148/0x204 CPU:1 ts:5916723 c05c813d c05ca630 yield_to <- __mutex_lock_slowpath+0x314/0x358 CPU:1 ts:5916724 c05ca2d1 c05ca638 __ww_mutex_lock <- __mutex_lock_slowpath+0x31c/0x358”h]”hX«# mount -t pstore pstore /sys/fs/pstore # mount -t debugfs debugfs /sys/kernel/debug/ # echo 1 > /sys/kernel/debug/pstore/record_ftrace # reboot -f [...] # mount -t pstore pstore /sys/fs/pstore # tail /sys/fs/pstore/ftrace-pstore-blk-0 CPU:0 ts:5914676 c0063828 c0063b94 call_cpuidle <- cpu_startup_entry+0x1b8/0x1e0 CPU:0 ts:5914678 c039ecdc c006385c cpuidle_enter_state <- call_cpuidle+0x44/0x48 CPU:0 ts:5914680 c039e9a0 c039ecf0 cpuidle_enter_freeze <- cpuidle_enter_state+0x304/0x314 CPU:0 ts:5914681 c0063870 c039ea30 sched_idle_set_state <- cpuidle_enter_state+0x44/0x314 CPU:1 ts:5916720 c0160f59 c015ee04 kernfs_unmap_bin_file <- __kernfs_remove+0x140/0x204 CPU:1 ts:5916721 c05ca625 c015ee0c __mutex_lock_slowpath <- __kernfs_remove+0x148/0x204 CPU:1 ts:5916723 c05c813d c05ca630 yield_to <- __mutex_lock_slowpath+0x314/0x358 CPU:1 ts:5916724 c05ca2d1 c05ca638 __ww_mutex_lock <- __mutex_lock_slowpath+0x31c/0x358”…”�”}”hj“sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hþh³hÇh´K~hj&h²hubeh}”(h]”Œ ftrace-size”ah ]”h"]”Œ ftrace_size”ah$]”h&]”uh1hÈhjYh²hh³hÇh´KoubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ max_reason”h]”hŒ max_reason”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj©h²hh³hÇh´K�ubhï)�”}”(hX Limiting which kinds of kmsg dumps are stored can be controlled via the ``max_reason`` value, as defined in include/linux/kmsg_dump.h's ``enum kmsg_dump_reason``. For example, to store both Oopses and Panics, ``max_reason`` should be set to 2 (KMSG_DUMP_OOPS), to store only Panics ``max_reason`` should be set to 1 (KMSG_DUMP_PANIC). Setting this to 0 (KMSG_DUMP_UNDEF), means the reason filtering will be controlled by the ``printk.always_kmsg_dump`` boot param: if unset, it'll be KMSG_DUMP_OOPS, otherwise KMSG_DUMP_MAX.”h]”(hŒHLimiting which kinds of kmsg dumps are stored can be controlled via the ”…”�”}”(hjºh²hh³Nh´NubhŒliteral”“”)�”}”(hŒ``max_reason``”h]”hŒ max_reason”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjºubhŒ4 value, as defined in include/linux/kmsg_dump.h’s ”…”�”}”(hjºh²hh³Nh´NubjÃ)�”}”(hŒ``enum kmsg_dump_reason``”h]”hŒenum kmsg_dump_reason”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjºubhŒ0. For example, to store both Oopses and Panics, ”…”�”}”(hjºh²hh³Nh´NubjÃ)�”}”(hŒ``max_reason``”h]”hŒ max_reason”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjºubhŒ; should be set to 2 (KMSG_DUMP_OOPS), to store only Panics ”…”�”}”(hjºh²hh³Nh´NubjÃ)�”}”(hŒ``max_reason``”h]”hŒ max_reason”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjºubhŒ� should be set to 1 (KMSG_DUMP_PANIC). Setting this to 0 (KMSG_DUMP_UNDEF), means the reason filtering will be controlled by the ”…”�”}”(hjºh²hh³Nh´NubjÃ)�”}”(hŒ``printk.always_kmsg_dump``”h]”hŒprintk.always_kmsg_dump”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjºubhŒJ boot param: if unset, it’ll be KMSG_DUMP_OOPS, otherwise KMSG_DUMP_MAX.”…”�”}”(hjºh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K‘hj©h²hubeh}”(h]”Œ max-reason”ah ]”h"]”Œ max_reason”ah$]”h&]”uh1hÈhjYh²hh³hÇh´K�ubeh}”(h]”Œconfigurations-for-user”ah ]”h"]”Œconfigurations for user”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒConfigurations for driver”h]”hŒConfigurations for driver”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj4h²hh³hÇh´K›ubhï)�”}”(hŒmA device driver uses ``register_pstore_device`` with ``struct pstore_device_info`` to register to pstore/blk.”h]”(hŒA device driver uses ”…”�”}”(hjEh²hh³Nh´NubjÃ)�”}”(hŒ``register_pstore_device``”h]”hŒregister_pstore_device”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjEubhŒ with ”…”�”}”(hjEh²hh³Nh´NubjÃ)�”}”(hŒ``struct pstore_device_info``”h]”hŒstruct pstore_device_info”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjEubhŒ to register to pstore/blk.”…”�”}”(hjEh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K�hj4h²hubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œ#register_pstore_device (C function)”Œc.register_pstore_device”hNt”auh1jwhj4h²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒ;int register_pstore_device (struct pstore_device_info *dev)”h]”hŒdesc_signature_line”“”)�”}”(hŒ:int register_pstore_device(struct pstore_device_info *dev)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒint”h]”hŒint”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1j™hj•h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:160: ./fs/pstore/blk.c”h´K’ubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j«hj•h²hh³jªh´K’ubhŒ desc_name”“”)�”}”(hŒregister_pstore_device”h]”hŒ desc_sig_name”“”)�”}”(hŒregister_pstore_device”h]”hŒregister_pstore_device”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jÂhj¾ubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1j¼hj•h²hh³jªh´K’ubhŒdesc_parameterlist”“”)�”}”(hŒ (struct pstore_device_info *dev)”h]”hŒdesc_parameter”“”)�”}”(hŒstruct pstore_device_info *dev”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1jçhjãubj¬)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hjãubh)�”}”(hhh]”jÃ)�”}”(hŒpstore_device_info”h]”hŒpstore_device_info”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÏah"]”h$]”h&]”uh1jÂhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”Œc”Œreftype”Œ identifier”Œ reftarget”j Œmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”j%Œ ASTIdentifier”“”)�”}”j jÆsbŒc.register_pstore_device”†”asbuh1hhjãubj¬)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hjãubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1j@hjãubjÃ)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”jÏah"]”h$]”h&]”uh1jÂhjãubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jáhjÝubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÛhj•h²hh³jªh´K’ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1j“Œsphinx_line_type”Œ declarator”hj�h²hh³jªh´K’ubah}”(h]”j†ah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1j�h³jªh´K’hjŠh²hubhŒ desc_content”“”)�”}”(hhh]”hï)�”}”(hŒ'register non-block device to pstore/blk”h]”hŒ'register non-block device to pstore/blk”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒW/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:160: ./fs/pstore/blk.c”h´K’hj‚h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hjŠh²hh³jªh´K’ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”Œdomain”jŒobjtype”j�Œdesctype”j�Œnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1jˆh²hhj4h³Nh´NubhŒ container”“”)�”}”(hŒ�**Parameters** ``struct pstore_device_info *dev`` non-block device information **Return** * 0 - OK * Others - something error.”h]”(hï)�”}”(hŒ**Parameters**”h]”j)�”}”(hj¯h]”hŒ Parameters”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒW/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:160: ./fs/pstore/blk.c”h´K–hj©ubhŒdefinition_list”“”)�”}”(hhh]”hŒdefinition_list_item”“”)�”}”(hŒ@``struct pstore_device_info *dev`` non-block device information ”h]”(hŒterm”“”)�”}”(hŒ"``struct pstore_device_info *dev``”h]”jÃ)�”}”(hjÔh]”hŒstruct pstore_device_info *dev”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒW/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:160: ./fs/pstore/blk.c”h´K”hjÌubhŒ definition”“”)�”}”(hhh]”hï)�”}”(hŒnon-block device information”h]”hŒnon-block device information”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jéh´K”hjìubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjÌubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jéh´K”hjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj©ubhï)�”}”(hŒ **Return**”h]”j)�”}”(hjh]”hŒReturn”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒW/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:160: ./fs/pstore/blk.c”h´K–hj©ubhŒ bullet_list”“”)�”}”(hhh]”(jÕ)�”}”(hŒ0 - OK”h]”hï)�”}”(hj.h]”hŒ0 - OK”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒW/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:160: ./fs/pstore/blk.c”h´K–hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj)ubjÕ)�”}”(hŒOthers - something error.”h]”hï)�”}”(hjFh]”hŒOthers - something error.”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒW/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:160: ./fs/pstore/blk.c”h´K—hjDubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj)ubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”jDuh1j'h³j=h´K–hj©ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j§hj4h²hh³Nh´Nubjx)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j„Œ%unregister_pstore_device (C function)”Œc.unregister_pstore_device”hNt”auh1jwhj4h²hh³Nh´Nubj‰)�”}”(hhh]”(jŽ)�”}”(hŒ>void unregister_pstore_device (struct pstore_device_info *dev)”h]”j”)�”}”(hŒ=void unregister_pstore_device(struct pstore_device_info *dev)”h]”(jš)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hjh²hh³ŒW/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:160: ./fs/pstore/blk.c”h´K°ubj¬)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hjh²hh³j‘h´K°ubj½)�”}”(hŒunregister_pstore_device”h]”jÃ)�”}”(hŒunregister_pstore_device”h]”hŒunregister_pstore_device”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”jÏah"]”h$]”h&]”uh1jÂhj ubah}”(h]”h ]”(jÖj×eh"]”h$]”h&]”hÅhÆuh1j¼hjh²hh³j‘h´K°ubjÜ)�”}”(hŒ (struct pstore_device_info *dev)”h]”jâ)�”}”(hŒstruct pstore_device_info *dev”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhj¼ubj¬)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hj¼ubh)�”}”(hhh]”jÃ)�”}”(hŒpstore_device_info”h]”hŒpstore_device_info”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”jÏah"]”h$]”h&]”uh1jÂhjÛubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j Œ reftarget”jàŒmodname”NŒ classname”Nj$j')�”}”j*]”j-)�”}”j j¦sbŒc.unregister_pstore_device”†”asbuh1hhj¼ubj¬)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hj¼ubjA)�”}”(hjDh]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1j@hj¼ubjÃ)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÏah"]”h$]”h&]”uh1jÂhj¼ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jáhj¸ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÛhjh²hh³j‘h´K°ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjrˆuh1j“jsjthj{h²hh³j‘h´K°ubah}”(h]”jvah ]”(jxjyeh"]”h$]”h&]”j}ˆj~)jhuh1j�h³j‘h´K°hjxh²hubj�)�”}”(hhh]”hï)�”}”(hŒ+unregister non-block device from pstore/blk”h]”hŒ+unregister non-block device from pstore/blk”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒW/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:160: ./fs/pstore/blk.c”h´K°hj@h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hjxh²hh³j‘h´K°ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”j¡jj¢j[j£j[j¤‰j¥‰j¦‰uh1jˆh²hhj4h³Nh´Nubj¨)�”}”(hŒQ**Parameters** ``struct pstore_device_info *dev`` non-block device information”h]”(hï)�”}”(hŒ**Parameters**”h]”j)�”}”(hjeh]”hŒ Parameters”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjcubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒW/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:160: ./fs/pstore/blk.c”h´K´hj_ubjÆ)�”}”(hhh]”jË)�”}”(hŒ?``struct pstore_device_info *dev`` non-block device information”h]”(jÑ)�”}”(hŒ"``struct pstore_device_info *dev``”h]”jÃ)�”}”(hj„h]”hŒstruct pstore_device_info *dev”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒW/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:160: ./fs/pstore/blk.c”h´K¶hj~ubjë)�”}”(hhh]”hï)�”}”(hŒnon-block device information”h]”hŒnon-block device information”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒW/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:160: ./fs/pstore/blk.c”h´K²hjšubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj~ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³j™h´K¶hj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj_ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j§hj4h²hh³Nh´Nubeh}”(h]”Œconfigurations-for-driver”ah ]”h"]”Œconfigurations for driver”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K›ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒCompression and header”h]”hŒCompression and header”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÍh²hh³hÇh´K¤ubhï)�”}”(hŒÌBlock device is large enough for uncompressed oops data. Actually we do not recommend data compression because pstore/blk will insert some information into the first line of oops/panic data. For example::”h]”hŒËBlock device is large enough for uncompressed oops data. Actually we do not recommend data compression because pstore/blk will insert some information into the first line of oops/panic data. For example:”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¦hjÍh²hubhÿ)�”}”(hŒPanic: Total 16 times”h]”hŒPanic: Total 16 times”…”�”}”hjìsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hþh³hÇh´KªhjÍh²hubhï)�”}”(hŒÆIt means that it's OOPS|Panic for the 16th time since the first booting. Sometimes the number of occurrences of oops|panic since the first booting is important to judge whether the system is stable.”h]”hŒÈIt means that it’s OOPS|Panic for the 16th time since the first booting. Sometimes the number of occurrences of oops|panic since the first booting is important to judge whether the system is stable.”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¬hjÍh²hubhï)�”}”(hŒBThe following line is inserted by pstore filesystem. For example::”h]”hŒAThe following line is inserted by pstore filesystem. For example:”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K°hjÍh²hubhÿ)�”}”(hŒ Oops#2 Part1”h]”hŒ Oops#2 Part1”…”�”}”hj sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hþh³hÇh´K²hjÍh²hubhï)�”}”(hŒ:It means that it's OOPS for the 2nd time on the last boot.”h]”hŒdata** ``should_recover`` whether this zone should recover from storage ``dirty`` whether the data in **buffer** dirty”h]”(hï)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj�ubhŒ:”…”�”}”(hj�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KDhj‰ubhÿ)�”}”(hŒÞstruct pstore_zone { loff_t off; const char *name; enum pstore_type_id type; struct psz_buffer *buffer; struct psz_buffer *oldbuf; size_t buffer_size; bool should_recover; atomic_t dirty; };”h]”hŒÞstruct pstore_zone { loff_t off; const char *name; enum pstore_type_id type; struct psz_buffer *buffer; struct psz_buffer *oldbuf; size_t buffer_size; bool should_recover; atomic_t dirty; };”…”�”}”hjªsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hþh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KFhj‰ubhï)�”}”(hŒ **Members**”h]”j)�”}”(hj»h]”hŒMembers”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KQhj‰ubjÆ)�”}”(hhh]”(jË)�”}”(hŒ``off`` zone offset of storage ”h]”(jÑ)�”}”(hŒ``off``”h]”jÃ)�”}”(hjÚh]”hŒoff”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjØubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KChjÔubjë)�”}”(hhh]”hï)�”}”(hŒzone offset of storage”h]”hŒzone offset of storage”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jïh´KChjðubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjÔubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jïh´KChjÑubjË)�”}”(hŒ&``name`` front-end name for this zone ”h]”(jÑ)�”}”(hŒ``name``”h]”jÃ)�”}”(hjh]”hŒname”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KEhj ubjë)�”}”(hhh]”hï)�”}”(hŒfront-end name for this zone”h]”hŒfront-end name for this zone”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j(h´KEhj)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³j(h´KEhjÑubjË)�”}”(hŒ&``type`` front-end type for this zone ”h]”(jÑ)�”}”(hŒ``type``”h]”jÃ)�”}”(hjLh]”hŒtype”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjJubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KDhjFubjë)�”}”(hhh]”hï)�”}”(hŒfront-end type for this zone”h]”hŒfront-end type for this zone”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jah´KDhjbubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjFubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jah´KDhjÑubjË)�”}”(hŒ7``buffer`` pointer to data buffer managed by this zone ”h]”(jÑ)�”}”(hŒ ``buffer``”h]”jÃ)�”}”(hj…h]”hŒbuffer”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KFhjubjë)�”}”(hhh]”hï)�”}”(hŒ+pointer to data buffer managed by this zone”h]”hŒ+pointer to data buffer managed by this zone”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jšh´KFhj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jšh´KFhjÑubjË)�”}”(hŒ&``oldbuf`` pointer to old data buffer ”h]”(jÑ)�”}”(hŒ ``oldbuf``”h]”jÃ)�”}”(hj¾h]”hŒoldbuf”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KGhj¸ubjë)�”}”(hhh]”hï)�”}”(hŒpointer to old data buffer”h]”hŒpointer to old data buffer”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÓh´KGhjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj¸ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jÓh´KGhjÑubjË)�”}”(hŒ*``buffer_size`` bytes in **buffer->data** ”h]”(jÑ)�”}”(hŒ``buffer_size``”h]”jÃ)�”}”(hj÷h]”hŒ buffer_size”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjõubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KHhjñubjë)�”}”(hhh]”hï)�”}”(hŒbytes in **buffer->data**”h]”(hŒ bytes in ”…”�”}”(hjh²hh³Nh´Nubj)�”}”(hŒ**buffer->data**”h]”hŒ buffer->data”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j h´KHhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjñubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³j h´KHhjÑubjË)�”}”(hŒA``should_recover`` whether this zone should recover from storage ”h]”(jÑ)�”}”(hŒ``should_recover``”h]”jÃ)�”}”(hj>h]”hŒshould_recover”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KIhj8ubjë)�”}”(hhh]”hï)�”}”(hŒ-whether this zone should recover from storage”h]”hŒ-whether this zone should recover from storage”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jSh´KIhjTubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jSh´KIhjÑubjË)�”}”(hŒ.``dirty`` whether the data in **buffer** dirty”h]”(jÑ)�”}”(hŒ ``dirty``”h]”jÃ)�”}”(hjwh]”hŒdirty”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjuubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KIhjqubjë)�”}”(hhh]”hï)�”}”(hŒ$whether the data in **buffer** dirty”h]”(hŒwhether the data in ”…”�”}”(hj�h²hh³Nh´Nubj)�”}”(hŒ **buffer**”h]”hŒbuffer”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj�ubhŒ dirty”…”�”}”(hj�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KJhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjqubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jŒh´KIhjÑubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj‰ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j§hj© h²hh³Nh´Nubhï)�”}”(hŒ**Description**”h]”j)�”}”(hjÌh]”hŒ Description”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KMhj© h²hubhï)�”}”(hŒzone structure in memory.”h]”hŒzone structure in memory.”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KJhj© h²hubjx)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j„Œpsz_context (C struct)”Œ c.psz_context”hNt”auh1jwhj© h²hh³Nh´Nubj‰)�”}”(hhh]”(jŽ)�”}”(hŒ psz_context”h]”j”•ºó)�”}”(hŒstruct psz_context”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhjh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KOubj¬)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hjh²hh³jh´KOubj½)�”}”(hŒ psz_context”h]”jÃ)�”}”(hjh]”hŒ psz_context”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”jÏah"]”h$]”h&]”uh1jÂhj&ubah}”(h]”h ]”(jÖj×eh"]”h$]”h&]”hÅhÆuh1j¼hjh²hh³jh´KOubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjrˆuh1j“jsjthjh²hh³jh´KOubah}”(h]”jýah ]”(jxjyeh"]”h$]”h&]”j}ˆj~)jhuh1j�h³jh´KOhjÿh²hubj�)�”}”(hhh]”hï)�”}”(hŒ&all about running state of pstore/zone”h]”hŒ&all about running state of pstore/zone”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KZhjIh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hjÿh²hh³jh´KOubeh}”(h]”h ]”(jŒstruct”eh"]”h$]”h&]”j¡jj¢jdj£jdj¤‰j¥‰j¦‰uh1jˆh²hhj© h³Nh´Nubj¨)�”}”(hXå**Definition**:: struct psz_context { struct pstore_zone **kpszs; struct pstore_zone *ppsz; struct pstore_zone *cpsz; struct pstore_zone **fpszs; unsigned int kmsg_max_cnt; unsigned int kmsg_read_cnt; unsigned int kmsg_write_cnt; unsigned int pmsg_read_cnt; unsigned int console_read_cnt; unsigned int ftrace_max_cnt; unsigned int ftrace_read_cnt; unsigned int oops_counter; unsigned int panic_counter; atomic_t recovered; atomic_t on_panic; struct mutex pstore_zone_info_lock; struct pstore_zone_info *pstore_zone_info; struct pstore_info pstore; }; **Members** ``kpszs`` kmsg dump storage zones ``ppsz`` pmsg storage zone ``cpsz`` console storage zone ``fpszs`` ftrace storage zones ``kmsg_max_cnt`` max count of **kpszs** ``kmsg_read_cnt`` counter of total read kmsg dumps ``kmsg_write_cnt`` counter of total kmsg dump writes ``pmsg_read_cnt`` counter of total read pmsg zone ``console_read_cnt`` counter of total read console zone ``ftrace_max_cnt`` max count of **fpszs** ``ftrace_read_cnt`` counter of max read ftrace zone ``oops_counter`` counter of oops dumps ``panic_counter`` counter of panic dumps ``recovered`` whether finished recovering data from storage ``on_panic`` whether panic is happening ``pstore_zone_info_lock`` lock to **pstore_zone_info** ``pstore_zone_info`` information from backend ``pstore`` structure for pstore”h]”(hï)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjlubhŒ:”…”�”}”(hjlh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´K^hjhubhÿ)�”}”(hX]struct psz_context { struct pstore_zone **kpszs; struct pstore_zone *ppsz; struct pstore_zone *cpsz; struct pstore_zone **fpszs; unsigned int kmsg_max_cnt; unsigned int kmsg_read_cnt; unsigned int kmsg_write_cnt; unsigned int pmsg_read_cnt; unsigned int console_read_cnt; unsigned int ftrace_max_cnt; unsigned int ftrace_read_cnt; unsigned int oops_counter; unsigned int panic_counter; atomic_t recovered; atomic_t on_panic; struct mutex pstore_zone_info_lock; struct pstore_zone_info *pstore_zone_info; struct pstore_info pstore; };”h]”hX]struct psz_context { struct pstore_zone **kpszs; struct pstore_zone *ppsz; struct pstore_zone *cpsz; struct pstore_zone **fpszs; unsigned int kmsg_max_cnt; unsigned int kmsg_read_cnt; unsigned int kmsg_write_cnt; unsigned int pmsg_read_cnt; unsigned int console_read_cnt; unsigned int ftrace_max_cnt; unsigned int ftrace_read_cnt; unsigned int oops_counter; unsigned int panic_counter; atomic_t recovered; atomic_t on_panic; struct mutex pstore_zone_info_lock; struct pstore_zone_info *pstore_zone_info; struct pstore_info pstore; };”…”�”}”hj‰sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hþh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´K`hjhubhï)�”}”(hŒ **Members**”h]”j)�”}”(hjšh]”hŒMembers”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KuhjhubjÆ)�”}”(hhh]”(jË)�”}”(hŒ"``kpszs`` kmsg dump storage zones ”h]”(jÑ)�”}”(hŒ ``kpszs``”h]”jÃ)�”}”(hj¹h]”hŒkpszs”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´K]hj³ubjë)�”}”(hhh]”hï)�”}”(hŒkmsg dump storage zones”h]”hŒkmsg dump storage zones”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÎh´K]hjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj³ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jÎh´K]hj°ubjË)�”}”(hŒ``ppsz`` pmsg storage zone ”h]”(jÑ)�”}”(hŒ``ppsz``”h]”jÃ)�”}”(hjòh]”hŒppsz”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjðubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´K^hjìubjë)�”}”(hhh]”hï)�”}”(hŒpmsg storage zone”h]”hŒpmsg storage zone”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´K^hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjìubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jh´K^hj°ubjË)�”}”(hŒ``cpsz`` console storage zone ”h]”(jÑ)�”}”(hŒ``cpsz``”h]”jÃ)�”}”(hj+h]”hŒcpsz”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´K_hj%ubjë)�”}”(hhh]”hï)�”}”(hŒconsole storage zone”h]”hŒconsole storage zone”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j@h´K_hjAubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³j@h´K_hj°ubjË)�”}”(hŒ``fpszs`` ftrace storage zones ”h]”(jÑ)�”}”(hŒ ``fpszs``”h]”jÃ)�”}”(hjdh]”hŒfpszs”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjbubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´K`hj^ubjë)�”}”(hhh]”hï)�”}”(hŒftrace storage zones”h]”hŒftrace storage zones”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jyh´K`hjzubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jyh´K`hj°ubjË)�”}”(hŒ(``kmsg_max_cnt`` max count of **kpszs** ”h]”(jÑ)�”}”(hŒ``kmsg_max_cnt``”h]”jÃ)�”}”(hj�h]”hŒ kmsg_max_cnt”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´Kahj—ubjë)�”}”(hhh]”hï)�”}”(hŒmax count of **kpszs**”h]”(hŒ max count of ”…”�”}”(hj¶h²hh³Nh´Nubj)�”}”(hŒ **kpszs**”h]”hŒkpszs”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¶ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j²h´Kahj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³j²h´Kahj°ubjË)�”}”(hŒ3``kmsg_read_cnt`` counter of total read kmsg dumps ”h]”(jÑ)�”}”(hŒ``kmsg_read_cnt``”h]”jÃ)�”}”(hjäh]”hŒ kmsg_read_cnt”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjâubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KbhjÞubjë)�”}”(hhh]”hï)�”}”(hŒ counter of total read kmsg dumps”h]”hŒ counter of total read kmsg dumps”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jùh´Kbhjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjÞubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jùh´Kbhj°ubjË)�”}”(hŒ5``kmsg_write_cnt`` counter of total kmsg dump writes ”h]”(jÑ)�”}”(hŒ``kmsg_write_cnt``”h]”jÃ)�”}”(hjh]”hŒkmsg_write_cnt”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´Kchjubjë)�”}”(hhh]”hï)�”}”(hŒ!counter of total kmsg dump writes”h]”hŒ!counter of total kmsg dump writes”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j2h´Kchj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³j2h´Kchj°ubjË)�”}”(hŒ2``pmsg_read_cnt`` counter of total read pmsg zone ”h]”(jÑ)�”}”(hŒ``pmsg_read_cnt``”h]”jÃ)�”}”(hjVh]”hŒ pmsg_read_cnt”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjTubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KdhjPubjë)�”}”(hhh]”hï)�”}”(hŒcounter of total read pmsg zone”h]”hŒcounter of total read pmsg zone”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jkh´Kdhjlubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjPubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jkh´Kdhj°ubjË)�”}”(hŒ8``console_read_cnt`` counter of total read console zone ”h]”(jÑ)�”}”(hŒ``console_read_cnt``”h]”jÃ)�”}”(hj�h]”hŒconsole_read_cnt”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´Kehj‰ubjë)�”}”(hhh]”hï)�”}”(hŒ"counter of total read console zone”h]”hŒ"counter of total read console zone”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¤h´Kehj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³j¤h´Kehj°ubjË)�”}”(hŒ*``ftrace_max_cnt`` max count of **fpszs** ”h]”(jÑ)�”}”(hŒ``ftrace_max_cnt``”h]”jÃ)�”}”(hjÈh]”hŒftrace_max_cnt”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KfhjÂubjë)�”}”(hhh]”hï)�”}”(hŒmax count of **fpszs**”h]”(hŒ max count of ”…”�”}”(hjáh²hh³Nh´Nubj)�”}”(hŒ **fpszs**”h]”hŒfpszs”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjáubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÝh´KfhjÞubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjÂubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jÝh´Kfhj°ubjË)�”}”(hŒ4``ftrace_read_cnt`` counter of max read ftrace zone ”h]”(jÑ)�”}”(hŒ``ftrace_read_cnt``”h]”jÃ)�”}”(hjh]”hŒftrace_read_cnt”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´Kghj ubjë)�”}”(hhh]”hï)�”}”(hŒcounter of max read ftrace zone”h]”hŒcounter of max read ftrace zone”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j$h´Kghj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³j$h´Kghj°ubjË)�”}”(hŒ'``oops_counter`` counter of oops dumps ”h]”(jÑ)�”}”(hŒ``oops_counter``”h]”jÃ)�”}”(hjHh]”hŒ oops_counter”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjFubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KhhjBubjë)�”}”(hhh]”hï)�”}”(hŒcounter of oops dumps”h]”hŒcounter of oops dumps”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j]h´Khhj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjBubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³j]h´Khhj°ubjË)�”}”(hŒ)``panic_counter`` counter of panic dumps ”h]”(jÑ)�”}”(hŒ``panic_counter``”h]”jÃ)�”}”(hj�h]”hŒ panic_counter”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´Kihj{ubjë)�”}”(hhh]”hï)�”}”(hŒcounter of panic dumps”h]”hŒcounter of panic dumps”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j–h´Kihj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj{ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³j–h´Kihj°ubjË)�”}”(hŒ<``recovered`` whether finished recovering data from storage ”h]”(jÑ)�”}”(hŒ ``recovered``”h]”jÃ)�”}”(hjºh]”hŒ recovered”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´Kjhj´ubjë)�”}”(hhh]”hï)�”}”(hŒ-whether finished recovering data from storage”h]”hŒ-whether finished recovering data from storage”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÏh´KjhjÐubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj´ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jÏh´Kjhj°ubjË)�”}”(hŒ(``on_panic`` whether panic is happening ”h]”(jÑ)�”}”(hŒ ``on_panic``”h]”jÃ)�”}”(hjóh]”hŒon_panic”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjñubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´Kkhjíubjë)�”}”(hhh]”hï)�”}”(hŒwhether panic is happening”h]”hŒwhether panic is happening”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´Kkhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjíubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jh´Kkhj°ubjË)�”}”(hŒ7``pstore_zone_info_lock`` lock to **pstore_zone_info** ”h]”(jÑ)�”}”(hŒ``pstore_zone_info_lock``”h]”jÃ)�”}”(hj,h]”hŒpstore_zone_info_lock”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´Klhj&ubjë)�”}”(hhh]”hï)�”}”(hŒlock to **pstore_zone_info**”h]”(hŒlock to ”…”�”}”(hjEh²hh³Nh´Nubj)�”}”(hŒ**pstore_zone_info**”h]”hŒpstore_zone_info”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjEubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jAh´KlhjBubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jAh´Klhj°ubjË)�”}”(hŒ.``pstore_zone_info`` information from backend ”h]”(jÑ)�”}”(hŒ``pstore_zone_info``”h]”jÃ)�”}”(hjsh]”hŒpstore_zone_info”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjqubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´Kmhjmubjë)�”}”(hhh]”hï)�”}”(hŒinformation from backend”h]”hŒinformation from backend”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jˆh´Kmhj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjmubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jˆh´Kmhj°ubjË)�”}”(hŒ``pstore`` structure for pstore”h]”(jÑ)�”}”(hŒ ``pstore``”h]”jÃ)�”}”(hj¬h]”hŒpstore”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjªubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´Kmhj¦ubjë)�”}”(hhh]”hï)�”}”(hŒstructure for pstore”h]”hŒstructure for pstore”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KnhjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj¦ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jÁh´Kmhj°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjhubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j§hj© h²hh³Nh´Nubjx)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j„Œpsz_flush_mode (C enum)”Œc.psz_flush_mode”hNt”auh1jwhj© h²hh³Nh´Nubj‰)�”}”(hhh]”(jŽ)�”}”(hŒpsz_flush_mode”h]”j”)�”}”(hŒenum psz_flush_mode”h]”(jè)�”}”(hŒenum”h]”hŒenum”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhjh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´Ktubj¬)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hjh²hh³jh´Ktubj½)�”}”(hŒpsz_flush_mode”h]”jÃ)�”}”(hjh]”hŒpsz_flush_mode”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”jÏah"]”h$]”h&]”uh1jÂhj#ubah}”(h]”h ]”(jÖj×eh"]”h$]”h&]”hÅhÆuh1j¼hjh²hh³jh´Ktubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjrˆuh1j“jsjthjþh²hh³jh´Ktubah}”(h]”jùah ]”(jxjyeh"]”h$]”h&]”j}ˆj~)jhuh1j�h³jh´Kthjûh²hubj�)�”}”(hhh]”hï)�”}”(hŒflush mode for psz_zone_write()”h]”hŒflush mode for psz_zone_write()”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´K’hjFh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hjûh²hh³jh´Ktubeh}”(h]”h ]”(jŒenum”eh"]”h$]”h&]”j¡jj¢jaj£jaj¤‰j¥‰j¦‰uh1jˆh²hhj© h³Nh´Nubj¨)�”}”(hŒ÷**Constants** ``FLUSH_NONE`` do not flush to storage but update data on memory ``FLUSH_PART`` just flush part of data including meta data to storage ``FLUSH_META`` just flush meta data of zone to storage ``FLUSH_ALL`` flush all of zone”h]”(hï)�”}”(hŒ **Constants**”h]”j)�”}”(hjkh]”hŒ Constants”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjiubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´K–hjeubjÆ)�”}”(hhh]”(jË)�”}”(hŒA``FLUSH_NONE`` do not flush to storage but update data on memory ”h]”(jÑ)�”}”(hŒ``FLUSH_NONE``”h]”jÃ)�”}”(hjŠh]”hŒ FLUSH_NONE”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´K™hj„ubjë)�”}”(hhh]”hï)�”}”(hŒ1do not flush to storage but update data on memory”h]”hŒ1do not flush to storage but update data on memory”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jŸh´K™hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj„ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jŸh´K™hj�ubjË)�”}”(hŒF``FLUSH_PART`` just flush part of data including meta data to storage ”h]”(jÑ)�”}”(hŒ``FLUSH_PART``”h]”jÃ)�”}”(hjÃh]”hŒ FLUSH_PART”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´Kœhj½ubjë)�”}”(hhh]”hï)�”}”(hŒ6just flush part of data including meta data to storage”h]”hŒ6just flush part of data including meta data to storage”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jØh´KœhjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj½ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jØh´Kœhj�ubjË)�”}”(hŒ7``FLUSH_META`` just flush meta data of zone to storage ”h]”(jÑ)�”}”(hŒ``FLUSH_META``”h]”jÃ)�”}”(hjüh]”hŒ FLUSH_META”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´KŸhjöubjë)�”}”(hhh]”hï)�”}”(hŒ'just flush meta data of zone to storage”h]”hŒ'just flush meta data of zone to storage”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´KŸhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjöubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jh´KŸhj�ubjË)�”}”(hŒ``FLUSH_ALL`` flush all of zone”h]”(jÑ)�”}”(hŒ ``FLUSH_ALL``”h]”jÃ)�”}”(hj5h]”hŒ FLUSH_ALL”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´K¡hj/ubjë)�”}”(hhh]”hï)�”}”(hŒflush all of zone”h]”hŒflush all of zone”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´K¢hjKubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jJh´K¡hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjeubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j§hj© h²hh³Nh´Nubjx)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j„Œpsz_recovery (C function)”Œc.psz_recovery”hNt”auh1jwhj© h²hh³Nh´Nubj‰)�”}”(hhh]”(jŽ)�”}”(hŒ*int psz_recovery (struct psz_context *cxt)”h]”j”)�”}”(hŒ)int psz_recovery(struct psz_context *cxt)”h]”(jš)�”}”(hŒint”h]”hŒint”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hj‹h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´MRubj¬)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hj‹h²hh³j�h´MRubj½)�”}”(hŒ psz_recovery”h]”jÃ)�”}”(hŒ psz_recovery”h]”hŒ psz_recovery”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”jÏah"]”h$]”h&]”uh1jÂhj¬ubah}”(h]”h ]”(jÖj×eh"]”h$]”h&]”hÅhÆuh1j¼hj‹h²hh³j�h´MRubjÜ)�”}”(hŒ(struct psz_context *cxt)”h]”jâ)�”}”(hŒstruct psz_context *cxt”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhjÈubj¬)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hjÈubh)�”}”(hhh]”jÃ)�”}”(hŒ psz_context”h]”hŒ psz_context”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”jÏah"]”h$]”h&]”uh1jÂhjçubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j Œ reftarget”jìŒmodname”NŒ classname”Nj$j')�”}”j*]”j-)�”}”j j²sbŒc.psz_recovery”†”asbuh1hhjÈubj¬)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hjÈubjA)�”}”(hjDh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1j@hjÈubjÃ)�”}”(hŒcxt”h]”hŒcxt”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jÏah"]”h$]”h&]”uh1jÂhjÈubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jáhjÄubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÛhj‹h²hh³j�h´MRubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjrˆuh1j“jsjthj‡h²hh³j�h´MRubah}”(h]”j‚ah ]”(jxjyeh"]”h$]”h&]”j}ˆj~)jhuh1j�h³j�h´MRhj„h²hubj�)�”}”(hhh]”hï)�”}”(hŒrecover data from storage”h]”hŒrecover data from storage”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´MRhjLh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hj„h²hh³j�h´MRubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”j¡jj¢jgj£jgj¤‰j¥‰j¦‰uh1jˆh²hhj© h³Nh´Nubj¨)�”}”(hŒÆ**Parameters** ``struct psz_context *cxt`` the context of pstore/zone **Description** recovery means reading data back from storage after rebooting **Return** 0 on success, others on failure.”h]”(hï)�”}”(hŒ**Parameters**”h]”j)�”}”(hjqh]”hŒ Parameters”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjoubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´MVhjkubjÆ)�”}”(hhh]”jË)�”}”(hŒ7``struct psz_context *cxt`` the context of pstore/zone ”h]”(jÑ)�”}”(hŒ``struct psz_context *cxt``”h]”jÃ)�”}”(hj�h]”hŒstruct psz_context *cxt”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´MShjŠubjë)�”}”(hhh]”hï)�”}”(hŒthe context of pstore/zone”h]”hŒthe context of pstore/zone”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¥h´MShj¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjŠubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³j¥h´MShj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjkubhï)�”}”(hŒ**Description**”h]”j)�”}”(hjËh]”hŒ Description”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´MUhjkubhï)�”}”(hŒ=recovery means reading data back from storage after rebooting”h]”hŒ=recovery means reading data back from storage after rebooting”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´MThjkubhï)�”}”(hŒ **Return**”h]”j)�”}”(hjòh]”hŒReturn”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjðubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´MVhjkubhï)�”}”(hŒ 0 on success, others on failure.”h]”hŒ 0 on success, others on failure.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒX/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:227: ./fs/pstore/zone.c”h´MWhjkubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j§hj© h²hh³Nh´Nubjx)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j„Œpstore_zone_info (C struct)”Œc.pstore_zone_info”hNt”auh1jwhj© h²hh³Nh´Nubj‰)�”}”(hhh]”(jŽ)�”}”(hŒpstore_zone_info”h]”j”)�”}”(hŒstruct pstore_zone_info”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhj3h²hh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´Kubj¬)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hj3h²hh³jDh´Kubj½)�”}”(hŒpstore_zone_info”h]”jÃ)�”}”(hj1h]”hŒpstore_zone_info”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”jÏah"]”h$]”h&]”uh1jÂhjSubah}”(h]”h ]”(jÖj×eh"]”h$]”h&]”hÅhÆuh1j¼hj3h²hh³jDh´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjrˆuh1j“jsjthj/h²hh³jDh´Kubah}”(h]”j*ah ]”(jxjyeh"]”h$]”h&]”j}ˆj~)jhuh1j�h³jDh´Khj,h²hubj�)�”}”(hhh]”hï)�”}”(hŒ%pstore/zone back-end driver structure”h]”hŒ%pstore/zone back-end driver structure”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´K hjvh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hj,h²hh³jDh´Kubeh}”(h]”h ]”(jŒstruct”eh"]”h$]”h&]”j¡jj¢j‘j£j‘j¤‰j¥‰j¦‰uh1jˆh²hhj© h³Nh´Nubj¨)�”}”(hX…**Definition**:: struct pstore_zone_info { struct module *owner; const char *name; unsigned long total_size; unsigned long kmsg_size; int max_reason; unsigned long pmsg_size; unsigned long console_size; unsigned long ftrace_size; pstore_zone_read_op read; pstore_zone_write_op write; pstore_zone_erase_op erase; pstore_zone_write_op panic_write; }; **Members** ``owner`` Module which is responsible for this back-end driver. ``name`` Name of the back-end driver. ``total_size`` The total size in bytes pstore/zone can use. It must be greater than 4096 and be multiple of 4096. ``kmsg_size`` The size of oops/panic zone. Zero means disabled, otherwise, it must be multiple of SECTOR_SIZE(512 Bytes). ``max_reason`` Maximum kmsg dump reason to store. ``pmsg_size`` The size of pmsg zone which is the same as **kmsg_size**. ``console_size`` The size of console zone which is the same as **kmsg_size**. ``ftrace_size`` The size of ftrace zone which is the same as **kmsg_size**. ``read`` The general read operation. Both of the function parameters **size** and **offset** are relative value to storage. On success, the number of bytes should be returned, others mean error. ``write`` The same as **read**, but the following error number: -EBUSY means try to write again later. -ENOMSG means to try next zone. ``erase`` The general erase operation for device with special removing job. Both of the function parameters **size** and **offset** are relative value to storage. Return 0 on success and others on failure. ``panic_write`` The write operation only used for panic case. It's optional if you do not care panic log. The parameters are relative value to storage. On success, the number of bytes should be returned, others excluding -ENOMSG mean error. -ENOMSG means to try next zone.”h]”(hï)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj™ubhŒ:”…”�”}”(hj™h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´Khj•ubhÿ)�”}”(hX{struct pstore_zone_info { struct module *owner; const char *name; unsigned long total_size; unsigned long kmsg_size; int max_reason; unsigned long pmsg_size; unsigned long console_size; unsigned long ftrace_size; pstore_zone_read_op read; pstore_zone_write_op write; pstore_zone_erase_op erase; pstore_zone_write_op panic_write; };”h]”hX{struct pstore_zone_info { struct module *owner; const char *name; unsigned long total_size; unsigned long kmsg_size; int max_reason; unsigned long pmsg_size; unsigned long console_size; unsigned long ftrace_size; pstore_zone_read_op read; pstore_zone_write_op write; pstore_zone_erase_op erase; pstore_zone_write_op panic_write; };”…”�”}”hj¶sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hþh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´Khj•ubhï)�”}”(hŒ **Members**”h]”j)�”}”(hjÇh]”hŒMembers”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´K!hj•ubjÆ)�”}”(hhh]”(jË)�”}”(hŒ@``owner`` Module which is responsible for this back-end driver. ”h]”(jÑ)�”}”(hŒ ``owner``”h]”jÃ)�”}”(hjæh]”hŒowner”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjäubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´Khjàubjë)�”}”(hhh]”hï)�”}”(hŒ5Module which is responsible for this back-end driver.”h]”hŒ5Module which is responsible for this back-end driver.”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jûh´Khjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjàubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jûh´KhjÝubjË)�”}”(hŒ&``name`` Name of the back-end driver. ”h]”(jÑ)�”}”(hŒ``name``”h]”jÃ)�”}”(hjh]”hŒname”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´Khjubjë)�”}”(hhh]”hï)�”}”(hŒName of the back-end driver.”h]”hŒName of the back-end driver.”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j4h´Khj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³j4h´KhjÝubjË)�”}”(hŒr``total_size`` The total size in bytes pstore/zone can use. It must be greater than 4096 and be multiple of 4096. ”h]”(jÑ)�”}”(hŒ``total_size``”h]”jÃ)�”}”(hjXh]”hŒ total_size”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjVubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´KhjRubjë)�”}”(hhh]”hï)�”}”(hŒbThe total size in bytes pstore/zone can use. It must be greater than 4096 and be multiple of 4096.”h]”hŒbThe total size in bytes pstore/zone can use. It must be greater than 4096 and be multiple of 4096.”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´Khjnubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjRubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jmh´KhjÝubjË)�”}”(hŒz``kmsg_size`` The size of oops/panic zone. Zero means disabled, otherwise, it must be multiple of SECTOR_SIZE(512 Bytes). ”h]”(jÑ)�”}”(hŒ ``kmsg_size``”h]”jÃ)�”}”(hj’h]”hŒ kmsg_size”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´KhjŒubjë)�”}”(hhh]”hï)�”}”(hŒkThe size of oops/panic zone. Zero means disabled, otherwise, it must be multiple of SECTOR_SIZE(512 Bytes).”h]”hŒkThe size of oops/panic zone. Zero means disabled, otherwise, it must be multiple of SECTOR_SIZE(512 Bytes).”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´Khj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjŒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³j§h´KhjÝubjË)�”}”(hŒ2``max_reason`` Maximum kmsg dump reason to store. ”h]”(jÑ)�”}”(hŒ``max_reason``”h]”jÃ)�”}”(hjÌh]”hŒ max_reason”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´KhjÆubjë)�”}”(hhh]”hï)�”}”(hŒ"Maximum kmsg dump reason to store.”h]”hŒ"Maximum kmsg dump reason to store.”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jáh´Khjâubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjÆubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jáh´KhjÝubjË)�”}”(hŒH``pmsg_size`` The size of pmsg zone which is the same as **kmsg_size**. ”h]”(jÑ)�”}”(hŒ ``pmsg_size``”h]”jÃ)�”}”(hjh]”hŒ pmsg_size”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´Khjÿubjë)�”}”(hhh]”hï)�”}”(hŒ9The size of pmsg zone which is the same as **kmsg_size**.”h]”(hŒ+The size of pmsg zone which is the same as ”…”�”}”(hjh²hh³Nh´Nubj)�”}”(hŒ **kmsg_size**”h]”hŒ kmsg_size”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒ.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjÿubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jh´KhjÝubjË)�”}”(hŒN``console_size`` The size of console zone which is the same as **kmsg_size**. ”h]”(jÑ)�”}”(hŒ``console_size``”h]”jÃ)�”}”(hjPh]”hŒ console_size”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjNubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´KhjJubjë)�”}”(hhh]”hï)�”}”(hŒubjë)�”}”(hhh]”hï)�”}”(hŒ|The same as **read**, but the following error number: -EBUSY means try to write again later. -ENOMSG means to try next zone.”h]”(hŒ The same as ”…”�”}”(hj]h²hh³Nh´Nubj)�”}”(hŒ**read**”h]”hŒread”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj]ubhŒh, but the following error number: -EBUSY means try to write again later. -ENOMSG means to try next zone.”…”�”}”(hj]h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´KhjZubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jYh´KhjÝubjË)�”}”(hŒÎ``erase`` The general erase operation for device with special removing job. Both of the function parameters **size** and **offset** are relative value to storage. Return 0 on success and others on failure. ”h]”(jÑ)�”}”(hŒ ``erase``”h]”jÃ)�”}”(hj�h]”hŒerase”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´K#hjŠubjë)�”}”(hhh]”hï)�”}”(hŒÃThe general erase operation for device with special removing job. Both of the function parameters **size** and **offset** are relative value to storage. Return 0 on success and others on failure.”h]”(hŒbThe general erase operation for device with special removing job. Both of the function parameters ”…”�”}”(hj©h²hh³Nh´Nubj)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj©ubhŒ and ”…”�”}”(hj©h²hh³Nh´Nubj)�”}”(hŒ **offset**”h]”hŒoffset”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj©ubhŒJ are relative value to storage. Return 0 on success and others on failure.”…”�”}”(hj©h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´K hj¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjŠubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³j¥h´K#hjÝubjË)�”}”(hX``panic_write`` The write operation only used for panic case. It's optional if you do not care panic log. The parameters are relative value to storage. On success, the number of bytes should be returned, others excluding -ENOMSG mean error. -ENOMSG means to try next zone.”h]”(jÑ)�”}”(hŒ``panic_write``”h]”jÃ)�”}”(hjîh]”hŒ panic_write”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjìubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´K'hjèubjë)�”}”(hhh]”hï)�”}”(hXThe write operation only used for panic case. It's optional if you do not care panic log. The parameters are relative value to storage. On success, the number of bytes should be returned, others excluding -ENOMSG mean error. -ENOMSG means to try next zone.”h]”hXThe write operation only used for panic case. It’s optional if you do not care panic log. The parameters are relative value to storage. On success, the number of bytes should be returned, others excluding -ENOMSG mean error. -ENOMSG means to try next zone.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:230: ./include/linux/pstore_zone.h”h´K$hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjèubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jh´K'hjÝubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj•ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j§hj© h²hh³Nh´Nubjx)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j„Œpstore_device_info (C struct)”Œc.pstore_device_info”hNt”auh1jwhj© h²hh³Nh´Nubj‰)�”}”(hhh]”(jŽ)�”}”(hŒpstore_device_info”h]”j”)�”}”(hŒstruct pstore_device_info”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhjDh²hh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´Kubj¬)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hjDh²hh³jUh´Kubj½)�”}”(hŒpstore_device_info”h]”jÃ)�”}”(hjBh]”hŒpstore_device_info”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”jÏah"]”h$]”h&]”uh1jÂhjdubah}”(h]”h ]”(jÖj×eh"]”h$]”h&]”hÅhÆuh1j¼hjDh²hh³jUh´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjrˆuh1j“jsjthj@h²hh³jUh´Kubah}”(h]”j;ah ]”(jxjyeh"]”h$]”h&]”j}ˆj~)jhuh1j�h³jUh´Khj=h²hubj�)�”}”(hhh]”hï)�”}”(hŒ%back-end pstore/blk driver structure.”h]”hŒ%back-end pstore/blk driver structure.”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´K hj‡h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hj=h²hh³jUh´Kubeh}”(h]”h ]”(jŒstruct”eh"]”h$]”h&]”j¡jj¢j¢j£j¢j¤‰j¥‰j¦‰uh1jˆh²hhj© h³Nh´Nubj¨)�”}”(hX\**Definition**:: struct pstore_device_info { unsigned int flags; struct pstore_zone_info zone; }; **Members** ``flags`` Refer to macro starting with PSTORE_FLAGS defined in linux/pstore.h. It means what front-ends this device support. Zero means all backends for compatible. ``zone`` The struct pstore_zone_info details.”h]”(hï)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjªubhŒ:”…”�”}”(hjªh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´Khj¦ubhÿ)�”}”(hŒXstruct pstore_device_info { unsigned int flags; struct pstore_zone_info zone; };”h]”hŒXstruct pstore_device_info { unsigned int flags; struct pstore_zone_info zone; };”…”�”}”hjÇsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hþh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´Khj¦ubhï)�”}”(hŒ **Members**”h]”j)�”}”(hjØh]”hŒMembers”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´Khj¦ubjÆ)�”}”(hhh]”(jË)�”}”(hŒ¥``flags`` Refer to macro starting with PSTORE_FLAGS defined in linux/pstore.h. It means what front-ends this device support. Zero means all backends for compatible. ”h]”(jÑ)�”}”(hŒ ``flags``”h]”jÃ)�”}”(hj÷h]”hŒflags”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjõubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´Khjñubjë)�”}”(hhh]”hï)�”}”(hŒšRefer to macro starting with PSTORE_FLAGS defined in linux/pstore.h. It means what front-ends this device support. Zero means all backends for compatible.”h]”hŒšRefer to macro starting with PSTORE_FLAGS defined in linux/pstore.h. It means what front-ends this device support. Zero means all backends for compatible.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´Khj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjñubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³j h´KhjîubjË)�”}”(hŒ-``zone`` The struct pstore_zone_info details.”h]”(jÑ)�”}”(hŒ``zone``”h]”jÃ)�”}”(hj1h]”hŒzone”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´Khj+ubjë)�”}”(hhh]”hï)�”}”(hŒ$The struct pstore_zone_info details.”h]”hŒ$The struct pstore_zone_info details.”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´KhjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jFh´Khjîubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj¦ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j§hj© h²hh³Nh´Nubjx)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j„Œpstore_blk_config (C struct)”Œc.pstore_blk_config”hNt”auh1jwhj© h²hh³Nh´Nubj‰)�”}”(hhh]”(jŽ)�”}”(hŒpstore_blk_config”h]”j”)�”}”(hŒstruct pstore_blk_config”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhj‡h²hh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´Kubj¬)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hj‡h²hh³j˜h´Kubj½)�”}”(hŒpstore_blk_config”h]”jÃ)�”}”(hj…h]”hŒpstore_blk_config”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”jÏah"]”h$]”h&]”uh1jÂhj§ubah}”(h]”h ]”(jÖj×eh"]”h$]”h&]”hÅhÆuh1j¼hj‡h²hh³j˜h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjrˆuh1j“jsjthjƒh²hh³j˜h´Kubah}”(h]”j~ah ]”(jxjyeh"]”h$]”h&]”j}ˆj~)jhuh1j�h³j˜h´Khj€h²hubj�)�”}”(hhh]”hï)�”}”(hŒ$the pstore_blk backend configuration”h]”hŒ$the pstore_blk backend configuration”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´KhjÊh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hj€h²hh³j˜h´Kubeh}”(h]”h ]”(jŒstruct”eh"]”h$]”h&]”j¡jj¢jåj£jåj¤‰j¥‰j¦‰uh1jˆh²hhj© h³Nh´Nubj¨)�”}”(hXV**Definition**:: struct pstore_blk_config { char device[80]; enum kmsg_dump_reason max_reason; unsigned long kmsg_size; unsigned long pmsg_size; unsigned long console_size; unsigned long ftrace_size; }; **Members** ``device`` Name of the desired block device ``max_reason`` Maximum kmsg dump reason to store to block device ``kmsg_size`` Total size of for kmsg dumps ``pmsg_size`` Total size of the pmsg storage area ``console_size`` Total size of the console storage area ``ftrace_size`` Total size for ftrace logging data (for all CPUs)”h]”(hï)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjíubhŒ:”…”�”}”(hjíh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´K hjéubhÿ)�”}”(hŒÑstruct pstore_blk_config { char device[80]; enum kmsg_dump_reason max_reason; unsigned long kmsg_size; unsigned long pmsg_size; unsigned long console_size; unsigned long ftrace_size; };”h]”hŒÑstruct pstore_blk_config { char device[80]; enum kmsg_dump_reason max_reason; unsigned long kmsg_size; unsigned long pmsg_size; unsigned long console_size; unsigned long ftrace_size; };”…”�”}”hj sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hþh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´K"hjéubhï)�”}”(hŒ **Members**”h]”j)�”}”(hj h]”hŒMembers”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´K+hjéubjÆ)�”}”(hhh]”(jË)�”}”(hŒ,``device`` Name of the desired block device ”h]”(jÑ)�”}”(hŒ ``device``”h]”jÃ)�”}”(hj: h]”hŒdevice”…”�”}”(hj< h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj8 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´Khj4 ubjë)�”}”(hhh]”hï)�”}”(hŒ Name of the desired block device”h]”hŒ Name of the desired block device”…”�”}”(hjS h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jO h´KhjP ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj4 ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jO h´Khj1 ubjË)�”}”(hŒA``max_reason`` Maximum kmsg dump reason to store to block device ”h]”(jÑ)�”}”(hŒ``max_reason``”h]”jÃ)�”}”(hjs h]”hŒ max_reason”…”�”}”(hju h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjq ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´K hjm ubjë)�”}”(hhh]”hï)�”}”(hŒ1Maximum kmsg dump reason to store to block device”h]”hŒ1Maximum kmsg dump reason to store to block device”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jˆ h´K hj‰ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjm ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jˆ h´K hj1 ubjË)�”}”(hŒ+``kmsg_size`` Total size of for kmsg dumps ”h]”(jÑ)�”}”(hŒ ``kmsg_size``”h]”jÃ)�”}”(hj¬ h]”hŒ kmsg_size”…”�”}”(hj® h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjª ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´K!hj¦ ubjë)�”}”(hhh]”hï)�”}”(hŒTotal size of for kmsg dumps”h]”hŒTotal size of for kmsg dumps”…”�”}”(hjÅ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÁ h´K!hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj¦ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jÁ h´K!hj1 ubjË)�”}”(hŒ2``pmsg_size`` Total size of the pmsg storage area ”h]”(jÑ)�”}”(hŒ ``pmsg_size``”h]”jÃ)�”}”(hjå h]”hŒ pmsg_size”…”�”}”(hjç h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjã ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´K"hjß ubjë)�”}”(hhh]”hï)�”}”(hŒ#Total size of the pmsg storage area”h]”hŒ#Total size of the pmsg storage area”…”�”}”(hjþ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jú h´K"hjû ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjß ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jú h´K"hj1 ubjË)�”}”(hŒ8``console_size`` Total size of the console storage area ”h]”(jÑ)�”}”(hŒ``console_size``”h]”jÃ)�”}”(hj!h]”hŒ console_size”…”�”}”(hj !h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´K#hj!ubjë)�”}”(hhh]”hï)�”}”(hŒ&Total size of the console storage area”h]”hŒ&Total size of the console storage area”…”�”}”(hj7!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j3!h´K#hj4!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³j3!h´K#hj1 ubjË)�”}”(hŒA``ftrace_size`` Total size for ftrace logging data (for all CPUs)”h]”(jÑ)�”}”(hŒ``ftrace_size``”h]”jÃ)�”}”(hjW!h]”hŒ ftrace_size”…”�”}”(hjY!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjU!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´K#hjQ!ubjë)�”}”(hhh]”hï)�”}”(hŒ1Total size for ftrace logging data (for all CPUs)”h]”hŒ1Total size for ftrace logging data (for all CPUs)”…”�”}”(hjp!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´K$hjm!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjQ!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jl!h´K#hj1 ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjéubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j§hj© h²hh³Nh´Nubjx)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j„Œ"pstore_blk_get_config (C function)”Œc.pstore_blk_get_config”hNt”auh1jwhj© h²hh³Nh´Nubj‰)�”}”(hhh]”(jŽ)�”}”(hŒ:int pstore_blk_get_config (struct pstore_blk_config *info)”h]”j”)�”}”(hŒ9int pstore_blk_get_config(struct pstore_blk_config *info)”h]”(jš)�”}”(hŒint”h]”hŒint”…”�”}”(hj±!h²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hj­!h²hh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´K/ubj¬)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀ!h²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hj­!h²hh³j¿!h´K/ubj½)�”}”(hŒpstore_blk_get_config”h]”jÃ)�”}”(hŒpstore_blk_get_config”h]”hŒpstore_blk_get_config”…”�”}”(hjÒ!h²hh³Nh´Nubah}”(h]”h ]”jÏah"]”h$]”h&]”uh1jÂhjÎ!ubah}”(h]”h ]”(jÖj×eh"]”h$]”h&]”hÅhÆuh1j¼hj­!h²hh³j¿!h´K/ubjÜ)�”}”(hŒ (struct pstore_blk_config *info)”h]”jâ)�”}”(hŒstruct pstore_blk_config *info”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hjî!h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhjê!ubj¬)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjû!h²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hjê!ubh)�”}”(hhh]”jÃ)�”}”(hŒpstore_blk_config”h]”hŒpstore_blk_config”…”�”}”(hj "h²hh³Nh´Nubah}”(h]”h ]”jÏah"]”h$]”h&]”uh1jÂhj "ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j Œ reftarget”j"Œmodname”NŒ classname”Nj$j')�”}”j*]”j-)�”}”j jÔ!sbŒc.pstore_blk_get_config”†”asbuh1hhjê!ubj¬)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,"h²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hjê!ubjA)�”}”(hjDh]”hŒ*”…”�”}”(hj:"h²hh³Nh´Nubah}”(h]”h ]”jMah"]”h$]”h&]”uh1j@hjê!ubjÃ)�”}”(hŒinfo”h]”hŒinfo”…”�”}”(hjG"h²hh³Nh´Nubah}”(h]”h ]”jÏah"]”h$]”h&]”uh1jÂhjê!ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jáhjæ!ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÛhj­!h²hh³j¿!h´K/ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjrˆuh1j“jsjthj©!h²hh³j¿!h´K/ubah}”(h]”j¤!ah ]”(jxjyeh"]”h$]”h&]”j}ˆj~)jhuh1j�h³j¿!h´K/hj¦!h²hubj�)�”}”(hhh]”hï)�”}”(hŒ2get a copy of the pstore_blk backend configuration”h]”hŒ2get a copy of the pstore_blk backend configuration”…”�”}”(hjq"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´K/hjn"h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hj¦!h²hh³j¿!h´K/ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”j¡jj¢j‰"j£j‰"j¤‰j¥‰j¦‰uh1jˆh²hhj© h³Nh´Nubj¨)�”}”(hŒ¯**Parameters** ``struct pstore_blk_config *info`` The sturct pstore_blk_config to be filled in **Description** Failure returns negative error code, and success returns 0.”h]”(hï)�”}”(hŒ**Parameters**”h]”j)�”}”(hj“"h]”hŒ Parameters”…”�”}”(hj•"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‘"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´K3hj�"ubjÆ)�”}”(hhh]”jË)�”}”(hŒP``struct pstore_blk_config *info`` The sturct pstore_blk_config to be filled in ”h]”(jÑ)�”}”(hŒ"``struct pstore_blk_config *info``”h]”jÃ)�”}”(hj²"h]”hŒstruct pstore_blk_config *info”…”�”}”(hj´"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj°"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´K1hj¬"ubjë)�”}”(hhh]”hï)�”}”(hŒ,The sturct pstore_blk_config to be filled in”h]”hŒ,The sturct pstore_blk_config to be filled in”…”�”}”(hjË"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÇ"h´K1hjÈ"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj¬"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³jÇ"h´K1hj©"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj�"ubhï)�”}”(hŒ**Description**”h]”j)�”}”(hjí"h]”hŒ Description”…”�”}”(hjï"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjë"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´K3hj�"ubhï)�”}”(hŒ;Failure returns negative error code, and success returns 0.”h]”hŒ;Failure returns negative error code, and success returns 0.”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œb/var/lib/git/docbuild/linux/Documentation/admin-guide/pstore-blk:233: ./include/linux/pstore_blk.h”h´K2hj�"ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j§hj© h²hh³Nh´Nubeh}”(h]”Œpstore-block-internals”ah ]”h"]”Œpstore block internals”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´Kßubeh}”(h]”Œpstore-block-oops-panic-logger”ah ]”h"]”Œpstore block oops/panic logger”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”jL#Œ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##jjjVjSj1j.jêjçjAj>j¼j¹j#j j¦j£j)j&jÊjÇj7 j4 j‚ j j¦ j£ j#j#uŒ nametypes”}”(j&#‰j‰jV‰j1‰jê‰jA‰j¼‰j#‰j¦‰j)‰jʉj7 ‰j‚ ‰j¦ ‰j#‰uh}”(j##hÊjhÝjSjj.jYjçj¢j>jíj¹jDj j¿j£j&j&j©jÇj4j†j�jvj{j4 jÍj j: j£ j… j#j© jÔ jÙ j¨ j­ jj#jýjjùjþj‚j‡j*j/j;j@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.