nvdimm.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [RFC] KVM "fake DAX" device flushing
@ 2017-10-11 18:51 Pankaj Gupta
  2017-10-11 19:22 ` Dan Williams
       [not found] ` <20171011185146.20295-1-pagupta-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  0 siblings, 2 replies; 4+ messages in thread
From: Pankaj Gupta @ 2017-10-11 18:51 UTC (permalink / raw)
  To: linux-kernel-u79uwXL29TY76Z2rM5mHXA, kvm-u79uwXL29TY76Z2rM5mHXA,
	qemu-devel-qX2TKyscuCcdnm+yROfE0A,
	linux-nvdimm-y27Ovi1pjclAfugRpC6u6w,
	linux-mm-Bw31MaZKKs3YtjvyW6yDsg
  Cc: kwolf-H+wXaHxf7aLQT0dZR+AlfA, riel-H+wXaHxf7aLQT0dZR+AlfA,
	jack-AlSwsSmVLrQ, xiaoguangrong.eric-Re5JQEeQqe8AvxtiuMwx3w,
	david-H+wXaHxf7aLQT0dZR+AlfA, pagupta-H+wXaHxf7aLQT0dZR+AlfA,
	ross.zwisler-ral2JQCrhuEAvxtiuMwx3w,
	stefanha-H+wXaHxf7aLQT0dZR+AlfA, pbonzini-H+wXaHxf7aLQT0dZR+AlfA,
	nilal-H+wXaHxf7aLQT0dZR+AlfA

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-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org/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
Qemu  : https://github.com/pagupta/qemu/commit/9c428db1e1076970e097e2b0ef8afe52509af823

Please provide feedback. Also, I would be attending KVM Forum in Prague from (25-27 Oct). 
If you are attending KVM forum/Linux conference, I would love to have a discussion on ideas 
and future work.

Thank you,
Pankaj Gupta

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [RFC] KVM "fake DAX" device flushing
  2017-10-11 18:51 [RFC] KVM "fake DAX" device flushing Pankaj Gupta
@ 2017-10-11 19:22 ` Dan Williams
       [not found] ` <20171011185146.20295-1-pagupta-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  1 sibling, 0 replies; 4+ messages in thread
From: Dan Williams @ 2017-10-11 19:22 UTC (permalink / raw)
  To: Pankaj Gupta
  Cc: linux-kernel, KVM list, Qemu Developers, linux-nvdimm, Linux MM,
	Jan Kara, Stefan Hajnoczi, Rik van Riel, Haozhong Zhang,
	Nitesh Narayan Lal, Kevin Wolf, Paolo Bonzini, Zwisler, Ross,
	David Hildenbrand, Xiao Guangrong

On Wed, Oct 11, 2017 at 11:51 AM, Pankaj Gupta <pagupta@redhat.com> 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@lists.01.org/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.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [RFC] KVM "fake DAX" device flushing
       [not found] ` <20171011185146.20295-1-pagupta-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2017-10-12  8:50   ` Stefan Hajnoczi
  2017-10-12 10:39     ` Pankaj Gupta
  0 siblings, 1 reply; 4+ messages in thread
From: Stefan Hajnoczi @ 2017-10-12  8:50 UTC (permalink / raw)
  To: Pankaj Gupta
  Cc: kwolf-H+wXaHxf7aLQT0dZR+AlfA, riel-H+wXaHxf7aLQT0dZR+AlfA,
	jack-AlSwsSmVLrQ, xiaoguangrong.eric-Re5JQEeQqe8AvxtiuMwx3w,
	kvm-u79uwXL29TY76Z2rM5mHXA, david-H+wXaHxf7aLQT0dZR+AlfA,
	linux-nvdimm-y27Ovi1pjclAfugRpC6u6w,
	ross.zwisler-ral2JQCrhuEAvxtiuMwx3w,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	qemu-devel-qX2TKyscuCcdnm+yROfE0A,
	linux-mm-Bw31MaZKKs3YtjvyW6yDsg, pbonzini-H+wXaHxf7aLQT0dZR+AlfA,
	nilal-H+wXaHxf7aLQT0dZR+AlfA

On Thu, Oct 12, 2017 at 12:21:46AM +0530, Pankaj Gupta 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.

Please post a draft VIRTIO device specification.

The VIRTIO Technical Committee resources and mailing lists are here:

https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=virtio#feedback

Stefan

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [RFC] KVM "fake DAX" device flushing
  2017-10-12  8:50   ` Stefan Hajnoczi
@ 2017-10-12 10:39     ` Pankaj Gupta
  0 siblings, 0 replies; 4+ messages in thread
From: Pankaj Gupta @ 2017-10-12 10:39 UTC (permalink / raw)
  To: Stefan Hajnoczi
  Cc: linux-kernel, kvm, qemu-devel, linux-nvdimm, linux-mm, jack,
	dan j williams, riel, haozhong zhang, nilal, kwolf, pbonzini,
	ross zwisler, david, xiaoguangrong eric


> On Thu, Oct 12, 2017 at 12:21:46AM +0530, Pankaj Gupta 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.
> 
> Please post a draft VIRTIO device specification.

Sure! will prepare and share.

Thanks,
Pankaj
 
> 
> The VIRTIO Technical Committee resources and mailing lists are here:
> 
> https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=virtio#feedback
> 
> Stefan
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-10-12 10:39 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-11 18:51 [RFC] KVM "fake DAX" device flushing Pankaj Gupta
2017-10-11 19:22 ` Dan Williams
     [not found] ` <20171011185146.20295-1-pagupta-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-10-12  8:50   ` Stefan Hajnoczi
2017-10-12 10:39     ` Pankaj Gupta

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).