[dm-devel] [PATCH] vmalloc: introduce vmap_pfn for persistent memory
Mikulas Patocka
mpatocka at redhat.com
Wed Nov 8 20:26:16 UTC 2017
On Wed, 8 Nov 2017, Christoph Hellwig wrote:
> Can you start by explaining what you actually need the vmap for?
It is possible to use lvm on persistent memory. You can create linear or
striped logical volumes on persistent memory and these volumes still have
the direct_access method, so they can be mapped with the function
dax_direct_access().
If we create logical volumes on persistent memory, the method
dax_direct_access() won't return the whole device, it will return only a
part. When dax_direct_access() returns the whole device, my driver just
uses it without vmap. When dax_direct_access() return only a part of the
device, my driver calls it repeatedly to get all the parts and then
assembles the parts into a linear address space with vmap.
See the function persistent_memory_claim() here:
https://www.redhat.com/archives/dm-devel/2017-November/msg00026.html
> Going through a vmap for every I/O is certainly not going to be nice
> on NVDIMM-N or similar modules :)
It's just a call to vmalloc_to_page.
Though, if persistent memory is not page-backed, I have to copy the data
before writing them.
Mikulas
More information about the dm-devel
mailing list