| /kernel/linux/linux-4.19/Documentation/ |
| D | memory-hotplug.txt | 2 Memory Hotplug 6 :Updated: Add description of notifier of memory hotplug: Oct 11 2007 8 This document is about memory hotplug including how-to-use and current status. 9 Because Memory Hotplug is still under development, contents of this text will 15 1.1 purpose of memory hotplug 16 1.2. Phases of memory hotplug 17 1.3. Unit of Memory online/offline operation 19 3. sysfs files for memory hotplug 20 4. Physical memory hot-add phase 22 4.2 Notify memory hot-add event by hand [all …]
|
| /kernel/linux/linux-5.10/Documentation/admin-guide/mm/ |
| D | memory-hotplug.rst | 4 Memory Hotplug 10 This document is about memory hotplug including how-to-use and current status. 11 Because Memory Hotplug is still under development, contents of this text will 18 (1) x86_64's has special implementation for memory hotplug. 26 Purpose of memory hotplug 29 Memory Hotplug allows users to increase/decrease the amount of memory. 32 (A) For changing the amount of memory. 38 hardware which supports memory power management. 40 Linux memory hotplug is designed for both purpose. 42 Phases of memory hotplug [all …]
|
| D | concepts.rst | 7 The memory management in Linux is a complex system that evolved over the 9 systems from MMU-less microcontrollers to supercomputers. The memory 18 Virtual Memory Primer 21 The physical memory in a computer system is a limited resource and 22 even for systems that support memory hotplug there is a hard limit on 23 the amount of memory that can be installed. The physical memory is not 29 All this makes dealing directly with physical memory quite complex and 30 to avoid this complexity a concept of virtual memory was developed. 32 The virtual memory abstracts the details of physical memory from the 34 physical memory (demand paging) and provides a mechanism for the [all …]
|
| D | numaperf.rst | 7 Some platforms may have multiple types of memory attached to a compute 8 node. These disparate memory ranges may share some characteristics, such 12 A system supports such heterogeneous memory by grouping each memory type 14 characteristics. Some memory may share the same node as a CPU, and others 15 are provided as memory only nodes. While memory only nodes do not provide 18 nodes with local memory and a memory only node for each of compute node:: 29 A "memory initiator" is a node containing one or more devices such as 30 CPUs or separate memory I/O devices that can initiate memory requests. 31 A "memory target" is a node containing one or more physical address 32 ranges accessible from one or more memory initiators. [all …]
|
| /kernel/linux/linux-5.10/tools/testing/selftests/memory-hotplug/ |
| D | mem-on-off-test.sh | 25 if ! ls $SYSFS/devices/system/memory/memory* > /dev/null 2>&1; then 26 echo $msg memory hotplug is not supported >&2 30 if ! grep -q 1 $SYSFS/devices/system/memory/memory*/removable; then 31 echo $msg no hot-pluggable memory >&2 37 # list all hot-pluggable memory 43 for memory in $SYSFS/devices/system/memory/memory*; do 44 if grep -q 1 $memory/removable && 45 grep -q $state $memory/state; then 46 echo ${memory##/*/memory} 63 grep -q online $SYSFS/devices/system/memory/memory$1/state [all …]
|
| /kernel/linux/linux-4.19/tools/testing/selftests/memory-hotplug/ |
| D | mem-on-off-test.sh | 25 if ! ls $SYSFS/devices/system/memory/memory* > /dev/null 2>&1; then 26 echo $msg memory hotplug is not supported >&2 30 if ! grep -q 1 $SYSFS/devices/system/memory/memory*/removable; then 31 echo $msg no hot-pluggable memory >&2 37 # list all hot-pluggable memory 43 for memory in $SYSFS/devices/system/memory/memory*; do 44 if grep -q 1 $memory/removable && 45 grep -q $state $memory/state; then 46 echo ${memory##/*/memory} 63 grep -q online $SYSFS/devices/system/memory/memory$1/state [all …]
|
| /kernel/linux/linux-4.19/Documentation/cgroup-v1/ |
| D | memory.txt | 1 Memory Resource Controller 8 NOTE: The Memory Resource Controller has generically been referred to as the 9 memory controller in this document. Do not confuse memory controller 10 used here with the memory controller that is used in hardware. 14 When we mention a cgroup (cgroupfs's directory) with memory controller, 15 we call it "memory cgroup". When you see git-log and source code, you'll 19 Benefits and Purpose of the memory controller 21 The memory controller isolates the memory behaviour of a group of tasks 23 uses of the memory controller. The memory controller can be used to 26 Memory-hungry applications can be isolated and limited to a smaller [all …]
|
| /kernel/linux/linux-5.10/Documentation/admin-guide/cgroup-v1/ |
| D | memory.rst | 2 Memory Resource Controller 12 The Memory Resource Controller has generically been referred to as the 13 memory controller in this document. Do not confuse memory controller 14 used here with the memory controller that is used in hardware. 17 When we mention a cgroup (cgroupfs's directory) with memory controller, 18 we call it "memory cgroup". When you see git-log and source code, you'll 22 Benefits and Purpose of the memory controller 25 The memory controller isolates the memory behaviour of a group of tasks 27 uses of the memory controller. The memory controller can be used to 30 Memory-hungry applications can be isolated and limited to a smaller [all …]
|
| /kernel/linux/linux-4.19/Documentation/admin-guide/mm/ |
| D | concepts.rst | 7 The memory management in Linux is complex system that evolved over the 9 systems from MMU-less microcontrollers to supercomputers. The memory 18 Virtual Memory Primer 21 The physical memory in a computer system is a limited resource and 22 even for systems that support memory hotplug there is a hard limit on 23 the amount of memory that can be installed. The physical memory is not 29 All this makes dealing directly with physical memory quite complex and 30 to avoid this complexity a concept of virtual memory was developed. 32 The virtual memory abstracts the details of physical memory from the 34 physical memory (demand paging) and provides a mechanism for the [all …]
|
| /kernel/linux/linux-4.19/Documentation/ABI/testing/ |
| D | sysfs-devices-memory | 1 What: /sys/devices/system/memory 5 The /sys/devices/system/memory contains a snapshot of the 6 internal state of the kernel memory blocks. Files could be 9 Users: hotplug memory add/remove tools 12 What: /sys/devices/system/memory/memoryX/removable 16 The file /sys/devices/system/memory/memoryX/removable 17 indicates whether this memory block is removable or not. 19 identify removable sections of the memory before attempting 20 potentially expensive hot-remove memory operation 21 Users: hotplug memory remove tools [all …]
|
| /kernel/liteos_m/kernel/include/ |
| D | los_memory.h | 33 * @defgroup los_memory Dynamic memory 56 * Starting address of the memory. 70 * @param pool [IN] Starting address of memory. 85 * @brief Deinitialize dynamic memory. 89 * <li>This API is used to deinitialize the dynamic memory of a doubly linked list.</li> 92 * @param pool [IN] Starting address of memory. 94 * @retval #OS_ERROR The dynamic memory fails to be deinitialized. 95 * @retval #LOS_OK The dynamic memory is successfully deinitialized. 126 * @brief Free memory nodes allocated by the specified task. 130 * <li>This API is used to free all memory nodes allocated by the specified task.</li> [all …]
|
| /kernel/linux/linux-5.10/Documentation/ABI/testing/ |
| D | sysfs-devices-memory | 1 What: /sys/devices/system/memory 5 The /sys/devices/system/memory contains a snapshot of the 6 internal state of the kernel memory blocks. Files could be 9 Users: hotplug memory add/remove tools 12 What: /sys/devices/system/memory/memoryX/removable 16 The file /sys/devices/system/memory/memoryX/removable 17 indicates whether this memory block is removable or not. 19 identify removable sections of the memory before attempting 20 potentially expensive hot-remove memory operation 21 Users: hotplug memory remove tools [all …]
|
| /kernel/linux/linux-4.19/include/linux/ |
| D | tee_drv.h | 29 #define TEE_SHM_MAPPED BIT(0) /* Memory mapped by the kernel */ 30 #define TEE_SHM_DMA_BUF BIT(1) /* Memory with dma-buf handle */ 31 #define TEE_SHM_EXT_DMA_BUF BIT(2) /* Memory with dma-buf handle */ 32 #define TEE_SHM_REGISTER BIT(3) /* Memory registered in secure world */ 33 #define TEE_SHM_USER_MAPPED BIT(4) /* Memory mapped in user space */ 34 #define TEE_SHM_POOL BIT(5) /* Memory allocated from pool */ 44 * @list_shm: List of shared memory object owned by this context 49 * shared memory release. 90 * @shm_register: register shared memory buffer in TEE 91 * @shm_unregister: unregister shared memory buffer in TEE [all …]
|
| /kernel/linux/linux-5.10/tools/testing/selftests/cgroup/ |
| D | test_memcontrol.c | 25 * the memory controller. 33 /* Create two nested cgroups with the memory controller enabled */ in test_memcg_subtree_control() 42 if (cg_write(parent, "cgroup.subtree_control", "+memory")) in test_memcg_subtree_control() 48 if (cg_read_strstr(child, "cgroup.controllers", "memory")) in test_memcg_subtree_control() 51 /* Create two nested cgroups without enabling memory controller */ in test_memcg_subtree_control() 66 if (!cg_read_strstr(child2, "cgroup.controllers", "memory")) in test_memcg_subtree_control() 100 current = cg_read_long(cgroup, "memory.current"); in alloc_anon_50M_check() 107 anon = cg_read_key_long(cgroup, "memory.stat", "anon "); in alloc_anon_50M_check() 134 current = cg_read_long(cgroup, "memory.current"); in alloc_pagecache_50M_check() 138 file = cg_read_key_long(cgroup, "memory.stat", "file "); in alloc_pagecache_50M_check() [all …]
|
| /kernel/linux/linux-4.19/tools/testing/selftests/cgroup/ |
| D | test_memcontrol.c | 25 * the memory controller. 33 /* Create two nested cgroups with the memory controller enabled */ in test_memcg_subtree_control() 42 if (cg_write(parent, "cgroup.subtree_control", "+memory")) in test_memcg_subtree_control() 48 if (cg_read_strstr(child, "cgroup.controllers", "memory")) in test_memcg_subtree_control() 51 /* Create two nested cgroups without enabling memory controller */ in test_memcg_subtree_control() 66 if (!cg_read_strstr(child2, "cgroup.controllers", "memory")) in test_memcg_subtree_control() 100 current = cg_read_long(cgroup, "memory.current"); in alloc_anon_50M_check() 107 anon = cg_read_key_long(cgroup, "memory.stat", "anon "); in alloc_anon_50M_check() 134 current = cg_read_long(cgroup, "memory.current"); in alloc_pagecache_50M_check() 138 file = cg_read_key_long(cgroup, "memory.stat", "file "); in alloc_pagecache_50M_check() [all …]
|
| /kernel/linux/linux-5.10/Documentation/vm/ |
| D | memory-model.rst | 6 Physical Memory Model 9 Physical memory in a system may be addressed in different ways. The 10 simplest case is when the physical memory starts at address 0 and 15 different memory banks are attached to different CPUs. 17 Linux abstracts this diversity using one of the three memory models: 19 memory models it supports, what the default memory model is and 26 All the memory models track the status of physical page frames using 29 Regardless of the selected memory model, there exists one-to-one 33 Each memory model defines :c:func:`pfn_to_page` and :c:func:`page_to_pfn` 40 The simplest memory model is FLATMEM. This model is suitable for [all …]
|
| D | hmm.rst | 4 Heterogeneous Memory Management (HMM) 7 Provide infrastructure and helpers to integrate non-conventional memory (device 8 memory like GPU on board memory) into regular kernel path, with the cornerstone 9 of this being specialized struct page for such memory (see sections 5 to 7 of 12 HMM also provides optional helpers for SVM (Share Virtual Memory), i.e., 20 related to using device specific memory allocators. In the second section, I 24 fifth section deals with how device memory is represented inside the kernel. 30 Problems of using a device specific memory allocator 33 Devices with a large amount of on board memory (several gigabytes) like GPUs 34 have historically managed their memory through dedicated driver specific APIs. [all …]
|
| D | numa.rst | 14 or more CPUs, local memory, and/or IO buses. For brevity and to 28 Coherent NUMA or ccNUMA systems. With ccNUMA systems, all memory is visible 32 Memory access time and effective memory bandwidth varies depending on how far 33 away the cell containing the CPU or IO bus making the memory access is from the 34 cell containing the target memory. For example, access to memory by CPUs 36 bandwidths than accesses to memory on other, remote cells. NUMA platforms 41 memory bandwidth. However, to achieve scalable memory bandwidth, system and 42 application software must arrange for a large majority of the memory references 43 [cache misses] to be to "local" memory--memory on the same cell, if any--or 44 to the closest cell with memory. [all …]
|
| /kernel/liteos_a/kernel/include/ |
| D | los_memory.h | 33 * @defgroup los_memory Dynamic memory 55 * The omit layers of function call from call kernel memory interfaces 69 * The start address of exc interaction dynamic memory pool address, when the exc 76 * The start address of system dynamic memory pool address. 83 * @brief Deinitialize dynamic memory. 87 * <li>This API is used to deinitialize the dynamic memory of a doubly linked list.</li> 90 * @param pool [IN] Starting address of memory. 92 * @retval #OS_ERROR The dynamic memory fails to be deinitialized. 93 * @retval #LOS_OK The dynamic memory is successfully deinitialized. 123 * Memory pool extern information structure [all …]
|
| /kernel/liteos_m/testsuites/include/ |
| D | los_dlinkmem.h | 51 * Memory pool information structure 54 void *pPoolAddr; /* *<Starting address of a memory pool */ 55 UINT32 uwPoolSize; /* *<Memory pool size */ 60 * Memory linked list node structure 63 LOS_DL_LIST stFreeNodeInfo; /* *<Free memory node */ 64 struct tagLOS_DLNK_NODE *pstPreNode; /* *<Pointer to the previous memory node */ 71 * @brief Initialize dynamic memory. 75 * <li>This API is used to initialize the dynamic memory of a doubly linked list.</li> 79 …* <li>Call this API when dynamic memory needs to be initialized during the startup of HuaweiLite O… 82 * @param pool [IN] Starting address of memory. [all …]
|
| /kernel/linux/linux-4.19/Documentation/vm/ |
| D | hmm.rst | 4 Heterogeneous Memory Management (HMM) 7 Provide infrastructure and helpers to integrate non-conventional memory (device 8 memory like GPU on board memory) into regular kernel path, with the cornerstone 9 of this being specialized struct page for such memory (see sections 5 to 7 of 12 HMM also provides optional helpers for SVM (Share Virtual Memory), i.e., 20 related to using device specific memory allocators. In the second section, I 24 fifth section deals with how device memory is represented inside the kernel. 30 Problems of using a device specific memory allocator 33 Devices with a large amount of on board memory (several gigabytes) like GPUs 34 have historically managed their memory through dedicated driver specific APIs. [all …]
|
| D | numa.rst | 14 or more CPUs, local memory, and/or IO buses. For brevity and to 28 Coherent NUMA or ccNUMA systems. With ccNUMA systems, all memory is visible 32 Memory access time and effective memory bandwidth varies depending on how far 33 away the cell containing the CPU or IO bus making the memory access is from the 34 cell containing the target memory. For example, access to memory by CPUs 36 bandwidths than accesses to memory on other, remote cells. NUMA platforms 41 memory bandwidth. However, to achieve scalable memory bandwidth, system and 42 application software must arrange for a large majority of the memory references 43 [cache misses] to be to "local" memory--memory on the same cell, if any--or 44 to the closest cell with memory. [all …]
|
| /kernel/linux/linux-4.19/mm/ |
| D | Kconfig | 2 menu "Memory Management options" 9 prompt "Memory model" 16 bool "Flat Memory" 20 Linux manages its memory internally. Most users will 25 memory hotplug may have different options here. 27 but is incompatible with memory hotplug and may suffer 29 "Sparse Memory" and "Discontiguous Memory", choose 30 "Discontiguous Memory". 32 If unsure, choose this option (Flat Memory) over any other. 35 bool "Discontiguous Memory" [all …]
|
| /kernel/linux/linux-5.10/Documentation/core-api/ |
| D | memory-hotplug.rst | 4 Memory hotplug 7 Memory hotplug event notifier 12 There are six types of notification defined in ``include/linux/memory.h``: 15 Generated before new memory becomes available in order to be able to 16 prepare subsystems to handle memory. The page allocator is still unable 17 to allocate from the new memory. 23 Generated when memory has successfully brought online. The callback may 24 allocate pages from the new memory. 27 Generated to begin the process of offlining memory. Allocations are no 28 longer possible from the memory but some of the memory to be offlined [all …]
|
| /kernel/linux/linux-5.10/mm/ |
| D | Kconfig | 3 menu "Memory Management options" 10 prompt "Memory model" 17 Linux manages its memory internally. Most users will 22 bool "Flat Memory" 31 spaces and for features like NUMA and memory hotplug, 32 choose "Sparse Memory". 34 If unsure, choose this option (Flat Memory) over any other. 37 bool "Discontiguous Memory" 41 memory systems, over FLATMEM. These systems have holes 45 Although "Discontiguous Memory" is still used by several [all …]
|