[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 00/13 v7] Make 'dump-guest-memory' dump in kdump-com
[Qemu-devel] [PATCH 00/13 v7] Make 'dump-guest-memory' dump in kdump-compressed format
Fri, 17 Jan 2014 15:46:06 +0800
The last version is here:
Command 'dump-guest-memory' was introduced to dump guest's memory. But the
vmcore's format is only elf32 or elf64. The message is here:
Compared with migration, the missing of compression feature means regression
to 'dump-guest-memory'. So we post these patches to make 'dump-guest-memory' be
able to dump guest's in kdump-compressed format. Then vmcore can be much
smaller, and easily to be delivered.
The kdump-compressed format is *linux specific* *linux standard* crash dump
format used in kdump framework. The kdump-compressed format is readable only
with the crash utility, and it can be smaller than the ELF format because of
the compression support. To get more detailed information about
kdump-compressed format, please refer to the following URL:
Note, similar to 'dump-guest-memory':
1. The guest should be x86 or x86_64. The other arch is not supported now.
2. If the OS is in the second kernel, gdb may not work well, and crash can
work by specifying '--machdep phys_addr=xxx' in the command line. The
reason is that the second kernel will update the page table, and we can
not get the page table for the first kernel.
3. The cpu's state is stored in QEMU note.
4. The vmcore are able to be compressed with zlib, lzo or snappy. zlib is
available by default, and option '--enable-lzo' or '--enable-snappy'
should be specified with 'configure' to make lzo or snappy available.
Changes from v6 to v7:
1. support BE host
2. abandon non-flatten format to avoid using seek on vmcore
3. abandon using of very large array
4. use get_next_page to replace the iteration of guest's pages
5. abandon the support of HMP
Changes from v5 to v6:
1. add run-time check for compression format(lzo/snappy)
2. address Stefan's comments about reusing code and coding style
3. update the version of kdump-compressed format to 6th
4. resplit the patches
5. Add 'query-dump-guest-memory-capability' command
Changes from v4 to v5:
1. using flatten format to avoid using temporary files according to Stefan's
2. Address Andreas's comments about coding style
Changes from v3 to v4:
1. change to avoid conflict with Andreas's patches
Changes from v2 to v3:
1. Address Eric's comment
Changes from v1 to v2:
1. Address Eric & Daniel's comment: fix manner of string copy.
2. Address Eric's comment: replace reinventing new constants by using the
ready-made ones accoring.
3. Address Andreas's comment: remove useless include.
dump: const-qualify the buf of WriteCoreDumpFunction
dump: add argument to write_elfxx_notes
dump: add API to write header of flatten format
dump: add API to write vmcore
dump: add API to write elf notes to buffer
dump: add support for lzo/snappy
dump: add members to DumpState and init some of them
dump: add API to write dump header
dump: add API to write dump_bitmap
dump: add APIs to operate DataCache
dump: add API to write dump pages
dump: make kdump-compressed format available for 'dump-guest-memory'
dump: add 'query-dump-guest-memory-capability' command
configure | 54 +++
dump.c | 972 ++++++++++++++++++++++++++++++++++++++++++++++++-
hmp.c | 5 +-
include/qom/cpu.h | 3 +-
include/sysemu/dump.h | 138 +++++++
qapi-schema.json | 38 ++-
qmp-commands.hx | 38 ++-
7 files changed, 1228 insertions(+), 20 deletions(-)