]> git.proxmox.com Git - mirror_qemu.git/commit - memory.c
hostmem-file: add "align" option
authorHaozhong Zhang <haozhong.zhang@intel.com>
Mon, 11 Dec 2017 07:28:04 +0000 (15:28 +0800)
committerEduardo Habkost <ehabkost@redhat.com>
Fri, 19 Jan 2018 13:18:51 +0000 (11:18 -0200)
commit983768431676f9ab8599a0b4813e1ca17af70838
tree4923d3621cf664db0fe10092321df708f718c84f
parent1e2bdd2e20844f6bc343232ea1bb6f64c54a95ce
hostmem-file: add "align" option

When mmap(2) the backend files, QEMU uses the host page size
(getpagesize(2)) by default as the alignment of mapping address.
However, some backends may require alignments different than the page
size. For example, mmap a device DAX (e.g., /dev/dax0.0) on Linux
kernel 4.13 to an address, which is 4K-aligned but not 2M-aligned,
fails with a kernel message like

[617494.969768] dax dax0.0: qemu-system-x86: dax_mmap: fail, unaligned vma (0x7fa37c579000 - 0x7fa43c579000, 0x1fffff)

Because there is no common approach to get such alignment requirement,
we add the 'align' option to 'memory-backend-file', so that users or
management utils, which have enough knowledge about the backend, can
specify a proper alignment via this option.

Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com>
Message-Id: <20171211072806.2812-2-haozhong.zhang@intel.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
[ehabkost: fixed typo, fixed error_setg() format string]
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
backends/hostmem-file.c
docs/nvdimm.txt
exec.c
include/exec/memory.h
memory.c
numa.c
qemu-options.hx