• Keith Busch's avatar
    node: Add heterogenous memory access attributes · e1cf33aa
    Keith Busch authored
    Heterogeneous memory systems provide memory nodes with different latency
    and bandwidth performance attributes. Provide a new kernel interface
    for subsystems to register the attributes under the memory target
    node's initiator access class. If the system provides this information,
    applications may query these attributes when deciding which node to
    request memory.
    
    The following example shows the new sysfs hierarchy for a node exporting
    performance attributes:
    
      # tree -P "read*|write*"/sys/devices/system/node/nodeY/accessZ/initiators/
      /sys/devices/system/node/nodeY/accessZ/initiators/
      |-- read_bandwidth
      |-- read_latency
      |-- write_bandwidth
      `-- write_latency
    
    The bandwidth is exported as MB/s and latency is reported in
    nanoseconds. The values are taken from the platform as reported by the
    manufacturer.
    
    Memory accesses from an initiator node that is not one of the memory's
    access "Z" initiator nodes linked in the same directory may observe
    different performance than reported here. When a subsystem makes use
    of this interface, initiators of a different access number may not have
    the same performance relative to initiators in other access numbers, or
    omitted from the any access class' initiators.
    
    Descriptions for memory access initiator performance access attributes
    are added to sysfs stable documentation.
    Acked-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
    Tested-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
    Reviewed-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Tested-by: default avatarBrice Goglin <Brice.Goglin@inria.fr>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    e1cf33aa
node.c 23.4 KB