Re: [Qemu-devel] [PATCH 00/13 v7] Make 'dump-guest-memory' dump in kdump-compressed format
Hello, Do you have some comments on the version? On 01/17/2014 03:46 PM, 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 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| 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(-) -- Regards Qiao Nuohan
Re: [Qemu-devel] [PATCH 00/13 v7] Make 'dump-guest-memory' dump in kdump-compressed format
Hi, On 01/21/14 10:56, Qiao Nuohan wrote: Do you have some comments on the version? it's in my review queue. The last version took a lot of energy on my part to review (it's long and complex) so I'm still gearing up. I very much hope I can review this version by diffing it with the last version, and checking the differences against my earlier comments. If that approach doesn't work then it'll take days again *after* I start. Apologies :( Thanks Laszlo
Re: [Qemu-devel] [PATCH 00/13 v7] Make 'dump-guest-memory' dump in kdump-compressed format
On 01/21/2014 06:14 PM, Laszlo Ersek wrote: it's in my review queue. The last version took a lot of energy on my part to review (it's long and complex) so I'm still gearing up. I very much hope I can review this version by diffing it with the last version, and checking the differences against my earlier comments. If that approach doesn't work then it'll take days again*after* I start. Apologies:( I see. Thanks for your help. According to your comments, I did a lot of changes to my last series. Patch 01 are newly added, and patch 07 just move some initialization from other patches. You can check the differences between the reset patches with the last version. And thanks again. -- Regards Qiao Nuohan
[Qemu-devel] [PATCH 00/13 v7] Make 'dump-guest-memory' dump in kdump-compressed format
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 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| 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(-)
Re: [Qemu-devel] [PATCH 00/13 v7] Make 'dump-guest-memory' dump in kdump-compressed format
On 17/01/14 08:46, 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. Nice, we certainly want that. 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. What is the reason for that? Looking over the patch set, there seem to be no architecture folder involved and others like s390x also have the dump-guest-memory support. [...]
Re: [Qemu-devel] [PATCH 00/13 v7] Make 'dump-guest-memory' dump in kdump-compressed format
On 01/17/2014 04:50 PM, Christian Borntraeger wrote: What is the reason for that? Looking over the patch set, there seem to be no architecture folder involved and others like s390x also have the dump-guest-memory support. [...] I found dump-guest-memory have support s390/ppc. I do not restrict the guest should only be x86/x86_64, actually, I get no knowledge about other arch, so what I can do now is just make x86/x86_64 works and be tested. -- Regards Qiao Nuohan