Hello Eric, Luiz and Laszlo, What do you think about my series? And I have add the light-weight introspection in the last patch, do you have some comments on it?
On 01/05/2014 03:27 PM, Qiao Nuohan wrote:
Hi, all The last version is here: http://lists.nongnu.org/archive/html/qemu-devel/2013-07/msg01376.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 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. Qiao Nuohan (11): 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 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' Add 'query-dump-guest-memory-capability' command configure | 50 +++ dump.c | 929 ++++++++++++++++++++++++++++++++++++++++++++++++- hmp-commands.hx | 12 +- hmp.c | 23 ++- include/sysemu/dump.h | 138 ++++++++ qapi-schema.json | 35 ++- qmp-commands.hx | 13 +- 7 files changed, 1178 insertions(+), 22 deletions(-)
-- Regards Qiao Nuohan