On 01/28/14 07:21, qiaonuohan wrote: > Hi, all > > The last version is here: > http://lists.nongnu.org/archive/html/qemu-devel/2014-01/msg00209.html > > 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: > http://lists.gnu.org/archive/html/qemu-devel/2012-04/msg03379.html > > 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: > http://sourceforge.net/projects/makedumpfile/ > > 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. > > Changelog: > Changes from v7 to v8: > 1. rebase get_max_mapnr() > 2. fix bug of using dh->block_size directly in create_header64() > 3. abandon using static variables in get_next_page() > 4. redefine 'struct PageDesc' to 'struct QEMU_PACKED PageDescriptor' > 5. add return when format checking fails > 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 > comments > 2. Address Andreas's comments about coding style > > Changes from v3 to v4: > 1. change to avoid conflict with Andreas's patches > 2. rebase > > 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. > > qiaonuohan (13): > 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 | 966 > ++++++++++++++++++++++++++++++++++++++++++++++++- > hmp.c | 5 +- > include/qom/cpu.h | 3 +- > include/sysemu/dump.h | 138 +++++++ > qapi-schema.json | 38 ++- > qmp-commands.hx | 38 ++- > 7 files changed, 1222 insertions(+), 20 deletions(-)
Series Reviewed-by: Laszlo Ersek <ler...@redhat.com> Luiz, can you please add it to your queue? Thanks! Laszlo