[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] KVM "fake DAX" flushing interface - discussion
From: |
Dan Williams |
Subject: |
Re: [Qemu-devel] KVM "fake DAX" flushing interface - discussion |
Date: |
Thu, 18 Jan 2018 11:48:30 -0800 |
On Thu, Jan 18, 2018 at 11:36 AM, Pankaj Gupta <address@hidden> wrote:
>
>>
>> On Thu, Jan 18, 2018 at 10:54 AM, Pankaj Gupta <address@hidden> wrote:
>> >
>> >>
>> >> >> I'd like to emphasize again, that I would prefer a virtio-pmem only
>> >> >> solution.
>> >> >>
>> >> >> There are architectures out there (e.g. s390x) that don't support
>> >> >> NVDIMMs - there is no HW interface to expose any such stuff.
>> >> >>
>> >> >> However, with virtio-pmem, we could make it work also on architectures
>> >> >> not having ACPI and friends.
>> >> >
>> >> > ACPI and virtio-only can share the same pmem driver. There are two
>> >> > parts to this, region discovery and setting up the pmem driver. For
>> >> > discovery you can either have an NFIT-bus defined range, or a new
>> >> > virtio-pmem-bus define it. As far as the pmem driver itself it's
>> >> > agnostic to how the range is discovered.
>> >> >
>> >>
>> >> And in addition to discovery + setup, we need the flush via virtio.
>> >>
>> >> > In other words, pmem consumes 'regions' from libnvdimm and the a bus
>> >> > provider like nfit, e820, or a new virtio-mechansim produce 'regions'.
>> >> >
>> >>
>> >> That sounds good to me. I would like to see how the ACPI discovery
>> >> variant connects to a virtio ring.
>> >>
>> >> The natural way for me would be:
>> >>
>> >> A virtio-X device supplies a memory region ("discovery") and also the
>> >> interface for flushes for this device. So one virtio-X corresponds to
>> >> one pmem device. No ACPI to be involved (also not on architectures that
>> >> have ACPI)
>> >
>> > I agree here if we discover regions with virtio-X we don't need to worry
>> > about
>> > NFIT ACPI. Actually, there are three ways to do it with pros and cons of
>> > these
>> > approaches:
>> >
>> > 1] Existing pmem driver & virtio for region discovery:
>> > -----------------------------------------------------
>> > Use existing pmem driver which is tightly coupled with concepts of
>> > namespaces, labels etc
>> > from ACPI region discovery and re-implement these concepts with virtio so
>> > that existing
>> > pmem driver can understand it. In addition to this, task of pmem driver
>> > to send flush command
>> > using virtio.
>>
>> It's not tightly coupled. The whole point of libnvdimm is to be
>> agnostic to ACPI, e820 or any other range discovery. The only work to
>> do beyond identifying the address range is teaching libnvdimm to pass
>> along a flush control interface to the pmem driver.
>
> o.k that means we can configure libnvdimm with virtio as well and use
> existing pmem
> driver. AFAICU it uses nvdimm bus?
>
> Do we need other features which ACPI provides?
No, to keep it simple use nvdimm_pmem_region_create without
registering any DIMM devices. I'd start with the e820 driver as a bus
driver reference (drivers/nvdimm/e820.c) rather than try to unwind the
complexity of the nfit driver.
- Re: [Qemu-devel] KVM "fake DAX" flushing interface - discussion, Pankaj Gupta, 2018/01/13
- Re: [Qemu-devel] KVM "fake DAX" flushing interface - discussion, David Hildenbrand, 2018/01/18
- Re: [Qemu-devel] KVM "fake DAX" flushing interface - discussion, Dan Williams, 2018/01/18
- Re: [Qemu-devel] KVM "fake DAX" flushing interface - discussion, David Hildenbrand, 2018/01/18
- Re: [Qemu-devel] KVM "fake DAX" flushing interface - discussion, Dan Williams, 2018/01/18
- Re: [Qemu-devel] KVM "fake DAX" flushing interface - discussion, Pankaj Gupta, 2018/01/18
- Re: [Qemu-devel] KVM "fake DAX" flushing interface - discussion, Dan Williams, 2018/01/18
- Re: [Qemu-devel] KVM "fake DAX" flushing interface - discussion, Pankaj Gupta, 2018/01/18
- Re: [Qemu-devel] KVM "fake DAX" flushing interface - discussion,
Dan Williams <=
- Re: [Qemu-devel] KVM "fake DAX" flushing interface - discussion, David Hildenbrand, 2018/01/18
- Re: [Qemu-devel] KVM "fake DAX" flushing interface - discussion, Dan Williams, 2018/01/18