On Tue, 18 Feb 2014 14:11:24 +0800 qiaonuohan <qiaonuo...@cn.fujitsu.com> wrote:
> Hi, all > > The last version is here: > http://lists.nongnu.org/archive/html/qemu-devel/2014-01/msg03669.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/ Applied to the qmp branch, thanks. PS: I had to fix a trivial conflict in configure because of commit 95c6bff3561ee. > > Note: > 1. The guest should be x86/x86_64/s390x. 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 v8 to v9: > 1. add Ekaterina's patch(support s390x) into series > 2. modify query-dump-guest-memory-capability according to Paolo Bonzini's > suggestion > 3. fix compiling error on 32-bit host > > 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 (14): > 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' > Define the architecture for compressed dump format > dump: add 'query-dump-guest-memory-capability' command > > configure | 54 +++ > dump.c | 960 > ++++++++++++++++++++++++++++++++++++++++++++++++- > hmp.c | 5 +- > include/qom/cpu.h | 3 +- > include/sysemu/dump.h | 138 +++++++ > qapi-schema.json | 49 +++- > qmp-commands.hx | 27 ++- > target-i386/cpu.h | 2 + > target-s390x/cpu.h | 1 + > 9 files changed, 1219 insertions(+), 20 deletions(-) > >