powerpc/fadump: use FADump instead of fadump for how it is pronounced
fadump is pronounced f-a-dump. Update documentation accordingly. Also, update how fadump_region contents look like with recent changes. Signed-off-by: Hari Bathini <hbathini@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/156821339317.5656.15852294223821732082.stgit@hbathini.in.ibm.com
This commit is contained in:
parent
f35120115b
commit
1679b96e69
|
@ -9,18 +9,18 @@ a crashed system, and to do so from a fully-reset system, and
|
||||||
to minimize the total elapsed time until the system is back
|
to minimize the total elapsed time until the system is back
|
||||||
in production use.
|
in production use.
|
||||||
|
|
||||||
- Firmware assisted dump (fadump) infrastructure is intended to replace
|
- Firmware-Assisted Dump (FADump) infrastructure is intended to replace
|
||||||
the existing phyp assisted dump.
|
the existing phyp assisted dump.
|
||||||
- Fadump uses the same firmware interfaces and memory reservation model
|
- Fadump uses the same firmware interfaces and memory reservation model
|
||||||
as phyp assisted dump.
|
as phyp assisted dump.
|
||||||
- Unlike phyp dump, fadump exports the memory dump through /proc/vmcore
|
- Unlike phyp dump, FADump exports the memory dump through /proc/vmcore
|
||||||
in the ELF format in the same way as kdump. This helps us reuse the
|
in the ELF format in the same way as kdump. This helps us reuse the
|
||||||
kdump infrastructure for dump capture and filtering.
|
kdump infrastructure for dump capture and filtering.
|
||||||
- Unlike phyp dump, userspace tool does not need to refer any sysfs
|
- Unlike phyp dump, userspace tool does not need to refer any sysfs
|
||||||
interface while reading /proc/vmcore.
|
interface while reading /proc/vmcore.
|
||||||
- Unlike phyp dump, fadump allows user to release all the memory reserved
|
- Unlike phyp dump, FADump allows user to release all the memory reserved
|
||||||
for dump, with a single operation of echo 1 > /sys/kernel/fadump_release_mem.
|
for dump, with a single operation of echo 1 > /sys/kernel/fadump_release_mem.
|
||||||
- Once enabled through kernel boot parameter, fadump can be
|
- Once enabled through kernel boot parameter, FADump can be
|
||||||
started/stopped through /sys/kernel/fadump_registered interface (see
|
started/stopped through /sys/kernel/fadump_registered interface (see
|
||||||
sysfs files section below) and can be easily integrated with kdump
|
sysfs files section below) and can be easily integrated with kdump
|
||||||
service start/stop init scripts.
|
service start/stop init scripts.
|
||||||
|
@ -34,7 +34,7 @@ dump offers several strong, practical advantages:
|
||||||
in a clean, consistent state.
|
in a clean, consistent state.
|
||||||
- Once the dump is copied out, the memory that held the dump
|
- Once the dump is copied out, the memory that held the dump
|
||||||
is immediately available to the running kernel. And therefore,
|
is immediately available to the running kernel. And therefore,
|
||||||
unlike kdump, fadump doesn't need a 2nd reboot to get back
|
unlike kdump, FADump doesn't need a 2nd reboot to get back
|
||||||
the system to the production configuration.
|
the system to the production configuration.
|
||||||
|
|
||||||
The above can only be accomplished by coordination with,
|
The above can only be accomplished by coordination with,
|
||||||
|
@ -63,7 +63,7 @@ as follows:
|
||||||
boot successfully. For syntax of crashkernel= parameter,
|
boot successfully. For syntax of crashkernel= parameter,
|
||||||
refer to Documentation/admin-guide/kdump/kdump.rst. If any offset is
|
refer to Documentation/admin-guide/kdump/kdump.rst. If any offset is
|
||||||
provided in crashkernel= parameter, it will be ignored
|
provided in crashkernel= parameter, it will be ignored
|
||||||
as fadump uses a predefined offset to reserve memory
|
as FADump uses a predefined offset to reserve memory
|
||||||
for boot memory dump preservation in case of a crash.
|
for boot memory dump preservation in case of a crash.
|
||||||
|
|
||||||
- After the low memory (boot memory) area has been saved, the
|
- After the low memory (boot memory) area has been saved, the
|
||||||
|
@ -123,7 +123,7 @@ blocking this significant chunk of memory from production kernel.
|
||||||
Hence, the implementation uses the Linux kernel's Contiguous Memory
|
Hence, the implementation uses the Linux kernel's Contiguous Memory
|
||||||
Allocator (CMA) for memory reservation if CMA is configured for kernel.
|
Allocator (CMA) for memory reservation if CMA is configured for kernel.
|
||||||
With CMA reservation this memory will be available for applications to
|
With CMA reservation this memory will be available for applications to
|
||||||
use it, while kernel is prevented from using it. With this fadump will
|
use it, while kernel is prevented from using it. With this FADump will
|
||||||
still be able to capture all of the kernel memory and most of the user
|
still be able to capture all of the kernel memory and most of the user
|
||||||
space memory except the user pages that were present in CMA region::
|
space memory except the user pages that were present in CMA region::
|
||||||
|
|
||||||
|
@ -173,14 +173,14 @@ KDump, as dump mechanism.
|
||||||
The tools to examine the dump will be same as the ones
|
The tools to examine the dump will be same as the ones
|
||||||
used for kdump.
|
used for kdump.
|
||||||
|
|
||||||
How to enable firmware-assisted dump (fadump):
|
How to enable firmware-assisted dump (FADump):
|
||||||
----------------------------------------------
|
----------------------------------------------
|
||||||
|
|
||||||
1. Set config option CONFIG_FA_DUMP=y and build kernel.
|
1. Set config option CONFIG_FA_DUMP=y and build kernel.
|
||||||
2. Boot into linux kernel with 'fadump=on' kernel cmdline option.
|
2. Boot into linux kernel with 'fadump=on' kernel cmdline option.
|
||||||
By default, fadump reserved memory will be initialized as CMA area.
|
By default, FADump reserved memory will be initialized as CMA area.
|
||||||
Alternatively, user can boot linux kernel with 'fadump=nocma' to
|
Alternatively, user can boot linux kernel with 'fadump=nocma' to
|
||||||
prevent fadump to use CMA.
|
prevent FADump to use CMA.
|
||||||
3. Optionally, user can also set 'crashkernel=' kernel cmdline
|
3. Optionally, user can also set 'crashkernel=' kernel cmdline
|
||||||
to specify size of the memory to reserve for boot memory dump
|
to specify size of the memory to reserve for boot memory dump
|
||||||
preservation.
|
preservation.
|
||||||
|
@ -206,29 +206,29 @@ the control files and debugfs file to display memory reserved region.
|
||||||
Here is the list of files under kernel sysfs:
|
Here is the list of files under kernel sysfs:
|
||||||
|
|
||||||
/sys/kernel/fadump_enabled
|
/sys/kernel/fadump_enabled
|
||||||
This is used to display the fadump status.
|
This is used to display the FADump status.
|
||||||
|
|
||||||
- 0 = fadump is disabled
|
- 0 = FADump is disabled
|
||||||
- 1 = fadump is enabled
|
- 1 = FADump is enabled
|
||||||
|
|
||||||
This interface can be used by kdump init scripts to identify if
|
This interface can be used by kdump init scripts to identify if
|
||||||
fadump is enabled in the kernel and act accordingly.
|
FADump is enabled in the kernel and act accordingly.
|
||||||
|
|
||||||
/sys/kernel/fadump_registered
|
/sys/kernel/fadump_registered
|
||||||
This is used to display the fadump registration status as well
|
This is used to display the FADump registration status as well
|
||||||
as to control (start/stop) the fadump registration.
|
as to control (start/stop) the FADump registration.
|
||||||
|
|
||||||
- 0 = fadump is not registered.
|
- 0 = FADump is not registered.
|
||||||
- 1 = fadump is registered and ready to handle system crash.
|
- 1 = FADump is registered and ready to handle system crash.
|
||||||
|
|
||||||
To register fadump echo 1 > /sys/kernel/fadump_registered and
|
To register FADump echo 1 > /sys/kernel/fadump_registered and
|
||||||
echo 0 > /sys/kernel/fadump_registered for un-register and stop the
|
echo 0 > /sys/kernel/fadump_registered for un-register and stop the
|
||||||
fadump. Once the fadump is un-registered, the system crash will not
|
FADump. Once the FADump is un-registered, the system crash will not
|
||||||
be handled and vmcore will not be captured. This interface can be
|
be handled and vmcore will not be captured. This interface can be
|
||||||
easily integrated with kdump service start/stop.
|
easily integrated with kdump service start/stop.
|
||||||
|
|
||||||
/sys/kernel/fadump_release_mem
|
/sys/kernel/fadump_release_mem
|
||||||
This file is available only when fadump is active during
|
This file is available only when FADump is active during
|
||||||
second kernel. This is used to release the reserved memory
|
second kernel. This is used to release the reserved memory
|
||||||
region that are held for saving crash dump. To release the
|
region that are held for saving crash dump. To release the
|
||||||
reserved memory echo 1 to it::
|
reserved memory echo 1 to it::
|
||||||
|
@ -246,21 +246,25 @@ Here is the list of files under powerpc debugfs:
|
||||||
(Assuming debugfs is mounted on /sys/kernel/debug directory.)
|
(Assuming debugfs is mounted on /sys/kernel/debug directory.)
|
||||||
|
|
||||||
/sys/kernel/debug/powerpc/fadump_region
|
/sys/kernel/debug/powerpc/fadump_region
|
||||||
This file shows the reserved memory regions if fadump is
|
This file shows the reserved memory regions if FADump is
|
||||||
enabled otherwise this file is empty. The output format
|
enabled otherwise this file is empty. The output format
|
||||||
is::
|
is::
|
||||||
|
|
||||||
<region>: [<start>-<end>] <reserved-size> bytes, Dumped: <dump-size>
|
<region>: [<start>-<end>] <reserved-size> bytes, Dumped: <dump-size>
|
||||||
|
|
||||||
|
and for kernel DUMP region is:
|
||||||
|
|
||||||
|
DUMP: Src: <src-addr>, Dest: <dest-addr>, Size: <size>, Dumped: # bytes
|
||||||
|
|
||||||
e.g.
|
e.g.
|
||||||
Contents when fadump is registered during first kernel::
|
Contents when FADump is registered during first kernel::
|
||||||
|
|
||||||
# cat /sys/kernel/debug/powerpc/fadump_region
|
# cat /sys/kernel/debug/powerpc/fadump_region
|
||||||
CPU : [0x0000006ffb0000-0x0000006fff001f] 0x40020 bytes, Dumped: 0x0
|
CPU : [0x0000006ffb0000-0x0000006fff001f] 0x40020 bytes, Dumped: 0x0
|
||||||
HPTE: [0x0000006fff0020-0x0000006fff101f] 0x1000 bytes, Dumped: 0x0
|
HPTE: [0x0000006fff0020-0x0000006fff101f] 0x1000 bytes, Dumped: 0x0
|
||||||
DUMP: [0x0000006fff1020-0x0000007fff101f] 0x10000000 bytes, Dumped: 0x0
|
DUMP: [0x0000006fff1020-0x0000007fff101f] 0x10000000 bytes, Dumped: 0x0
|
||||||
|
|
||||||
Contents when fadump is active during second kernel::
|
Contents when FADump is active during second kernel::
|
||||||
|
|
||||||
# cat /sys/kernel/debug/powerpc/fadump_region
|
# cat /sys/kernel/debug/powerpc/fadump_region
|
||||||
CPU : [0x0000006ffb0000-0x0000006fff001f] 0x40020 bytes, Dumped: 0x40020
|
CPU : [0x0000006ffb0000-0x0000006fff001f] 0x40020 bytes, Dumped: 0x40020
|
||||||
|
@ -268,6 +272,7 @@ Here is the list of files under powerpc debugfs:
|
||||||
DUMP: [0x0000006fff1020-0x0000007fff101f] 0x10000000 bytes, Dumped: 0x10000000
|
DUMP: [0x0000006fff1020-0x0000007fff101f] 0x10000000 bytes, Dumped: 0x10000000
|
||||||
: [0x00000010000000-0x0000006ffaffff] 0x5ffb0000 bytes, Dumped: 0x5ffb0000
|
: [0x00000010000000-0x0000006ffaffff] 0x5ffb0000 bytes, Dumped: 0x5ffb0000
|
||||||
|
|
||||||
|
|
||||||
NOTE:
|
NOTE:
|
||||||
Please refer to Documentation/filesystems/debugfs.txt on
|
Please refer to Documentation/filesystems/debugfs.txt on
|
||||||
how to mount the debugfs filesystem.
|
how to mount the debugfs filesystem.
|
||||||
|
@ -278,7 +283,7 @@ TODO:
|
||||||
- Need to come up with the better approach to find out more
|
- Need to come up with the better approach to find out more
|
||||||
accurate boot memory size that is required for a kernel to
|
accurate boot memory size that is required for a kernel to
|
||||||
boot successfully when booted with restricted memory.
|
boot successfully when booted with restricted memory.
|
||||||
- The fadump implementation introduces a fadump crash info structure
|
- The FADump implementation introduces a FADump crash info structure
|
||||||
in the scratch area before the ELF core header. The idea of introducing
|
in the scratch area before the ELF core header. The idea of introducing
|
||||||
this structure is to pass some important crash info data to the second
|
this structure is to pass some important crash info data to the second
|
||||||
kernel which will help second kernel to populate ELF core header with
|
kernel which will help second kernel to populate ELF core header with
|
||||||
|
|
Loading…
Reference in New Issue