All of lore.kernel.org
 help / color / mirror / Atom feed
From: Igor Mammedov <imammedo@redhat.com>
To: junyan.he@gmx.com
Cc: qemu-devel@nongnu.org, Haozhong Zhang <haozhong.zhang@intel.com>,
	xiaoguangrong.eric@gmail.com, crosthwaite.peter@gmail.com,
	mst@redhat.com, dgilbert@redhat.com, ehabkost@redhat.com,
	quintela@redhat.com, Junyan He <junyan.he@intel.com>,
	stefanha@redhat.com, pbonzini@redhat.com, rth@twiddle.net
Subject: Re: [Qemu-devel] [PATCH V6 0/7] nvdimm: guarantee persistence of QEMU writes to persistent memory
Date: Tue, 12 Jun 2018 14:06:43 +0200	[thread overview]
Message-ID: <20180612140643.6f6ed34d@redhat.com> (raw)
In-Reply-To: <1527840629-18648-1-git-send-email-junyan.he@gmx.com>

On Fri,  1 Jun 2018 16:10:22 +0800
junyan.he@gmx.com wrote:

> 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.

extra question, what are expected behavior when QEMU is built without
libpmem and user specifies pmem=on for backend?

> 
> 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
> v5: https://lists.gnu.org/archive/html/qemu-devel/2018-05/msg02258.html
> 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 v6:
> * (Patch 1) Expose all ram block flags rather than redefine the flags.
> * (Patch 4) Use pkg-config rather the hard check when configure. 
> * (Patch 7) Sync and flush all the pmem data when migration completes,
> rather than sync pages one by one in previous version.
> 
> 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.
> 
> 
> Junyan:
> [1/7] memory, exec: Expose all memory block related flags.
> [6/7] migration/ram: Add check and info message to nvdimm post copy.
> [7/7] migration/ram: ensure write persistence on loading all date to PMEM.
> 
> Haozhong:
> [5/7] mem/nvdimm: ensure write persistence to PMEM in label emulation
> 
> Haozhong & Junyan:
> [2/7] memory, exec: switch file ram allocation functions to 'flags' parameters
> [3/7] hostmem-file: add the 'pmem' option
> [4/7] configure: add libpmem support
> 
> 
> Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com>
> Signed-off-by: Junyan He <junyan.he@intel.com>
> 
> ---
> backends/hostmem-file.c | 28 +++++++++++++++++++++++++++-
> configure               | 29 +++++++++++++++++++++++++++++
> docs/nvdimm.txt         | 14 ++++++++++++++
> exec.c                  | 36 ++++++++++++++----------------------
> hw/mem/nvdimm.c         |  9 ++++++++-
> include/exec/memory.h   | 31 +++++++++++++++++++++++++++++--
> include/exec/ram_addr.h | 28 ++++++++++++++++++++++++++--
> include/qemu/pmem.h     | 24 ++++++++++++++++++++++++
> memory.c                |  8 +++++---
> migration/ram.c         | 18 ++++++++++++++++++
> numa.c                  |  2 +-
> qemu-options.hx         |  7 +++++++
> stubs/Makefile.objs     |  1 +
> stubs/pmem.c            | 23 +++++++++++++++++++++++
> 14 files changed, 226 insertions(+), 32 deletions(-)

  parent reply	other threads:[~2018-06-12 12:06 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-01  8:10 [Qemu-devel] [PATCH V6 0/7] nvdimm: guarantee persistence of QEMU writes to persistent memory junyan.he
2018-06-01  8:10 ` [Qemu-devel] [PATCH V6 1/7] memory, exec: Expose all memory block related flags junyan.he
2018-06-05 11:38   ` Stefan Hajnoczi
2018-06-01  8:10 ` [Qemu-devel] [PATCH V6 2/7] memory, exec: switch file ram allocation functions to 'flags' parameters junyan.he
2018-06-05 11:40   ` Stefan Hajnoczi
2018-06-11 15:53   ` Igor Mammedov
2018-06-01  8:10 ` [Qemu-devel] [PATCH V6 3/7] hostmem-file: add the 'pmem' option junyan.he
2018-06-05 11:44   ` Stefan Hajnoczi
2018-06-11 16:02   ` Igor Mammedov
2018-06-01  8:10 ` [Qemu-devel] [PATCH V6 4/7] configure: add libpmem support junyan.he
2018-06-05 11:41   ` Stefan Hajnoczi
2018-06-01  8:10 ` [Qemu-devel] [PATCH V6 5/7] mem/nvdimm: ensure write persistence to PMEM in label emulation junyan.he
2018-06-05 11:44   ` Stefan Hajnoczi
2018-06-01  8:10 ` [Qemu-devel] [PATCH V6 6/7] migration/ram: Add check and info message to nvdimm post copy junyan.he
2018-06-05 11:44   ` Stefan Hajnoczi
2018-06-01  8:10 ` [Qemu-devel] [PATCH V6 7/7] migration/ram: ensure write persistence on loading all data to PMEM junyan.he
2018-06-05 11:44   ` Stefan Hajnoczi
2018-06-07 10:42     ` Dr. David Alan Gilbert
2018-06-01  8:27 ` [Qemu-devel] [PATCH V6 0/7] nvdimm: guarantee persistence of QEMU writes to persistent memory no-reply
2018-06-07 13:50   ` Stefan Hajnoczi
2018-06-01  8:33 ` no-reply
2018-06-12 12:06 ` Igor Mammedov [this message]
2018-06-12 13:38   ` Junyan He
2018-06-12 14:55     ` Igor Mammedov
2018-06-12 15:27       ` Junyan He
2018-06-12 15:43         ` Junyan He
2018-06-13 15:58           ` Igor Mammedov
2018-06-13 20:05     ` Eduardo Habkost

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=20180612140643.6f6ed34d@redhat.com \
    --to=imammedo@redhat.com \
    --cc=crosthwaite.peter@gmail.com \
    --cc=dgilbert@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=haozhong.zhang@intel.com \
    --cc=junyan.he@gmx.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 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.