All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Borntraeger <borntraeger@de.ibm.com>
To: Qiao Nuohan <qiaonuohan@cn.fujitsu.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] HMP: support specifying dump format for dump-guest-memory
Date: Thu, 03 Apr 2014 14:16:18 +0200	[thread overview]
Message-ID: <533D5112.3050303@de.ibm.com> (raw)
In-Reply-To: <533ABE41.2070306@de.ibm.com>

On 01/04/14 15:25, Christian Borntraeger wrote:
> On 01/04/14 10:33, Qiao Nuohan wrote:
>> Dumping guest memory is available to specify the dump format now. This patch
>> adds options '-z|-l|-s' to HMP command dump-guest-memory to specify dumping in
>> kdump-compression format, with zlib/lzo/snappy compression. And without these
>> options ELF format will be used.
>>
>> The discussion about this feature is here:
>>
>> http://lists.nongnu.org/archive/html/qemu-devel/2014-03/msg04235.html
>>
>> Signed-off-by: Qiao Nuohan <qiaonuohan@cn.fujitsu.com>
>> Suggested-by: Christian Borntraeger <borntraeger@de.ibm.com>
> 
> Looks good. I was able to take a zlib dump on s390. 


In other words: 
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>

> 
> 
>> ---
>>  hmp-commands.hx | 11 +++++++----
>>  hmp.c           | 25 ++++++++++++++++++++++++-
>>  2 files changed, 31 insertions(+), 5 deletions(-)
>>
>> diff --git a/hmp-commands.hx b/hmp-commands.hx
>> index f3fc514..4b9989f 100644
>> --- a/hmp-commands.hx
>> +++ b/hmp-commands.hx
>> @@ -998,8 +998,8 @@ ETEXI
>>
>>      {
>>          .name       = "dump-guest-memory",
>> -        .args_type  = "paging:-p,filename:F,begin:i?,length:i?",
>> -        .params     = "[-p] filename [begin] [length]",
>> +        .args_type  = "paging:-p,zlib:-z,lzo:-l,snappy:-s,filename:F,begin:i?,length:i?",
>> +        .params     = "[-p] [-z|-l|-s] filename [begin] [length]",
>>          .help       = "dump guest memory to file"
>>                        "\n\t\t\t begin(optional): the starting physical address"
>>                        "\n\t\t\t length(optional): the memory size, in bytes",
>> @@ -1008,12 +1008,15 @@ ETEXI
>>
>>
>>  STEXI
>> -@item dump-guest-memory [-p] @var{protocol} @var{begin} @var{length}
>> +@item dump-guest-memory [-p] [-z|-l|-s] @var{protocol} @var{begin} @var{length}
>>  @findex dump-guest-memory
>>  Dump guest memory to @var{protocol}. The file can be processed with crash or
>> -gdb.
>> +gdb. Without -z|-l|-s, the dump format is ELF.
>>    filename: dump file name
>>      paging: do paging to get guest's memory mapping
>> +      zlib: dump in kdump-compressed format, with zlib compression
>> +       lzo: dump in kdump-compressed format, with lzo compression
>> +    snappy: dump in kdump-compressed format, with snappy compression
>>       begin: the starting physical address. It's optional, and should be
>>              specified with length together.
>>      length: the memory size, in bytes. It's optional, and should be specified
>> diff --git a/hmp.c b/hmp.c
>> index 2f279c4..37c3961 100644
>> --- a/hmp.c
>> +++ b/hmp.c
>> @@ -1308,16 +1308,39 @@ void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict)
>>  {
>>      Error *errp = NULL;
>>      int paging = qdict_get_try_bool(qdict, "paging", 0);
>> +    int zlib = qdict_get_try_bool(qdict, "zlib", 0);
>> +    int lzo = qdict_get_try_bool(qdict, "lzo", 0);
>> +    int snappy = qdict_get_try_bool(qdict, "snappy", 0);
>>      const char *file = qdict_get_str(qdict, "filename");
>>      bool has_begin = qdict_haskey(qdict, "begin");
>>      bool has_length = qdict_haskey(qdict, "length");
>> -    /* kdump-compressed format is not supported for HMP */
>>      bool has_format = false;
>>      int64_t begin = 0;
>>      int64_t length = 0;
>>      enum DumpGuestMemoryFormat dump_format = DUMP_GUEST_MEMORY_FORMAT_ELF;
>>      char *prot;
>>
>> +    if ((zlib + lzo + snappy) > 1) {
>> +        error_setg(&errp, "only one of '-z|-l|-s' can be set");
>> +        hmp_handle_error(mon, &errp);
>> +        return;
>> +    }
>> +
>> +    if (zlib) {
>> +        has_format = true;
>> +        dump_format = DUMP_GUEST_MEMORY_FORMAT_KDUMP_ZLIB;
>> +    }
>> +
>> +    if (lzo) {
>> +        has_format = true;
>> +        dump_format = DUMP_GUEST_MEMORY_FORMAT_KDUMP_LZO;
>> +    }
>> +
>> +    if (snappy) {
>> +        has_format = true;
>> +        dump_format = DUMP_GUEST_MEMORY_FORMAT_KDUMP_SNAPPY;
>> +    }
>> +
>>      if (has_begin) {
>>          begin = qdict_get_int(qdict, "begin");
>>      }
>>
> 
> 

  reply	other threads:[~2014-04-03 12:16 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-01  8:33 [Qemu-devel] [PATCH] HMP: support specifying dump format for dump-guest-memory Qiao Nuohan
2014-04-01 13:25 ` Christian Borntraeger
2014-04-03 12:16   ` Christian Borntraeger [this message]
2014-04-09  1:12     ` qiaonuohan
2014-04-09  9:02 ` Markus Armbruster

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=533D5112.3050303@de.ibm.com \
    --to=borntraeger@de.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qiaonuohan@cn.fujitsu.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.