On 01.06.2018 14:24, Igor Mammedov wrote:
On Wed, 25 Apr 2018 16:54:12 +0530
Pankaj Gupta <pagupta(a)redhat.com> wrote:
> - Qemu virtio-pmem device
> It exposes a persistent memory range to KVM guest which
> at host side is file backed memory and works as persistent
> memory device. In addition to this it provides virtio
> device handling of flushing interface. KVM guest performs
> Qemu side asynchronous sync using this interface.
a random high level question,
Have you considered using a separate (from memory itself)
virtio device as controller for exposing some memory, async flushing.
And then just slaving pc-dimm devices to it with notification/ACPI
code suppressed so that guest won't touch them?
I don't think slaving pc-dimm would be the right thing to do (e.g.
slots, pcdimm vs nvdimm, bus(less), etc..). However the general idea is
interesting for virtio-pmem (as we might have a bigger number of disks).
We could have something like a virtio-pmem-bus to which you attach
virtio-pmem devices. By specifying the mapping, e.g. the thread that
will be used for async flushes will be implicit.
That way it might be more scale-able, you consume only 1 PCI slot
for controller vs multiple for virtio-pmem devices.>
> Changes from previous RFC:
> - Reuse existing 'pmem' code for registering persistent
> memory and other operations instead of creating an entirely
> new block driver.
> - Use VIRTIO driver to register memory information with
> nvdimm_bus and create region_type accordingly.
> - Call VIRTIO flush from existing pmem driver.
> Details of project idea for 'fake DAX' flushing interface is
> shared  & .
> Pankaj Gupta (2):
> Add virtio-pmem guest driver
> pmem: device flush over VIRTIO
>  https://marc.info/?l=linux-mm&m=150782346802290&w=2
>  https://www.spinics.net/lists/kvm/msg149761.html
>  https://www.spinics.net/lists/kvm/msg153095.html
> drivers/nvdimm/region_devs.c | 7 ++
> drivers/virtio/Kconfig | 12 +++
> drivers/virtio/Makefile | 1
> drivers/virtio/virtio_pmem.c | 118 +++++++++++++++++++++++++++++++++++++++
> include/linux/libnvdimm.h | 4 +
> include/uapi/linux/virtio_ids.h | 1
> include/uapi/linux/virtio_pmem.h | 58 +++++++++++++++++++
> 7 files changed, 201 insertions(+)
David / dhildenb