summaryrefslogtreecommitdiff
path: root/IMPLEMENTATION
diff options
context:
space:
mode:
authorZhou Wenjian <zhouwj-fnst@cn.fujitsu.com>2014-11-14 17:22:54 +0900
committerAtsushi Kumagai <kumagai-atsushi@mxc.nes.nec.co.jp>2014-11-14 17:22:54 +0900
commitb343067161b5afbe3e0f2de0a01b709c19a8db80 (patch)
tree81c974cea3ed189b210eb23659b7b6ca4e9a9403 /IMPLEMENTATION
parent4074bb635569e4e10d9310e77d93dc63e521d25e (diff)
[PATCH 2/2] Add description of incomplete dump file.
Add description of incomplete elf and kdump-compressed dump file in IMPLEMENTATION. Signed-off-by: Qiao Nuohan <qiaonuohan@cn.fujitsu.com> Signed-off-by: Zhou Wenjian <zhouwj-fnst@cn.fujitsu.com>
Diffstat (limited to 'IMPLEMENTATION')
-rw-r--r--IMPLEMENTATION76
1 files changed, 76 insertions, 0 deletions
diff --git a/IMPLEMENTATION b/IMPLEMENTATION
index 33cac70..7ae7aa1 100644
--- a/IMPLEMENTATION
+++ b/IMPLEMENTATION
@@ -200,3 +200,79 @@
- segments
The data dumped are all stored in segments and notes.
+
+
+* The incomplete DUMPFILE
+ When generating DUMPFILE, if ENOSPACE error happens, the DUMPFILE will be
+ incomplete.
+
+ - The incomplete kdump-compressed DUMPFILE
+
+ the complete the incomplete
+ +-----------------------+ +-----------------------+
+ | main header | | main header | have incomplete flag
+ |-----------------------+ |-----------------------+
+ | sub header | | sub header |
+ |-----------------------+ |-----------------------+
+ | 1st-bitmap | | 1st-bitmap |
+ |-----------------------+ |-----------------------+
+ | 2nd-bitmap | | 2nd-bitmap |
+ |-----------------------+ |-----------------------+
+ | page header for pfn 0 | | page header for pfn 0 |
+ | page header for pfn 1 | | page header for pfn 1 |
+ | : | | : |
+ | page header for pfn N | | page header for pfn N | The page headers after
+ | : | | | N don't exist. The
+ | page header for pfn Z | | | value of it is zero,
+ |-----------------------| |-----------------------| when try to read it.
+ | page data (pfn 0) | | page data (pfn 0) |
+ | page data (pfn 1) | | page data (pfn 1) |
+ | : | | : |
+ | page data (pfn N) | | page data (pfn N) |
+ | : | +-----------------------+
+ | page data (pfn Z) |
+ +-----------------------+
+
+ The incomplete flag is set into status of disk_dump_header by
+ status |= DUMP_DH_COMPRESSED_INCOMPLETE
+ DUMP_DH_COMPRESSED_INCOMPLETE : 0x8
+
+ The page header and page data are written in pairs. When writing page data
+ (pfn N+1), if ENOSPACE error happens, the page headers after N won't be
+ written either.
+
+ If there is no page data dumped into the DUMPFILE, the DUMPFILE can't be
+ analysed by crash.
+
+ - The incomplete elf DUMPFILE
+
+ the complete the incomplete
+ +-------------+ +-------------+
+ | elf header | | elf header | have incomplete flag
+ |-------------+ |-------------+
+ | PT_NOTE | | PT_NOTE |
+ | PT_LOAD(1) | | PT_LOAD(1) |
+ | : | | : |
+ | PT_LOAD(N) | | PT_LOAD(N) | The PT_LOAD after N don't exist.
+ | : | | | The value of it is zero, when try
+ | PT_LOAD(Z) | | | to read it.
+ |-------------+ |-------------+
+ | NOTE | | NOTE |
+ |-------------+ |-------------+
+ | segment(1) | | segment(1) |
+ | : | | : |
+ | segment(N) | | segment(N) | The segment(N) is incomplete.
+ | : | +-------------+ The segments after N don't exist.
+ | segment(Z) |
+ +-------------+
+
+ The incomplete flag is set into e_flags of elf_header by
+ e_flags |= DUMP_ELF_INCOMPLETE
+ DUMP_ELF_INCOMPLETE : 0x1
+
+ The PT_LOAD and segment are written in pairs. When writing segment(N)
+ , if ENOSPACE error happens, the PT_LOAD after N won't be written
+ either.
+
+ If there is no segment dumped into the DUMPFILE, the DUMPFILE can't be
+ analysed by crash.