Re: [PATCH v2 00/20] libnd: non-volatile memory device support

Dan Williams
2015-04-28T22:28:43Z

On Tue, Apr 28, 2015 at 2:06 PM, Andy Lutomirski <luto@amacapital.net> wrote:
> On Tue, Apr 28, 2015 at 1:59 PM, Dan Williams <dan.j.williams@intel.com> wrote:
>> On Tue, Apr 28, 2015 at 1:52 PM, Andy Lutomirski <luto@amacapital.net> wrote:
>>> On Tue, Apr 28, 2015 at 11:24 AM, Dan Williams <dan.j.williams@intel.com> wrote:
>>>> Changes since v1 [1]: Incorporates feedback received prior to April 24.
>>>>
>>>> 1/ Ingo said [2]:
>>>>
>>>> "So why on earth is this whole concept and the naming itself
>>>> ('drivers/block/nd/' stands for 'NFIT Defined', apparently)
>>>> revolving around a specific 'firmware' mindset and revolving
>>>> around specific, weirdly named, overly complicated looking
>>>> firmware interfaces that come with their own new weird
>>>> glossary??"
>>>>
>>>> Indeed, we of course consulted the NFIT specification to determine
>>>> the shape of the sub-system, but then let its terms and data
>>>> structures permeate too deep into the implementation. That is fixed
>>>> now with all NFIT specifics factored out into acpi.c. The NFIT is no
>>>> longer required reading to review libnd. Only three concepts are
>>>> needed:
>>>>
>>>> i/ PMEM - contiguous memory range where cpu stores are
>>>> persistent once they are flushed through the memory
>>>> controller.
>>>>
>>>> ii/ BLK - mmio apertures (sliding windows) that can be
>>>> programmed to access an aperture's-worth of persistent
>>>> media at a time.
>>>>
>>>> iii/ DPA - "dimm-physical-address", address space local to a
>>>> dimm. A dimm may provide both PMEM-mode and BLK-mode
>>>> access to a range of DPA. libnd manages allocation of DPA
>>>> to either PMEM or BLK-namespaces to resolve this aliasing.
>>>
>>> Mostly for my understanding: is there a name for "address relative to
>>> the address lines on the DIMM"? That is, a DIMM that exposes 8 GB of
>>> apparent physical memory, possibly interleaved, broken up, or weirdly
>>> remapped by the memory controller, would still have addresses between
>>> 0 and 8 GB. Some of those might be PMEM windows, some might be MMIO,
>>> some might be BLK apertures, etc.
>>>
>>> IIUC "DPA" refers to actual addressable storage, not this type of address?
>>
>> No, DPA is exactly as you describe above. You can't directly access
>> it except through a PMEM mapping (possibly interleaved with DPA from
>> other DIMMs) or a BLK aperture (mmio window into DPA).
>
> So the thing I'm describing has no name, then? Oh, well.

What? The thing you are describing *is* DPA.