On Tue, May 22, 2018 at 10:08 PM, Yasunori Goto <y-g...@jp.fujitsu.com> 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.