Re: [Qemu-devel] [RFC 2/2] KVM: add virtio-pmem driver
From: Dan Williams
Date: Fri Oct 20 2017 - 11:05:17 EST
On Fri, Oct 20, 2017 at 1:00 AM, Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
> On Thu, Oct 19, 2017 at 11:21:26AM -0700, Dan Williams wrote:
>> The difference is that nvdimm_flush() is not mandatory, and that the
>> platform will automatically perform the same flush at power-fail.
>> Applications should be able to assume that if they are using MAP_SYNC
>> that no other coordination with the kernel or the hypervisor is
>> necessary.
>>
>> Advertising this as a generic Persistent Memory range to the guest
>> means that the guest could theoretically use it with device-dax where
>> there is no driver or filesystem sync interface. The hypervisor will
>> be waiting for flush notifications and the guest will just issue cache
>> flushes and sfence instructions. So, as far as I can see we need to
>> differentiate this virtio-model from standard "Persistent Memory" to
>> the guest and remove the possibility of guests/applications making the
>> wrong assumption.
>
> So add a flag that it is not. We already have the nd_volatile type,
> that is special. For now only in Linux, but I think adding this type
> to the spec eventually would be very useful for efficiently exposing
> directly mappable device to VM guests.
Right, that's the same recommendation I gave.
https://lists.gnu.org/archive/html/qemu-devel/2017-07/msg08404.html
...so maybe I'm misunderstanding your concern? It sounds like we're on
the same page.