From: qiaonuohan <qiaonuohan@cn.fujitsu.com>
To: lcapitulino@redhat.com, qemu-devel@nongnu.org
Cc: qiaonuohan <qiaonuohan@cn.fujitsu.com>
Subject: [Qemu-devel] [PATCH v9 00/14] Make 'dump-guest-memory' dump in kdump-compressed format
Date: Tue, 18 Feb 2014 14:11:24 +0800	[thread overview]
Message-ID: <1392703898-20083-1-git-send-email-qiaonuohan@cn.fujitsu.com> (raw)
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/
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(-)
next             reply	other threads:[~2014-02-18  6:13 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-18  6:11 qiaonuohan [this message]
2014-02-18  6:11 ` [Qemu-devel] [PATCH v9 01/14] dump: const-qualify the buf of WriteCoreDumpFunction qiaonuohan
2014-02-18  6:11 ` [Qemu-devel] [PATCH v9 02/14] dump: add argument to write_elfxx_notes qiaonuohan
2014-02-18  6:11 ` [Qemu-devel] [PATCH v9 03/14] dump: add API to write header of flatten format qiaonuohan
2014-02-18  6:11 ` [Qemu-devel] [PATCH v9 04/14] dump: add API to write vmcore qiaonuohan
2014-02-18  6:11 ` [Qemu-devel] [PATCH v9 05/14] dump: add API to write elf notes to buffer qiaonuohan
2014-02-18  6:11 ` [Qemu-devel] [PATCH v9 06/14] dump: add support for lzo/snappy qiaonuohan
2014-02-18  6:11 ` [Qemu-devel] [PATCH v9 07/14] dump: add members to DumpState and init some of them qiaonuohan
2014-02-18  6:11 ` [Qemu-devel] [PATCH v9 08/14] dump: add API to write dump header qiaonuohan
2014-02-18  6:11 ` [Qemu-devel] [PATCH v9 09/14] dump: add API to write dump_bitmap qiaonuohan
2014-02-18  6:11 ` [Qemu-devel] [PATCH v9 10/14] dump: add APIs to operate DataCache qiaonuohan
2014-02-18  6:11 ` [Qemu-devel] [PATCH v9 11/14] dump: add API to write dump pages qiaonuohan
2014-02-18  6:11 ` [Qemu-devel] [PATCH v9 12/14] dump: make kdump-compressed format available for 'dump-guest-memory' qiaonuohan
2014-02-18  6:11 ` [Qemu-devel] [PATCH v9 13/14] Define the architecture for compressed dump format qiaonuohan
2014-02-18  6:11 ` [Qemu-devel] [PATCH v9 14/14] dump: add 'query-dump-guest-memory-capability' command qiaonuohan
2014-02-28 17:05 ` [Qemu-devel] [PATCH v9 00/14] Make 'dump-guest-memory' dump in kdump-compressed format Luiz Capitulino
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=1392703898-20083-1-git-send-email-qiaonuohan@cn.fujitsu.com \
    --to=qiaonuohan@cn.fujitsu.com \
    --cc=lcapitulino@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).