From: "Michael S. Tsirkin" <mst@redhat.com>
To: "Zhang, Yi" <yi.z.zhang@linux.intel.com>
Cc: xiaoguangrong.eric@gmail.com, stefanha@redhat.com,
pbonzini@redhat.com, pagupta@redhat.com,
yu.c.zhang@linux.intel.com, richardw.yang@linux.intel.com,
ehabkost@redhat.com, qemu-devel@nongnu.org, imammedo@redhat.com,
dan.j.williams@intel.com
Subject: Re: [Qemu-devel] [PATCH V13 5/5] docs: Added MAP_SYNC documentation
Date: Thu, 7 Feb 2019 22:00:46 -0500 [thread overview]
Message-ID: <20190207215556-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <42dd91019c7aa480cb0d26565fefcb1238c37dc8.1549555521.git.yi.z.zhang@linux.intel.com>
On Fri, Feb 08, 2019 at 06:11:23PM +0800, Zhang, Yi wrote:
> From: Zhang Yi <yi.z.zhang@linux.intel.com>
>
> Signed-off-by: Zhang Yi <yi.z.zhang@linux.intel.com>
> ---
> docs/nvdimm.txt | 25 ++++++++++++++++++++++---
> qemu-options.hx | 5 +++++
> 2 files changed, 27 insertions(+), 3 deletions(-)
>
> diff --git a/docs/nvdimm.txt b/docs/nvdimm.txt
> index 5f158a6..a168429 100644
> --- a/docs/nvdimm.txt
> +++ b/docs/nvdimm.txt
> @@ -143,9 +143,28 @@ Guest Data Persistence
> ----------------------
>
> Though QEMU supports multiple types of vNVDIMM backends on Linux,
> -currently the only one that can guarantee the guest write persistence
> -is the device DAX on the real NVDIMM device (e.g., /dev/dax0.0), to
> -which all guest access do not involve any host-side kernel cache.
> +the only backend that can guarantee the guest write persistence is:
> +
> +A. DAX device (e.g., /dev/dax0.0, ) or
> +B. DAX file(mounted with dax option)
> +
> +both are use real NVDIMM device as backend, which supporting direct
> +access for files(no page cache).
So I would just drop above two lines.
How does one know that there's support for direct access?
it's just a question of kernel right?
And I don't think it matter wrt "real NVDIMM" - e.g. it
could be vNVDIMM in a nested virt scenario.
It will still survive host (i.e. L1 guest) crash.
Besides, the above two lines aren't grammatical.
> +
> +When using B (A file supporting direct mapping of persistent memory)
> +as a backend, write persistence is guaranteed if the host kernel has
> +support for the MAP_SYNC flag in the mmap system call (available
> +since Linux 4.15 and on certain distro kernels) and additionally
> +both 'pmem' and 'share' flags are set to 'on' on the backend.
> +
> +If these conditions are not satisfied i.e. if either 'pmem' or 'share'
> +are not set, if the backend file does not support DAX or if MAP_SYNC
> +is not supported by the host kernel, write persistence is not
> +guaranteed after a system crash. For compatibility reasons, these
> +conditions are silently ignored if not satisfied. Currently, no way
> +is provided to test for them.
> +For more details, please reference mmap(2) man page:
> +http://man7.org/linux/man-pages/man2/mmap.2.html.
>
> When using other types of backends, it's suggested to set 'unarmed'
> option of '-device nvdimm' to 'on', which sets the unarmed flag of the
> diff --git a/qemu-options.hx b/qemu-options.hx
> index 08f8516..ef1da8f 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -4002,6 +4002,11 @@ using the SNIA NVM programming model (e.g. Intel NVDIMM).
> If @option{pmem} is set to 'on', QEMU will take necessary operations to
> guarantee the persistence of its own writes to @option{mem-path}
> (e.g. in vNVDIMM label emulation and live migration).
> +Also, we will map the backend-file with MAP_SYNC flag, which ensures the
> +file metadata is in sync for @option{mem-path} in case of host crash
> +or a power failure. MAP_SYNC requires support from both the host kernel
> +(since Linux kernel 4.15) and the filesystem of @option{mem-path} mounted
> +with DAX option.
>
> @item -object memory-backend-ram,id=@var{id},merge=@var{on|off},dump=@var{on|off},share=@var{on|off},prealloc=@var{on|off},size=@var{size},host-nodes=@var{host-nodes},policy=@var{default|preferred|bind|interleave}
>
> --
> 2.7.4
next prev parent reply other threads:[~2019-02-08 3:00 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-08 10:10 [Qemu-devel] [PATCH V13 0/5] support MAP_SYNC for memory-backend-file Zhang, Yi
2019-02-08 3:01 ` Michael S. Tsirkin
2019-02-08 4:52 ` Pankaj Gupta
2019-02-08 10:10 ` [Qemu-devel] [PATCH V13 1/5] util/mmap-alloc: Add a 'is_pmem' parameter to qemu_ram_mmap Zhang, Yi
2019-02-08 10:10 ` [Qemu-devel] [PATCH V13 2/5] scripts/update-linux-headers: add linux/mman.h Zhang, Yi
2019-02-08 10:11 ` [Qemu-devel] [PATCH V13 3/5] linux-headers: " Zhang, Yi
2019-02-08 10:11 ` [Qemu-devel] [PATCH V13 4/5] util/mmap-alloc: support MAP_SYNC in qemu_ram_mmap() Zhang, Yi
2019-04-18 22:05 ` Eduardo Habkost
2019-04-18 22:05 ` Eduardo Habkost
2019-04-18 22:33 ` Eduardo Habkost
2019-04-18 22:33 ` Eduardo Habkost
2019-04-22 0:37 ` Wei Yang
2019-04-22 0:37 ` Wei Yang
2019-02-08 10:11 ` [Qemu-devel] [PATCH V13 5/5] docs: Added MAP_SYNC documentation Zhang, Yi
2019-02-08 3:00 ` Michael S. Tsirkin [this message]
2019-02-08 13:07 ` Yi Zhang
[not found] <cover.1549631480.git.yi.z.zhang@linux.intel.com>
2019-02-08 13:12 ` Zhang, Yi
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=20190207215556-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=dan.j.williams@intel.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=pagupta@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richardw.yang@linux.intel.com \
--cc=stefanha@redhat.com \
--cc=xiaoguangrong.eric@gmail.com \
--cc=yi.z.zhang@linux.intel.com \
--cc=yu.c.zhang@linux.intel.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.