All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Hajnoczi <stefanha@gmail.com>
To: Pankaj Gupta <pagupta@redhat.com>
Cc: Christoph Hellwig <hch@infradead.org>,
	kwolf@redhat.com, haozhong zhang <haozhong.zhang@intel.com>,
	jack@suse.cz, xiaoguangrong eric <xiaoguangrong.eric@gmail.com>,
	kvm@vger.kernel.org, david@redhat.com, linux-nvdimm@ml01.01.org,
	ross zwisler <ross.zwisler@intel.com>,
	linux-kernel@vger.kernel.org, qemu-devel@nongnu.org,
	linux-mm@kvack.org, stefanha@redhat.com, pbonzini@redhat.com,
	dan j williams <dan.j.williams@intel.com>,
	nilal@redhat.com
Subject: Re: [Qemu-devel] [RFC 2/2] KVM: add virtio-pmem driver
Date: Wed, 18 Oct 2017 15:03:39 +0200	[thread overview]
Message-ID: <20171018130339.GB29767@stefanha-x1.localdomain> (raw)
In-Reply-To: <670833322.21037148.1508229041158.JavaMail.zimbra@redhat.com>

On Tue, Oct 17, 2017 at 04:30:41AM -0400, Pankaj Gupta wrote:
> 
> > > Are you saying do it as existing i.e ACPI pmem like interface?
> > > The reason we have created this new driver is exiting pmem driver
> > > does not define proper semantics for guest flushing requests.
> > 
> > At this point I'm caring about the Linux-internal interface, and
> > for that it should be integrated into the nvdimm subsystem and not
> > a block driver.  How the host <-> guest interface looks is a different
> > idea.
> > 
> > > 
> > > Regarding block support of driver, we want to achieve DAX support
> > > to bypass guest page cache. Also, we want to utilize existing DAX
> > > capable file-system interfaces(e.g fsync) from userspace file API's
> > > to trigger the host side flush request.
> > 
> > Well, if you want to support XFS+DAX better don't make it a block
> > devices, because I'll post patches soon to stop using the block device
> > entirely for the DAX case.
> 
> o.k I will look at your patches once they are in mailing list.
> Thanks for the heads up.
> 
> If I am guessing it right, we don't need block device additional features
> for pmem? We can bypass block device features like blk device cache flush etc.
> Also, still we would be supporting ext4 & XFS filesystem with pmem?
> 
> If there is time to your patches can you please elaborate on this a bit.

I think the idea is that the nvdimm subsystem already adds block device
semantics on top of the struct nvdimms that it manages.  See
drivers/nvdimm/blk.c.

So it would be cleaner to make virtio-pmem an nvdimm bus.  This will
eliminate the duplication between your driver and drivers/nvdimm/ code.
Try "git grep nvdimm_bus_register" to find drivers that use the nvdimm
subsystem.

The virtio-pmem driver could register itself similar to the existing
ACPI NFIT and BIOS e820 pmem drivers.

Stefan

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: Stefan Hajnoczi <stefanha@gmail.com>
To: Pankaj Gupta <pagupta@redhat.com>
Cc: Christoph Hellwig <hch@infradead.org>,
	kwolf@redhat.com, haozhong zhang <haozhong.zhang@intel.com>,
	jack@suse.cz, xiaoguangrong eric <xiaoguangrong.eric@gmail.com>,
	kvm@vger.kernel.org, david@redhat.com, linux-nvdimm@ml01.01.org,
	ross zwisler <ross.zwisler@intel.com>,
	linux-kernel@vger.kernel.org, qemu-devel@nongnu.org,
	linux-mm@kvack.org, stefanha@redhat.com, pbonzini@redhat.com,
	dan j williams <dan.j.williams@intel.com>,
	nilal@redhat.com
Subject: Re: [Qemu-devel] [RFC 2/2] KVM: add virtio-pmem driver
Date: Wed, 18 Oct 2017 15:03:39 +0200	[thread overview]
Message-ID: <20171018130339.GB29767@stefanha-x1.localdomain> (raw)
In-Reply-To: <670833322.21037148.1508229041158.JavaMail.zimbra@redhat.com>

On Tue, Oct 17, 2017 at 04:30:41AM -0400, Pankaj Gupta wrote:
> 
> > > Are you saying do it as existing i.e ACPI pmem like interface?
> > > The reason we have created this new driver is exiting pmem driver
> > > does not define proper semantics for guest flushing requests.
> > 
> > At this point I'm caring about the Linux-internal interface, and
> > for that it should be integrated into the nvdimm subsystem and not
> > a block driver.  How the host <-> guest interface looks is a different
> > idea.
> > 
> > > 
> > > Regarding block support of driver, we want to achieve DAX support
> > > to bypass guest page cache. Also, we want to utilize existing DAX
> > > capable file-system interfaces(e.g fsync) from userspace file API's
> > > to trigger the host side flush request.
> > 
> > Well, if you want to support XFS+DAX better don't make it a block
> > devices, because I'll post patches soon to stop using the block device
> > entirely for the DAX case.
> 
> o.k I will look at your patches once they are in mailing list.
> Thanks for the heads up.
> 
> If I am guessing it right, we don't need block device additional features
> for pmem? We can bypass block device features like blk device cache flush etc.
> Also, still we would be supporting ext4 & XFS filesystem with pmem?
> 
> If there is time to your patches can you please elaborate on this a bit.

I think the idea is that the nvdimm subsystem already adds block device
semantics on top of the struct nvdimms that it manages.  See
drivers/nvdimm/blk.c.

So it would be cleaner to make virtio-pmem an nvdimm bus.  This will
eliminate the duplication between your driver and drivers/nvdimm/ code.
Try "git grep nvdimm_bus_register" to find drivers that use the nvdimm
subsystem.

The virtio-pmem driver could register itself similar to the existing
ACPI NFIT and BIOS e820 pmem drivers.

Stefan

  reply	other threads:[~2017-10-18 13:03 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-12 15:50 [RFC 0/2] KVM "fake DAX" device flushing Pankaj Gupta
2017-10-12 15:50 ` [Qemu-devel] " Pankaj Gupta
2017-10-12 15:50 ` Pankaj Gupta
2017-10-12 15:50 ` [RFC 1/2] pmem: Move reusable code to base header files Pankaj Gupta
2017-10-12 15:50   ` [Qemu-devel] " Pankaj Gupta
2017-10-12 15:50   ` Pankaj Gupta
2017-10-12 20:42   ` Dan Williams
2017-10-12 20:42     ` [Qemu-devel] " Dan Williams
2017-10-12 20:42     ` Dan Williams
2017-10-12 21:27     ` [Qemu-devel] " Pankaj Gupta
2017-10-12 21:27       ` Pankaj Gupta
     [not found] ` <20171012155027.3277-1-pagupta-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-10-12 15:50   ` [RFC 2/2] KVM: add virtio-pmem driver Pankaj Gupta
2017-10-12 15:50     ` [Qemu-devel] " Pankaj Gupta
2017-10-12 15:50     ` Pankaj Gupta
2017-10-12 15:50     ` Pankaj Gupta
2017-10-12 20:51     ` Dan Williams
2017-10-12 20:51       ` [Qemu-devel] " Dan Williams
2017-10-12 20:51       ` Dan Williams
2017-10-12 21:25       ` Pankaj Gupta
2017-10-12 21:25         ` [Qemu-devel] " Pankaj Gupta
2017-10-12 21:25         ` Pankaj Gupta
2017-10-12 21:54         ` Dan Williams
2017-10-12 21:54           ` [Qemu-devel] " Dan Williams
2017-10-12 21:54           ` Dan Williams
     [not found]           ` <CAPcyv4gkri7t+3Unf0sc9AHMnz-v9G_qV_bJppLjUUNAn7drrQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-10-12 22:18             ` Pankaj Gupta
2017-10-12 22:18               ` [Qemu-devel] " Pankaj Gupta
2017-10-12 22:18               ` Pankaj Gupta
2017-10-12 22:18               ` Pankaj Gupta
2017-10-12 22:27               ` Rik van Riel
2017-10-12 22:27                 ` [Qemu-devel] " Rik van Riel
2017-10-12 22:27                 ` Rik van Riel
2017-10-12 22:27                 ` Rik van Riel
2017-10-12 22:27                 ` Rik van Riel
2017-10-12 22:39                 ` Pankaj Gupta
2017-10-12 22:39                   ` [Qemu-devel] " Pankaj Gupta
2017-10-12 22:39                   ` Pankaj Gupta
2017-10-12 22:52                 ` Pankaj Gupta
2017-10-12 22:52                   ` [Qemu-devel] " Pankaj Gupta
2017-10-12 22:52                   ` Pankaj Gupta
2017-10-12 22:59                   ` Dan Williams
2017-10-12 22:59                     ` [Qemu-devel] " Dan Williams
2017-10-12 22:59                     ` Dan Williams
2017-10-12 23:07                     ` Pankaj Gupta
2017-10-12 23:07                       ` [Qemu-devel] " Pankaj Gupta
2017-10-12 23:07                       ` Pankaj Gupta
2017-10-13  9:44     ` Stefan Hajnoczi
2017-10-13  9:44       ` [Qemu-devel] " Stefan Hajnoczi
2017-10-13  9:44       ` Stefan Hajnoczi
2017-10-13 10:48       ` Pankaj Gupta
2017-10-13 10:48         ` [Qemu-devel] " Pankaj Gupta
2017-10-13 10:48         ` Pankaj Gupta
     [not found]         ` <24301306.20068579.1507891695416.JavaMail.zimbra-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-10-16 14:47           ` Stefan Hajnoczi
2017-10-16 14:47             ` [Qemu-devel] " Stefan Hajnoczi
2017-10-16 14:47             ` Stefan Hajnoczi
2017-10-16 14:47             ` Stefan Hajnoczi
2017-10-16 15:58             ` Dan Williams
2017-10-16 15:58               ` [Qemu-devel] " Dan Williams
2017-10-16 15:58               ` Dan Williams
2017-10-16 17:04             ` Pankaj Gupta
2017-10-16 17:04               ` [Qemu-devel] " Pankaj Gupta
2017-10-16 17:04               ` Pankaj Gupta
     [not found]       ` <20171013094431.GA27308-lxVrvc10SDRcolVlb+j0YCZi+YwRKgec@public.gmane.org>
2017-10-13 15:25         ` Dan Williams
2017-10-13 15:25           ` [Qemu-devel] " Dan Williams
2017-10-13 15:25           ` Dan Williams
2017-10-13 15:25           ` Dan Williams
     [not found]     ` <20171012155027.3277-3-pagupta-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-10-17  7:16       ` Christoph Hellwig
2017-10-17  7:16         ` [Qemu-devel] " Christoph Hellwig
2017-10-17  7:16         ` Christoph Hellwig
2017-10-17  7:16         ` Christoph Hellwig
2017-10-17  7:40         ` [Qemu-devel] " Pankaj Gupta
2017-10-17  7:40           ` Pankaj Gupta
2017-10-17  8:02           ` Christoph Hellwig
2017-10-17  8:02             ` Christoph Hellwig
2017-10-17  8:30             ` Pankaj Gupta
2017-10-17  8:30               ` Pankaj Gupta
2017-10-18 13:03               ` Stefan Hajnoczi [this message]
2017-10-18 13:03                 ` Stefan Hajnoczi
2017-10-18 15:51                 ` Dan Williams
2017-10-18 15:51                   ` Dan Williams
     [not found]                   ` <CAPcyv4h6aFkyHhh4R4DTznbSCLf9CuBoszk0Q1gB5EKNcp_SeQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-10-19  8:01                     ` Stefan Hajnoczi
2017-10-19  8:01                       ` Stefan Hajnoczi
2017-10-19  8:01                       ` Stefan Hajnoczi
2017-10-19  8:01                   ` Christoph Hellwig
2017-10-19  8:01                     ` Christoph Hellwig
     [not found]                     ` <20171019080149.GB10089-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2017-10-19 18:21                       ` Dan Williams
2017-10-19 18:21                         ` Dan Williams
2017-10-19 18:21                         ` Dan Williams
     [not found]                         ` <CAPcyv4j=Cdp68C15HddKaErpve2UGRfSTiL6bHiS=3gQybz9pg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-10-20  8:00                           ` Christoph Hellwig
2017-10-20  8:00                             ` Christoph Hellwig
2017-10-20  8:00                             ` Christoph Hellwig
     [not found]                             ` <20171020080049.GA25471-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2017-10-20 15:05                               ` Dan Williams
2017-10-20 15:05                                 ` Dan Williams
2017-10-20 15:05                                 ` Dan Williams
2017-10-20 16:06                                 ` Christoph Hellwig
2017-10-20 16:06                                   ` Christoph Hellwig
2017-10-20 16:11                                   ` Dan Williams
2017-10-20 16:11                                     ` Dan Williams
2017-10-12 15:50 ` [RFC] QEMU: Add virtio pmem device Pankaj Gupta
2017-10-12 15:50   ` [Qemu-devel] " Pankaj Gupta
2017-10-12 15:50   ` Pankaj Gupta

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171018130339.GB29767@stefanha-x1.localdomain \
    --to=stefanha@gmail.com \
    --cc=dan.j.williams@intel.com \
    --cc=david@redhat.com \
    --cc=haozhong.zhang@intel.com \
    --cc=hch@infradead.org \
    --cc=jack@suse.cz \
    --cc=kvm@vger.kernel.org \
    --cc=kwolf@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-nvdimm@ml01.01.org \
    --cc=nilal@redhat.com \
    --cc=pagupta@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=ross.zwisler@intel.com \
    --cc=stefanha@redhat.com \
    --cc=xiaoguangrong.eric@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.