linux/drivers/nvdimm
Pankaj Gupta 748a437c5c UPSTREAM: virtio-pmem: Add virtio pmem driver
This patch adds virtio-pmem driver for KVM guest.

Guest reads the persistent memory range information from
Qemu over VIRTIO and registers it on nvdimm_bus. It also
creates a nd_region object with the persistent memory
range information so that existing 'nvdimm/pmem' driver
can reserve this into system memory map. This way
'virtio-pmem' driver uses existing functionality of pmem
driver to register persistent memory compatible for DAX
capable filesystems.

This also provides function to perform guest flush over
VIRTIO from 'pmem' driver when userspace performs flush
on DAX memory range.

Signed-off-by: Pankaj Gupta <pagupta@redhat.com>
Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jakub Staron <jstaron@google.com>
Tested-by: Jakub Staron <jstaron@google.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
(cherry picked from commit 6e84200c0a)
Bug: 146400078
Bug: 148297388
Change-Id: Ie3457fe184f29984d181bc0afa9267e2567a2caf
Signed-off-by: Alistair Delva <adelva@google.com>
2020-01-26 19:04:57 +00:00
..
badrange.c
blk.c
btt_devs.c libnvdimm/btt: Fix a kmemdup failure check 2019-05-16 19:41:19 +02:00
btt.c libnvdimm/btt: fix variable 'rc' set but not used 2020-01-04 19:13:00 +01:00
btt.h
bus.c libnvdimm/region: Initialize bad block for volatile namespaces 2019-10-11 18:21:20 +02:00
claim.c UPSTREAM: libnvdimm: nd_region flush callback support 2020-01-26 19:04:49 +00:00
core.c
dax_devs.c libnvdimm/pfn: fix fsdax-mode namespace info-block zero-fields 2019-07-26 09:14:27 +02:00
dimm_devs.c libnvdimm: Use max contiguous area for namespace size 2018-07-25 14:11:09 -07:00
dimm.c libnvdimm: Introduce locked DIMM capacity support 2018-07-14 10:27:00 -07:00
e820.c libnvdimm, e820: Register all pmem resources 2018-06-02 17:05:43 -07:00
Kconfig
label.c libnvdimm: Fix compilation warnings with W=1 2019-06-19 08:18:03 +02:00
label.h libnvdimm: Fix compilation warnings with W=1 2019-06-19 08:18:03 +02:00
Makefile UPSTREAM: virtio-pmem: Add virtio pmem driver 2020-01-26 19:04:57 +00:00
namespace_devs.c libnvdimm/namespace: Fix label tracking error 2019-05-22 07:37:45 +02:00
nd_virtio.c UPSTREAM: virtio-pmem: Add virtio pmem driver 2020-01-26 19:04:57 +00:00
nd-core.h libnvdimm/bus: Stop holding nvdimm_bus_list_mutex over __nd_ioctl() 2019-07-31 07:27:11 +02:00
nd.h UPSTREAM: libnvdimm: nd_region flush callback support 2020-01-26 19:04:49 +00:00
of_pmem.c UPSTREAM: libnvdimm/of_pmem: Provide a unique name for bus provider 2020-01-26 19:04:40 +00:00
pfn_devs.c libnvdimm/pfn: fix fsdax-mode namespace info-block zero-fields 2019-07-26 09:14:27 +02:00
pfn.h libnvdimm/pfn: fix fsdax-mode namespace info-block zero-fields 2019-07-26 09:14:27 +02:00
pmem.c UPSTREAM: libnvdimm: nd_region flush callback support 2020-01-26 19:04:49 +00:00
pmem.h libnvdimm, pmem: Restore page attributes when clearing errors 2018-08-20 09:22:45 -07:00
region_devs.c UPSTREAM: libnvdimm: nd_region flush callback support 2020-01-26 19:04:49 +00:00
region.c libnvdimm/region: Initialize bad block for volatile namespaces 2019-10-11 18:21:20 +02:00
virtio_pmem.c UPSTREAM: virtio-pmem: Add virtio pmem driver 2020-01-26 19:04:57 +00:00
virtio_pmem.h UPSTREAM: virtio-pmem: Add virtio pmem driver 2020-01-26 19:04:57 +00:00