[libvirt] [PATCH v1 1/2] make qemu dump memory in kdump-compressed format

Qiao Nuohan qiaonuohan at cn.fujitsu.com
Tue Feb 25 01:11:04 UTC 2014


On 02/24/2014 06:30 PM, Daniel P. Berrange wrote:
> On Thu, Feb 20, 2014 at 10:30:31AM +0800, Qiao Nuohan wrote:
>> --memory-only option is introduced without compression supported. Therefore,
>> this is a freature regression of virsh dump. Now qemu has support dumping memory
>> in kdump-compressed format. This patch is used to add "--compress" and
>> "[--compression-format]<string>" to "virsh dump --memory-only" and send
>> dump-guest-memory command to qemu with dump format specified to one of elf,
>> kdump-zlib, kdump-lzo and kdump-snappy.
>>
>> Signed-off-by: Qiao Nuohan<qiaonuohan at cn.fujitsu.com>
>> ---
>>   include/libvirt/libvirt.h.in | 19 ++++++++++++++-----
>>   src/qemu/qemu_driver.c       | 20 ++++++++++++++++----
>>   src/qemu/qemu_monitor.c      |  6 +++---
>>   src/qemu/qemu_monitor.h      |  3 ++-
>>   src/qemu/qemu_monitor_json.c |  4 +++-
>>   src/qemu/qemu_monitor_json.h |  3 ++-
>>   tests/qemumonitorjsontest.c  |  2 +-
>>   tools/virsh-domain.c         | 42 ++++++++++++++++++++++++++++++++++++++++++
>>   8 files changed, 83 insertions(+), 16 deletions(-)
>>
>> diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
>> index 295d551..df62918 100644
>> --- a/include/libvirt/libvirt.h.in
>> +++ b/include/libvirt/libvirt.h.in
>> @@ -1173,11 +1173,20 @@ typedef virDomainMemoryStatStruct *virDomainMemoryStatPtr;
>>
>>   /* Domain core dump flags. */
>>   typedef enum {
>> -    VIR_DUMP_CRASH        = (1<<  0), /* crash after dump */
>> -    VIR_DUMP_LIVE         = (1<<  1), /* live dump */
>> -    VIR_DUMP_BYPASS_CACHE = (1<<  2), /* avoid file system cache pollution */
>> -    VIR_DUMP_RESET        = (1<<  3), /* reset domain after dump finishes */
>> -    VIR_DUMP_MEMORY_ONLY  = (1<<  4), /* use dump-guest-memory */
>> +    VIR_DUMP_CRASH           = (1<<  0), /* crash after dump */
>> +    VIR_DUMP_LIVE            = (1<<  1), /* live dump */
>> +    VIR_DUMP_BYPASS_CACHE    = (1<<  2), /* avoid file system cache pollution */
>> +    VIR_DUMP_RESET           = (1<<  3), /* reset domain after dump finishes */
>> +    VIR_DUMP_MEMORY_ONLY     = (1<<  4), /* use dump-guest-memory */
>> +    VIR_DUMP_COMPRESS_ZLIB   = (1<<  5), /* dump guest memory in
>> +                                            kdump-compressed format, with
>> +                                            zlib-compressed */
>> +    VIR_DUMP_COMPRESS_LZO    = (1<<  6), /* dump guest memory in
>> +                                            kdump-compressed format, with
>> +                                            lzo-compressed */
>> +    VIR_DUMP_COMPRESS_SNAPPY = (1<<  7), /* dump guest memory in
>> +                                            kdump-compressed format, with
>> +                                            snappy-compressed */
>>   } virDomainCoreDumpFlags;
>
> I'm not really a fan of using flags for this, since all these new
> flags are mutually exclusive. This is a strong indication that they
> should not be flags, and instead be a separate parametere. So IMHO
> if we wnat to be able to specify a dump format we should have an
> explicit 'int dumpformat' parameter for it. Yes, I know this would
> involve a new API.

I thought flag would be better, but now I know adding new parameter is
preferred. Thanks for point it out.

>
> Regards,
> Daniel


-- 
Regards
Qiao Nuohan




More information about the libvir-list mailing list