Re: [Qemu-devel] [RFC 2/2] KVM: add virtio-pmem driver
From: Stefan Hajnoczi <hidden>
Date: 2017-10-19 08:01:53
Also in:
kvm, lkml, nvdimm, qemu-devel
On Wed, Oct 18, 2017 at 08:51:37AM -0700, Dan Williams wrote:
On Wed, Oct 18, 2017 at 6:03 AM, Stefan Hajnoczi [off-list ref] wrote:quoted
On Tue, Oct 17, 2017 at 04:30:41AM -0400, Pankaj Gupta wrote:quoted
quoted
quoted
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.quoted
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.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 Memory".
Dan, in that case do you have ideas regarding Christoph Hellwig's comment that this driver should be integrated into the nvdimm subsystem instead of a new block driver? 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>