On 11/15/2018 04:19 AM, Keith Busch wrote: > Heterogeneous memory systems provide memory nodes with latency > and bandwidth performance attributes that are different from other > nodes. Create an interface for the kernel to register these attributes There are other properties like power consumption, reliability which can be associated with a particular PA range. Also the set of properties has to be extensible for the future. > under the node that provides the memory. If the system provides this > information, applications can query the node attributes when deciding > which node to request memory. Right but each (memory initiator, memory target) should have these above mentioned properties enumerated to have an 'property as seen' from kind of semantics. > > When multiple memory initiators exist, accessing the same memory target > from each may not perform the same as the other. The highest performing > initiator to a given target is considered to be a local initiator for > that target. The kernel provides performance attributes only for the > local initiators. As mentioned above the interface must enumerate a future extensible set of properties for each (memory initiator, memory target) pair available on the system. > > The memory's compute node should be symlinked in sysfs as one of the > node's initiators. Right. IIUC the first patch skips the linking process of for two nodes A and B if (A == B) preventing association to local memory initiator.