Re: [RFC 1/8] mm: Define coherent device memory node

From: Dave Hansen
Date: Tue Oct 25 2016 - 11:47:23 EST


On 10/24/2016 06:22 PM, Anshuman Khandual wrote:
> On 10/24/2016 10:39 PM, Dave Hansen wrote:
>>> +#ifdef CONFIG_COHERENT_DEVICE
>>>> +#define node_cdm(nid) (NODE_DATA(nid)->coherent_device)
>>>> +#define set_cdm_isolation(nid) (node_cdm(nid) = 1)
>>>> +#define clr_cdm_isolation(nid) (node_cdm(nid) = 0)
>>>> +#define isolated_cdm_node(nid) (node_cdm(nid) == 1)
>>>> +#else
>>>> +#define set_cdm_isolation(nid) ()
>>>> +#define clr_cdm_isolation(nid) ()
>>>> +#define isolated_cdm_node(nid) (0)
>>>> +#endif
>> FWIW, I think adding all this "cdm" gunk in the names is probably a bad
>> thing.
>>
>> I can think of other memory types that are coherent, but
>> non-device-based that might want behavior like this.
>
> Hmm, I was not aware about non-device-based coherent memory. Could you
> please name some of them ? If thats the case we need to change CDM to
> some thing which can accommodate both device and non device based
> coherent memory. May be like "Differentiated/special coherent memory".
> But it needs to communicate that its not system RAM. Thats the idea.

Intel has some stuff called MCDRAM. It's described in detail here:

> https://software.intel.com/en-us/articles/mcdram-high-bandwidth-memory-on-knights-landing-analysis-methods-tools

You can also Google around for more information.

I believe Samsung has a technology called High Bandwidth Memory (HBM)
that's already a couple of generations old that sounds similar.