mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 10:29:37 +00:00
![Keith Busch](/assets/img/avatar_default.png)
System memory may have caches to help improve access speed to frequently requested address ranges. While the system provided cache is transparent to the software accessing these memory ranges, applications can optimize their own access based on cache attributes. Provide a new API for the kernel to register these memory-side caches under the memory node that provides it. The new sysfs representation is modeled from the existing cpu cacheinfo attributes, as seen from /sys/devices/system/cpu/<cpu>/cache/. Unlike CPU cacheinfo though, the node cache level is reported from the view of the memory. A higher level number is nearer to the CPU, while lower levels are closer to the last level memory. The exported attributes are the cache size, the line size, associativity indexing, and write back policy, and add the attributes for the system memory caches to sysfs stable documentation. Signed-off-by: Keith Busch <keith.busch@intel.com> Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Reviewed-by: Brice Goglin <Brice.Goglin@inria.fr> Tested-by: Brice Goglin <Brice.Goglin@inria.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
178 lines
5.9 KiB
Text
178 lines
5.9 KiB
Text
What: /sys/devices/system/node/possible
|
|
Date: October 2002
|
|
Contact: Linux Memory Management list <linux-mm@kvack.org>
|
|
Description:
|
|
Nodes that could be possibly become online at some point.
|
|
|
|
What: /sys/devices/system/node/online
|
|
Date: October 2002
|
|
Contact: Linux Memory Management list <linux-mm@kvack.org>
|
|
Description:
|
|
Nodes that are online.
|
|
|
|
What: /sys/devices/system/node/has_normal_memory
|
|
Date: October 2002
|
|
Contact: Linux Memory Management list <linux-mm@kvack.org>
|
|
Description:
|
|
Nodes that have regular memory.
|
|
|
|
What: /sys/devices/system/node/has_cpu
|
|
Date: October 2002
|
|
Contact: Linux Memory Management list <linux-mm@kvack.org>
|
|
Description:
|
|
Nodes that have one or more CPUs.
|
|
|
|
What: /sys/devices/system/node/has_high_memory
|
|
Date: October 2002
|
|
Contact: Linux Memory Management list <linux-mm@kvack.org>
|
|
Description:
|
|
Nodes that have regular or high memory.
|
|
Depends on CONFIG_HIGHMEM.
|
|
|
|
What: /sys/devices/system/node/nodeX
|
|
Date: October 2002
|
|
Contact: Linux Memory Management list <linux-mm@kvack.org>
|
|
Description:
|
|
When CONFIG_NUMA is enabled, this is a directory containing
|
|
information on node X such as what CPUs are local to the
|
|
node. Each file is detailed next.
|
|
|
|
What: /sys/devices/system/node/nodeX/cpumap
|
|
Date: October 2002
|
|
Contact: Linux Memory Management list <linux-mm@kvack.org>
|
|
Description:
|
|
The node's cpumap.
|
|
|
|
What: /sys/devices/system/node/nodeX/cpulist
|
|
Date: October 2002
|
|
Contact: Linux Memory Management list <linux-mm@kvack.org>
|
|
Description:
|
|
The CPUs associated to the node.
|
|
|
|
What: /sys/devices/system/node/nodeX/meminfo
|
|
Date: October 2002
|
|
Contact: Linux Memory Management list <linux-mm@kvack.org>
|
|
Description:
|
|
Provides information about the node's distribution and memory
|
|
utilization. Similar to /proc/meminfo, see Documentation/filesystems/proc.txt
|
|
|
|
What: /sys/devices/system/node/nodeX/numastat
|
|
Date: October 2002
|
|
Contact: Linux Memory Management list <linux-mm@kvack.org>
|
|
Description:
|
|
The node's hit/miss statistics, in units of pages.
|
|
See Documentation/numastat.txt
|
|
|
|
What: /sys/devices/system/node/nodeX/distance
|
|
Date: October 2002
|
|
Contact: Linux Memory Management list <linux-mm@kvack.org>
|
|
Description:
|
|
Distance between the node and all the other nodes
|
|
in the system.
|
|
|
|
What: /sys/devices/system/node/nodeX/vmstat
|
|
Date: October 2002
|
|
Contact: Linux Memory Management list <linux-mm@kvack.org>
|
|
Description:
|
|
The node's zoned virtual memory statistics.
|
|
This is a superset of numastat.
|
|
|
|
What: /sys/devices/system/node/nodeX/compact
|
|
Date: February 2010
|
|
Contact: Mel Gorman <mel@csn.ul.ie>
|
|
Description:
|
|
When this file is written to, all memory within that node
|
|
will be compacted. When it completes, memory will be freed
|
|
into blocks which have as many contiguous pages as possible
|
|
|
|
What: /sys/devices/system/node/nodeX/hugepages/hugepages-<size>/
|
|
Date: December 2009
|
|
Contact: Lee Schermerhorn <lee.schermerhorn@hp.com>
|
|
Description:
|
|
The node's huge page size control/query attributes.
|
|
See Documentation/admin-guide/mm/hugetlbpage.rst
|
|
|
|
What: /sys/devices/system/node/nodeX/accessY/
|
|
Date: December 2018
|
|
Contact: Keith Busch <keith.busch@intel.com>
|
|
Description:
|
|
The node's relationship to other nodes for access class "Y".
|
|
|
|
What: /sys/devices/system/node/nodeX/accessY/initiators/
|
|
Date: December 2018
|
|
Contact: Keith Busch <keith.busch@intel.com>
|
|
Description:
|
|
The directory containing symlinks to memory initiator
|
|
nodes that have class "Y" access to this target node's
|
|
memory. CPUs and other memory initiators in nodes not in
|
|
the list accessing this node's memory may have different
|
|
performance.
|
|
|
|
What: /sys/devices/system/node/nodeX/accessY/targets/
|
|
Date: December 2018
|
|
Contact: Keith Busch <keith.busch@intel.com>
|
|
Description:
|
|
The directory containing symlinks to memory targets that
|
|
this initiator node has class "Y" access.
|
|
|
|
What: /sys/devices/system/node/nodeX/accessY/initiators/read_bandwidth
|
|
Date: December 2018
|
|
Contact: Keith Busch <keith.busch@intel.com>
|
|
Description:
|
|
This node's read bandwidth in MB/s when accessed from
|
|
nodes found in this access class's linked initiators.
|
|
|
|
What: /sys/devices/system/node/nodeX/accessY/initiators/read_latency
|
|
Date: December 2018
|
|
Contact: Keith Busch <keith.busch@intel.com>
|
|
Description:
|
|
This node's read latency in nanoseconds when accessed
|
|
from nodes found in this access class's linked initiators.
|
|
|
|
What: /sys/devices/system/node/nodeX/accessY/initiators/write_bandwidth
|
|
Date: December 2018
|
|
Contact: Keith Busch <keith.busch@intel.com>
|
|
Description:
|
|
This node's write bandwidth in MB/s when accessed from
|
|
found in this access class's linked initiators.
|
|
|
|
What: /sys/devices/system/node/nodeX/accessY/initiators/write_latency
|
|
Date: December 2018
|
|
Contact: Keith Busch <keith.busch@intel.com>
|
|
Description:
|
|
This node's write latency in nanoseconds when access
|
|
from nodes found in this class's linked initiators.
|
|
|
|
What: /sys/devices/system/node/nodeX/memory_side_cache/indexY/
|
|
Date: December 2018
|
|
Contact: Keith Busch <keith.busch@intel.com>
|
|
Description:
|
|
The directory containing attributes for the memory-side cache
|
|
level 'Y'.
|
|
|
|
What: /sys/devices/system/node/nodeX/memory_side_cache/indexY/indexing
|
|
Date: December 2018
|
|
Contact: Keith Busch <keith.busch@intel.com>
|
|
Description:
|
|
The caches associativity indexing: 0 for direct mapped,
|
|
non-zero if indexed.
|
|
|
|
What: /sys/devices/system/node/nodeX/memory_side_cache/indexY/line_size
|
|
Date: December 2018
|
|
Contact: Keith Busch <keith.busch@intel.com>
|
|
Description:
|
|
The number of bytes accessed from the next cache level on a
|
|
cache miss.
|
|
|
|
What: /sys/devices/system/node/nodeX/memory_side_cache/indexY/size
|
|
Date: December 2018
|
|
Contact: Keith Busch <keith.busch@intel.com>
|
|
Description:
|
|
The size of this memory side cache in bytes.
|
|
|
|
What: /sys/devices/system/node/nodeX/memory_side_cache/indexY/write_policy
|
|
Date: December 2018
|
|
Contact: Keith Busch <keith.busch@intel.com>
|
|
Description:
|
|
The cache write policy: 0 for write-back, 1 for write-through,
|
|
other or unknown.
|