• K
    ICX: node: Link memory nodes to their compute nodes · d40877b4
    Keith Busch 提交于
    commit 08d9dbe72b1f899468b2b34f9309e88a84f440f2 upstream.
    
    Systems may be constructed with various specialized nodes. Some nodes
    may provide memory, some provide compute devices that access and use
    that memory, and others may provide both. Nodes that provide memory are
    referred to as memory targets, and nodes that can initiate memory access
    are referred to as memory initiators.
    
    Memory targets will often have varying access characteristics from
    different initiators, and platforms may have ways to express those
    relationships. In preparation for these systems, provide interfaces for
    the kernel to export the memory relationship among different nodes memory
    targets and their initiators with symlinks to each other.
    
    If a system provides access locality for each initiator-target pair, nodes
    may be grouped into ranked access classes relative to other nodes. The
    new interface allows a subsystem to register relationships of varying
    classes if available and desired to be exported.
    
    A memory initiator may have multiple memory targets in the same access
    class. The target memory's initiators in a given class indicate the
    nodes access characteristics share the same performance relative to other
    linked initiator nodes. Each target within an initiator's access class,
    though, do not necessarily perform the same as each other.
    
    A memory target node may have multiple memory initiators. All linked
    initiators in a target's class have the same access characteristics to
    that target.
    
    The following example show the nodes' new sysfs hierarchy for a memory
    target node 'Y' with access class 0 from initiator node 'X':
    
      # symlinks -v /sys/devices/system/node/nodeX/access0/
      relative: /sys/devices/system/node/nodeX/access0/targets/nodeY -> ../../nodeY
    
      # symlinks -v /sys/devices/system/node/nodeY/access0/
      relative: /sys/devices/system/node/nodeY/access0/initiators/nodeX -> ../../nodeX
    
    The new attributes are added to the sysfs stable documentation.
    Reviewed-by: NJonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: NKeith Busch <keith.busch@intel.com>
    Reviewed-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Tested-by: NBrice Goglin <Brice.Goglin@inria.fr>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: NFan Du <fan.du@intel.com>
    Signed-off-by: NJeffle Xu <jefflexu@linux.alibaba.com>
    Acked-by: NJoseph Qi <joseph.qi@linux.alibaba.com>
    Acked-by: NCaspar Zhang <caspar@linux.alibaba.com>
    d40877b4
node.c 21.9 KB