[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Questions about vNVDIMM on qemu/KVM
From: |
Dan Williams |
Subject: |
Re: [Qemu-devel] Questions about vNVDIMM on qemu/KVM |
Date: |
Wed, 23 May 2018 11:39:06 -0700 |
On Tue, May 22, 2018 at 10:08 PM, Yasunori Goto <address@hidden> wrote:
> Hello,
>
> I'm investigating status of vNVDIMM on qemu/KVM,
> and I have some questions about it. I'm glad if anyone answer them.
>
> In my understanding, qemu/KVM has a feature to show NFIT for guest,
> and it will be still updated about platform capability with this patch set.
> https://lists.gnu.org/archive/html/qemu-devel/2018-05/msg04756.html
>
> And libvirt also supports this feature with <memory model='nvdimm'>
> https://libvirt.org/formatdomain.html#elementsMemory
>
>
> However, virtio-pmem is developing now, and it is better
> for archtectures to detect regions of NVDIMM without ACPI (like s390x)
I think you are confusing virtio-pmem (patches from Pankaj) and
virtio-mem (patches from David)? ...or I'm confused.
> In addition, It is also necessary to flush guest contents on vNVDIMM
> who has a backend-file.
virtio-pmem is a mechanism to use host page cache as pmem in a guest.
It does not support high performance memory applications because it
requires fsync/msync. I.e. it is not DAX it is the traditional mmap
I/O model, but moving page cache management to the host rather than
duplicating it in guests.
> Q1) Does ACPI.NFIT bus of qemu/kvm remain with virtio-pmem?
> How do each roles become it if both NFIT and virtio-pmem will be
> available?
> If my understanding is correct, both NFIT and virtio-pmem is used to
> detect vNVDIMM regions, but only one seems to be necessary....
We need both because they are different. Guest DAX should not be using
virtio-pmem.
> Otherwize, is the NFIT bus just for keeping compatibility,
> and virtio-pmem is promising way?
>
>
> Q2) What bus is(will be?) created for virtio-pmem?
> I could confirm the bus of NFIT is created with <memory model='nvdimm'>,
> and I heard other bus will be created for virtio-pmem, but I could not
> find what bus is created concretely.
> ---
> # ndctl list -B
> {
> "provider":"ACPI.NFIT",
> "dev":"ndbus0"
> }
> ---
>
> I think it affects what operations user will be able to, and what
> notification is necessary for vNVDIMM.
> ACPI defines some operations like namespace controll, and notification
> for NVDIMM health status or others.
> (I suppose that other status notification might be necessary for vNVDIMM,
> but I'm not sure yet...)
>
> If my understanding is wrong, please correct me.
The current plan, per my understanding, is a virtio-pmem SPA UUID
added to the virtual NFIT so that the guest driver can load the pmem
driver but also hook up the virtio command ring for forwarding
WRITE_{FUA,FLUSH} commands as host fsync operations.