On Wed, Oct 11, 2017 at 11:51 AM, Pankaj Gupta <pagupta@xxxxxxxxxx> wrote: > We are sharing the prototype version of 'fake DAX' flushing > interface for the initial feedback. This is still work in progress > and not yet ready for merging. > > Protoype right now just implements basic functionality without advanced > features with two major parts: > > - 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 a virtio flushing interface for KVM guest to do a Qemu side sync for > guest DAX persistent memory range. > > - Guest virtio-pmem driver > Reads persistent memory range from paravirt device and reserves system memory map. > It also allocates a block device corresponding to the pmem range which is accessed > by DAX capable file systems. (file system support is still pending). > > We shared the project idea for 'fake DAX' flushing interface here [1]. > Based on suggestions here [2], we implemented guest 'virtio-pmem' > driver and Qemu paravirt device. > > [1] https://www.spinics.net/lists/kvm/msg149761.html > [2] https://www.spinics.net/lists/kvm/msg153095.html > > Work yet to be done: > > - Separate out the common code used by ACPI pmem interface and > reuse it. > > - In pmem device memmap allocation and working. There is some parallel work > going on upstream related to 'memory_hotplug restructuring' [3] and also hitting > a memory section alignment issue [4]. > > [3] https://lwn.net/Articles/712099/ > [4] https://www.mail-archive.com/linux-nvdimm@xxxxxxxxxxxx/msg02978.html > > - Provide DAX capable file-system(ext4 & XFS) support. > - Qemu device flush functionality. > - Qemu live migration work when host page cache is used. > - Multiple virtio-pmem disks support. > > Prototype implementation for feedback: > > Kernel: https://github.com/pagupta/linux/commit/d15cf90074eae91aeed7a228da3faf319566dd40 Please send this as a patch so it can be reviewed over email.