Skip to content

nvdimm: support MAP_SYNC for memory-backend-file

Zhang Yi qemu-devel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest7 patches 7 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7numa: Fixed the memory leak of numa error messagenuma.c+1 -02 replies
2/7util/mmap-alloc: switch qemu_ram_mmap() to 'flags' parameterexec.c include/qemu/mmap-alloc.h util/mmap-alloc.c +1 more+27 -70 replies
3/7exec: switch qemu_ram_alloc_from_{file, fd} to the 'flags' parameterexec.c+4 -22 replies
4/7util/mmap-alloc: support MAP_SYNC in qemu_ram_mmap()exec.c include/exec/memory.h include/exec/ram_addr.h +3 more+60 -50 replies
5/7util/mmap-alloc: Switch the RAM_SYNC flags to OnOffAutoinclude/exec/memory.h util/mmap-alloc.c+18 -30 replies
6/7hostmem: add more information in error messagesbackends/hostmem-file.c backends/hostmem.c+9 -50 replies
7/7hostmem-file: add 'sync' optionbackends/hostmem-file.c docs/nvdimm.txt include/exec/memory.h +1 more+87 -22 replies

Reviews trailers per patch

1 of 7 patches has a Reviewed-by or Acked-by.

PatchIgor MammedovPankaj gupta
1/7R-b R-b
2/7
3/7
4/7
5/7
6/7
7/7

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [Qemu-devel] [PATCH V5_resend 0/7] nvdimm: support MAP_SYNC for memory-backend-file

Linux 4.15 introduces a new mmap flag MAP_SYNC, which can be used to guarantee the write persistence to mmap'ed files supporting DAX (e.g., files on ext4/xfs file system mounted with '-o dax').

A description of MAP_SYNC and MAP_SHARED_VALIDATE can be found at

    https://patchwork.kernel.org/patch/10028151/

In order to make sure that the file metadata is in sync after a fault while we are writing a shared DAX supporting backend files, this patch-set enables QEMU to use MAP_SYNC flag for memory-backend-dax-file.

As the DAX vs DMA truncated issue was solved, we refined the code and send out this feature for the v5 version.

A new auto on/off option 'sync' is added to memory-backend-file:
- on: try to pass MAP_SYNC to mmap(2); if MAP_SYNC is not supported or 'share=off', QEMU will abort
- off: never pass MAP_SYNC to mmap(2)
- auto (default): if MAP_SYNC is supported and 'share=on', work as if 'sync=on'; otherwise, work as if 'sync=off'

Zhang Yi (7):
numa: Fixed the memory leak of numa error message util/mmap-alloc: switch qemu_ram_mmap() to 'flags' parameter
exec: switch qemu_ram_alloc_from_{file, fd} to the 'flags' parameter util/mmap-alloc: support MAP_SYNC in qemu_ram_mmap() util/mmap-alloc: Switch the RAM_SYNC flags to OnOffAuto
hostmem: add more information in error messages
hostmem-file: add 'sync' option

 backends/hostmem-file.c               | 45 +++++++++++++++++++++++++++++++++--
 backends/hostmem.c                    |  8 ++++---
 docs/nvdimm.txt                       | 20 +++++++++++++++-
 exec.c                                |  9 +++----
 include/exec/memory.h                 | 18 ++++++++++++++
 include/exec/ram_addr.h               |  1 +
 include/qemu/mmap-alloc.h             | 20 +++++++++++++++-
 include/standard-headers/linux/mman.h | 44 ++++++++++++++++++++++++++++++++++
 numa.c                                |  1 +
 qemu-options.hx                       | 22 ++++++++++++++++-
 util/mmap-alloc.c                     | 26 ++++++++++++++++----
 util/oslib-posix.c                    |  4 +++-
 12 files changed, 200 insertions(+), 18 deletions(-)
 create mode 100644 include/standard-headers/linux/mman.h
Signature · 1 line
2.7.4