Lines Matching +full:memory +full:- +full:to +full:- +full:memory

2 Firmware-Assisted Dump
7 The goal of firmware-assisted dump is to enable the dump of
8 a crashed system, and to do so from a fully-reset system, and
9 to minimize the total elapsed time until the system is back
12 - Firmware-Assisted Dump (FADump) infrastructure is intended to replace
14 - Fadump uses the same firmware interfaces and memory reservation model
16 - Unlike phyp dump, FADump exports the memory dump through /proc/vmcore
19 - Unlike phyp dump, userspace tool does not need to refer any sysfs
21 - Unlike phyp dump, FADump allows user to release all the memory reserved
23 - Once enabled through kernel boot parameter, FADump can be
28 Comparing with kdump or other strategies, firmware-assisted
31 - Unlike kdump, the system has been reset, and loaded
35 - Once the dump is copied out, the memory that held the dump
36 is immediately available to the running kernel. And therefore,
37 unlike kdump, FADump doesn't need a 2nd reboot to get back
38 the system to the production configuration.
44 - The first kernel registers the sections of memory with the
46 These registered sections of memory are reserved by the first
49 - When system crashes, the Power firmware will copy the registered
50 low memory regions (boot memory) from source to destination area.
54 The term 'boot memory' means size of the low memory chunk
55 that is required for a kernel to boot successfully when
56 booted with restricted memory. By default, the boot memory
58 Alternatively, user can also specify boot memory size
61 boot memory size is not sufficient for second kernel to
63 refer to Documentation/admin-guide/kdump/kdump.rst. If any
65 ignored as FADump uses a predefined offset to reserve memory
66 for boot memory dump preservation in case of a crash.
68 - After the low memory (boot memory) area has been saved, the
73 - The freshly booted kernel will notice that there is a new node
74 (rtas/ibm,kernel-dump on pSeries or ibm,opal/dump/mpipl-boot
77 the early boot OS will reserve rest of the memory above
78 boot memory size effectively booting with restricted memory
80 to as second kernel or capture kernel) will not touch any
81 of the dump memory area.
83 - User-space tools will read /proc/vmcore to obtain the contents
84 of memory, which holds the previous crashed kernel dump in ELF
85 format. The userspace tools may copy this info to disk, or
88 - Once the userspace tool is done saving dump, it will echo
89 '1' to /sys/kernel/fadump_release_mem to release the reserved
90 memory back to general use, except the memory required for
91 next firmware-assisted dump registration.
97 Please note that the firmware-assisted dump feature
105 kernel (referred to as petitboot kernel) before booting into the
107 userspace support to process crash data. Such kernel needs to
108 preserve previously crash'ed kernel's memory for the subsequent
109 capture kernel boot to process this crash data. Kernel config
110 option CONFIG_PRESERVE_FA_DUMP has to be enabled on such kernel
111 to ensure that crash data is preserved to process later.
113 -- On OPAL based machines (PowerNV), if the kernel is build with
114 CONFIG_OPAL_CORE=y, OPAL memory at the time of crash is also
116 helpful in debugging OPAL crashes with GDB. The kernel memory
118 '1' to /sys/firmware/opal/mpipl/release_core node.
124 -----------------------
126 During boot, a check is made to see if firmware supports
128 we check to see if an active dump is waiting for us. If yes
129 then everything but boot memory size of RAM is reserved during
134 memory is held.
136 If there is no waiting dump data, then only the memory required to
137 hold CPU state, HPTE region, boot memory dump, and FADump header is
138 usually reserved at an offset greater than boot memory size (see Fig. 1).
141 memory content in addition to CPU state and HPTE region, in the case
144 Since this reserved memory area is used only after the system crash,
145 there is no point in blocking this significant chunk of memory from
147 Contiguous Memory Allocator (CMA) for memory reservation if CMA is
148 configured for kernel. With CMA reservation this memory will be
149 available for applications to use it, while kernel is prevented from
150 using it. With this FADump will still be able to capture all of the
151 kernel memory and most of the user space memory except the user pages
154 o Memory Reservation during first kernel
156 Low memory Top of memory
157 0 boot memory size |<------ Reserved dump area ----->| |
160 +-----------+-----/ /---+---+----+-----------+-------+----+-----+
162 +-----------+-----/ /---+---+----+-----------+-------+----+-----+
166 -------------------------------- | |
167 Boot memory content gets transferred | |
168 to reserved area by firmware at the | |
178 to process the crashdump eases dump capture process.
183 o Memory Reservation during second kernel after crash
185 Low memory Top of memory
186 0 boot memory size |
187 | |<------------ Crash preserved area ------------>|
188 V V |<--- Reserved dump area --->| |
189 +----+---+--+-----/ /---+---+----+-------+-----+-----+-------+
191 +----+---+--+-----/ /---+---+----+-------+-----+-----+-------+
193 ----- ------------------------------ ---------------
197 \ | ----------------------------
204 +---+
205 |///| -> Regions (CPU, HPTE & Metadata) marked like this in the above
206 +---+ figures are not always present. For example, OPAL platform
210 +---+
211 |ELF| -> elfcorehdr, it is created in second kernel after crash.
212 +---+
214 Note: Memory from 0 to the boot memory size is used by second kernel
219 Currently the dump will be copied from /proc/vmcore to a new file upon
222 to save the dump works fine with minor modifications. KDump scripts on
223 major Distro releases have already been modified to work seamlessly (no
227 The tools to examine the dump will be same as the ones
230 How to enable firmware-assisted dump (FADump):
231 ----------------------------------------------
235 By default, FADump reserved memory will be initialized as CMA area.
236 Alternatively, user can boot linux kernel with 'fadump=nocma' to
237 prevent FADump to use CMA.
239 to specify size of the memory to reserve for boot memory dump
244 use 'crashkernel=' to specify size of the memory to reserve
245 for boot memory dump preservation.
246 2. If firmware-assisted dump fails to reserve memory then it
247 will fallback to existing kdump mechanism if 'crashkernel='
249 3. if user wants to capture all of user space memory and ok with
250 reserved memory not available to production system, then
251 'fadump=nocma' kernel parameter can be used to fallback to
255 --------------------
257 Firmware-assisted dump feature uses sysfs file system to hold
258 the control files and debugfs file to display memory reserved region.
263 This is used to display the FADump status.
265 - 0 = FADump is disabled
266 - 1 = FADump is enabled
268 This interface can be used by kdump init scripts to identify if
272 This is used to display the FADump registration status as well
273 as to control (start/stop) the FADump registration.
275 - 0 = FADump is not registered.
276 - 1 = FADump is registered and ready to handle system crash.
278 To register FADump echo 1 > /sys/kernel/fadump_registered and
279 echo 0 > /sys/kernel/fadump_registered for un-register and stop the
280 FADump. Once the FADump is un-registered, the system crash will not
286 This is used to display the memory reserved by FADump for saving the
291 second kernel. This is used to release the reserved memory
292 region that are held for saving crash dump. To release the
293 reserved memory echo 1 to it::
298 file will change to reflect the new memory reservations.
301 enhanced to use this interface to release the memory reserved for
304 Note: /sys/kernel/fadump_release_opalcore sysfs has moved to
310 active during capture kernel. This is used to release the memory
311 used by the kernel to export /sys/firmware/opal/mpipl/core file. To
312 release this memory, echo '1' to it:
318 +----------------------------------+--------------------------------+
320 +----------------------------------+--------------------------------+
322 +----------------------------------+--------------------------------+
324 +----------------------------------+--------------------------------+
326 +----------------------------------+--------------------------------+
332 This file shows the reserved memory regions if FADump is
336 <region>: [<start>-<end>] <reserved-size> bytes, Dumped: <dump-size>
340 DUMP: Src: <src-addr>, Dest: <dest-addr>, Size: <size>, Dumped: # bytes
346 CPU : [0x0000006ffb0000-0x0000006fff001f] 0x40020 bytes, Dumped: 0x0
347 HPTE: [0x0000006fff0020-0x0000006fff101f] 0x1000 bytes, Dumped: 0x0
348 DUMP: [0x0000006fff1020-0x0000007fff101f] 0x10000000 bytes, Dumped: 0x0
353 CPU : [0x0000006ffb0000-0x0000006fff001f] 0x40020 bytes, Dumped: 0x40020
354 HPTE: [0x0000006fff0020-0x0000006fff101f] 0x1000 bytes, Dumped: 0x1000
355 DUMP: [0x0000006fff1020-0x0000007fff101f] 0x10000000 bytes, Dumped: 0x10000000
356 : [0x00000010000000-0x0000006ffaffff] 0x5ffb0000 bytes, Dumped: 0x5ffb0000
360 Please refer to Documentation/filesystems/debugfs.rst on
361 how to mount the debugfs filesystem.
365 -----
366 - Need to come up with the better approach to find out more
367 accurate boot memory size that is required for a kernel to
368 boot successfully when booted with restricted memory.