On Wed, Oct 18, 2017 at 6:03 AM, Stefan Hajnoczi <stefanha(a)gmail.com> wrote:
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
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
This use case is not "Persistent Memory". Persistent Memory is
something you can map and make persistent with CPU instructions.
Anything that requires a driver call is device driver managed "Shared