From: junyan.he@gmx.com
To: qemu-devel@nongnu.org
Cc: ehabkost@redhat.com, imammedo@redhat.com, pbonzini@redhat.com,
crosthwaite.peter@gmail.com, rth@twiddle.net,
xiaoguangrong.eric@gmail.com, mst@redhat.com,
quintela@redhat.com, dgilbert@redhat.com, stefanha@redhat.com,
Junyan He <junyan.he@intel.com>,
Haozhong Zhang <haozhong.zhang@intel.com>
Subject: [Qemu-devel] [PATCH V5 0/9] nvdimm: guarantee persistence of QEMU writes to persistent memory
Date: Thu, 10 May 2018 10:08:49 +0800 [thread overview]
Message-ID: <1525918138-6189-1-git-send-email-junyan.he@gmx.com> (raw)
From: Junyan He <junyan.he@intel.com>
QEMU writes to vNVDIMM backends in the vNVDIMM label emulation and
live migration. If the backend is on the persistent memory, QEMU needs
to take proper operations to ensure its writes persistent on the
persistent memory. Otherwise, a host power failure may result in the
loss the guest data on the persistent memory.
This v3 patch series is based on Marcel's patch "mem: add share
parameter to memory-backend-ram" [1] because of the changes in patch 1.
[1] https://lists.gnu.org/archive/html/qemu-devel/2018-02/msg03858.html
Previous versions can be found at
V4: https://lists.gnu.org/archive/html/qemu-devel/2018-02/msg06993.html
v3: https://lists.gnu.org/archive/html/qemu-devel/2018-02/msg04365.html
v2: https://lists.gnu.org/archive/html/qemu-devel/2018-02/msg01579.html
v1: https://lists.gnu.org/archive/html/qemu-devel/2017-12/msg05040.html
Changes in v5:
* (Patch 9) Add post copy check and output some messages for nvdimm.
Changes in v4:
* (Patch 2) Fix compilation errors found by patchew.
Changes in v3:
* (Patch 5) Add a is_pmem flag to ram_handle_compressed() and handle
PMEM writes in it, so we don't need the _common function.
* (Patch 6) Expose qemu_get_buffer_common so we can remove the
unnecessary qemu_get_buffer_to_pmem wrapper.
* (Patch 8) Add a is_pmem flag to xbzrle_decode_buffer() and handle
PMEM writes in it, so we can remove the unnecessary
xbzrle_decode_buffer_{common, to_pmem}.
* Move libpmem stubs to stubs/pmem.c and fix the compilation failures
of test-{xbzrle,vmstate}.c.
Changes in v2:
* (Patch 1) Use a flags parameter in file ram allocation functions.
* (Patch 2) Add a new option 'pmem' to hostmem-file.
* (Patch 3) Use libpmem to operate on the persistent memory, rather
than re-implementing those operations in QEMU.
* (Patch 5-8) Consider the write persistence in the migration path.
Haozhong Zhang (8):
[1/9] memory, exec: switch file ram allocation functions to 'flags' parameters
[2/9] hostmem-file: add the 'pmem' option
[3/9] configure: add libpmem support
[4/9] mem/nvdimm: ensure write persistence to PMEM in label emulation
[5/9] migration/ram: ensure write persistence on loading zero pages to PMEM
[6/9] migration/ram: ensure write persistence on loading normal pages to PMEM
[7/9] migration/ram: ensure write persistence on loading compressed pages to PMEM
[8/9] migration/ram: ensure write persistence on loading xbzrle pages to PMEM
Junyan He (1):
[9/9] migration/ram: Add check and info message to nvdimm post copy.
Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com>
Signed-off-by: Junyan He <junyan.he@intel.com>
---
backends/hostmem-file.c | 27 ++++++++++++++++++++++++++-
configure | 35 +++++++++++++++++++++++++++++++++++
docs/nvdimm.txt | 14 ++++++++++++++
exec.c | 20 ++++++++++++++++----
hw/mem/nvdimm.c | 9 ++++++++-
include/exec/memory.h | 12 ++++++++++--
include/exec/ram_addr.h | 28 ++++++++++++++++++++++++++--
include/migration/qemu-file-types.h | 2 ++
include/qemu/pmem.h | 27 +++++++++++++++++++++++++++
memory.c | 8 +++++---
migration/qemu-file.c | 29 +++++++++++++++++++----------
migration/ram.c | 52 ++++++++++++++++++++++++++++++++++++++++++----------
migration/ram.h | 2 +-
migration/rdma.c | 2 +-
migration/xbzrle.c | 8 ++++++--
migration/xbzrle.h | 3 ++-
numa.c | 2 +-
qemu-options.hx | 7 +++++++
stubs/Makefile.objs | 1 +
stubs/pmem.c | 37 +++++++++++++++++++++++++++++++++++++
tests/Makefile.include | 4 ++--
tests/test-xbzrle.c | 4 ++--
22 files changed, 290 insertions(+), 43 deletions(-)
--
2.7.4
next reply other threads:[~2018-05-10 2:09 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-10 2:08 junyan.he [this message]
2018-05-10 2:08 ` [Qemu-devel] [PATCH 1/9 V5] memory, exec: switch file ram allocation functions to 'flags' parameters junyan.he
2018-05-10 21:08 ` Murilo Opsfelder Araujo
2018-05-11 7:20 ` Junyan He
2018-05-31 12:46 ` Stefan Hajnoczi
2018-05-10 2:08 ` [Qemu-devel] [PATCH 2/9 V5] hostmem-file: add the 'pmem' option junyan.he
2018-05-31 12:35 ` Stefan Hajnoczi
2018-05-31 13:09 ` Stefan Hajnoczi
2018-06-01 5:14 ` Junyan He
2018-05-10 2:08 ` [Qemu-devel] [PATCH 3/9 V5] configure: add libpmem support junyan.he
2018-05-31 12:54 ` Stefan Hajnoczi
2018-05-10 2:08 ` [Qemu-devel] [PATCH 4/9 V5] mem/nvdimm: ensure write persistence to PMEM in label emulation junyan.he
2018-05-10 2:08 ` [Qemu-devel] [PATCH 5/9 V5] migration/ram: ensure write persistence on loading zero pages to PMEM junyan.he
2018-05-10 2:08 ` [Qemu-devel] [PATCH 6/9 V5] migration/ram: ensure write persistence on loading normal " junyan.he
2018-05-10 2:08 ` [Qemu-devel] [PATCH 7/9 V5] migration/ram: ensure write persistence on loading compressed " junyan.he
2018-05-10 2:08 ` [Qemu-devel] [PATCH 8/9 V5] migration/ram: ensure write persistence on loading xbzrle " junyan.he
2018-05-10 2:08 ` [Qemu-devel] [PATCH 9/9 V5] migration/ram: Add check and info message to nvdimm post copy junyan.he
2018-05-10 2:21 ` [Qemu-devel] [PATCH V5 0/9] nvdimm: guarantee persistence of QEMU writes to persistent memory He, Junyan
2018-05-10 2:22 ` no-reply
2018-05-21 3:19 ` Junyan He
2018-05-28 5:26 ` Junyan He
2018-05-31 13:18 ` Stefan Hajnoczi
2018-05-31 14:28 ` Dr. David Alan Gilbert
2018-05-31 14:36 ` Junyan He
2018-05-31 14:42 ` Dr. David Alan Gilbert
2018-05-31 15:04 ` Junyan He
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=1525918138-6189-1-git-send-email-junyan.he@gmx.com \
--to=junyan.he@gmx.com \
--cc=crosthwaite.peter@gmail.com \
--cc=dgilbert@redhat.com \
--cc=ehabkost@redhat.com \
--cc=haozhong.zhang@intel.com \
--cc=imammedo@redhat.com \
--cc=junyan.he@intel.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=rth@twiddle.net \
--cc=stefanha@redhat.com \
--cc=xiaoguangrong.eric@gmail.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 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).