virtio-pmem: Add virtio pmem driver
authorPankaj Gupta <pagupta@redhat.com>
Fri, 5 Jul 2019 14:03:23 +0000 (19:33 +0530)
committerDan Williams <dan.j.williams@intel.com>
Fri, 5 Jul 2019 22:19:10 +0000 (15:19 -0700)
commit6e84200c0a2994b991259d19450eee561029bf70
tree66e3cd2cb9bf896803e6012148731cb4ddeaf36f
parentc5d4355d10d414a96ca870b731756b89d068d57a
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>
drivers/nvdimm/Makefile
drivers/nvdimm/nd_virtio.c [new file with mode: 0644]
drivers/nvdimm/virtio_pmem.c [new file with mode: 0644]
drivers/nvdimm/virtio_pmem.h [new file with mode: 0644]
drivers/virtio/Kconfig
include/uapi/linux/virtio_ids.h
include/uapi/linux/virtio_pmem.h [new file with mode: 0644]