/openbmc/linux/Documentation/admin-guide/mm/ |
H A D | memory-hotplug.rst | 2 Memory Hot(Un)Plug 5 This document describes generic Linux support for memory hot(un)plug with 13 Memory hot(un)plug allows for increasing and decreasing the size of physical 14 memory available to a machine at runtime. In the simplest case, it consists of 18 Memory hot(un)plug is used for various purposes: 20 - The physical memory available to a machine can be adjusted at runtime, up- or 21 downgrading the memory capacity. This dynamic memory resizing, sometimes 25 - Replacing hardware, such as DIMMs or whole NUMA nodes, without downtime. One 26 example is replacing failing memory modules. 28 - Reducing energy consumption either by physically unplugging memory modules or [all …]
|
H A D | concepts.rst | 5 The memory management in Linux is a complex system that evolved over the 7 systems from MMU-less microcontrollers to supercomputers. The memory 16 Virtual Memory Primer 19 The physical memory in a computer system is a limited resource and 20 even for systems that support memory hotplug there is a hard limit on 21 the amount of memory that can be installed. The physical memory is not 27 All this makes dealing directly with physical memory quite complex and 28 to avoid this complexity a concept of virtual memory was developed. 30 The virtual memory abstracts the details of physical memory from the 31 application software, allows to keep only needed information in the [all …]
|
H A D | numaperf.rst | 2 NUMA Memory Performance 8 Some platforms may have multiple types of memory attached to a compute 9 node. These disparate memory ranges may share some characteristics, such 13 A system supports such heterogeneous memory by grouping each memory type 15 characteristics. Some memory may share the same node as a CPU, and others 16 are provided as memory only nodes. While memory only nodes do not provide 19 nodes with local memory and a memory only node for each of compute node:: 21 +------------------+ +------------------+ 22 | Compute Node 0 +-----+ Compute Node 1 | 24 +--------+---------+ +--------+---------+ [all …]
|
H A D | numa_memory_policy.rst | 2 NUMA Memory Policy 5 What is NUMA Memory Policy? 8 In the Linux kernel, "memory policy" determines from which node the kernel will 9 allocate memory in a NUMA system or in an emulated NUMA system. Linux has 10 supported platforms with Non-Uniform Memory Access architectures since 2.4.?. 11 The current memory policy support was added to Linux 2.6 around May 2004. This 12 document attempts to describe the concepts and APIs of the 2.6 memory policy 15 Memory policies should not be confused with cpusets 16 (``Documentation/admin-guide/cgroup-v1/cpusets.rst``) 18 memory may be allocated by a set of processes. Memory policies are a [all …]
|
/openbmc/phosphor-dbus-interfaces/yaml/xyz/openbmc_project/Inventory/Item/ |
H A D | PersistentMemory.interface.yaml | 2 Implement to provide Persistent memory attributes. 4 - name: ModuleManufacturerID 7 The manufacturer ID of this memory module as defined by JEDEC in 8 JEP-106. 9 - name: ModuleProductID 12 The product ID of this memory module as defined by JEDEC in JEP-106. 13 - name: SubsystemVendorID 16 The manufacturer ID of the memory subsystem controller of this memory 17 module as defined by JEDEC in JEP-106. 18 - name: SubsystemDeviceID [all …]
|
/openbmc/linux/tools/testing/selftests/memory-hotplug/ |
H A D | mem-on-off-test.sh | 2 # SPDX-License-Identifier: GPL-2.0 6 # Kselftest framework requirement - SKIP code is 4. 18 SYSFS=`mount -t sysfs | head -1 | awk '{ print $3 }'` 20 if [ ! -d "$SYSFS" ]; then 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 41 local state=${1:-.\*} [all …]
|
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ |
H A D | Memory.v1_20_0.json | 2 "$id": "http://redfish.dmtf.org/schemas/v1/Memory.v1_20_0.json", 3 "$ref": "#/definitions/Memory", 4 "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", 5 …"copyright": "Copyright 2014-2024 DMTF. For the full DMTF copyright policy, see http://www.dmtf.or… 12 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { 26 "#Memory.DisableMasterPassphrase": { 29 "#Memory.DisablePassphrase": { 32 "#Memory.FreezeSecurityState": { 35 "#Memory.InjectPersistentPoison": { 38 "#Memory.OverwriteUnit": { [all …]
|
H A D | MemoryRegion.v1_0_3.json | 4 "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", 5 …"copyright": "Copyright 2014-2024 DMTF. For the full DMTF copyright policy, see http://www.dmtf.or… 12 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { 28 "description": "The available OEM-specific actions for this resource.", 29 …"longDescription": "This property shall contain the available OEM-specific actions for this resour… 36 "description": "Definition of memory chunk providing capacity for memory region.", 37 …ription": "This type shall contain the definition of a memory chunk providing capacity for memory … 39 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { 55 … "description": "The link to the memory chunk providing capacity to the memory region.", 56 … contain a link to a resource of type `MemoryChunks` that provides capacity to the memory region.", [all …]
|
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/ |
H A D | Memory.v1_20_0.json | 2 "$id": "http://redfish.dmtf.org/schemas/v1/Memory.v1_20_0.json", 3 "$ref": "#/definitions/Memory", 4 "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", 5 …"copyright": "Copyright 2014-2024 DMTF. For the full DMTF copyright policy, see http://www.dmtf.or… 12 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { 26 "#Memory.DisableMasterPassphrase": { 29 "#Memory.DisablePassphrase": { 32 "#Memory.FreezeSecurityState": { 35 "#Memory.InjectPersistentPoison": { 38 "#Memory.OverwriteUnit": { [all …]
|
/openbmc/linux/Documentation/admin-guide/cgroup-v1/ |
H A 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 20 In this document, we avoid using it. 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 [all …]
|
/openbmc/linux/Documentation/mm/ |
H A D | hmm.rst | 2 Heterogeneous Memory Management (HMM) 5 Provide infrastructure and helpers to integrate non-conventional memory (device 6 memory like GPU on board memory) into regular kernel path, with the cornerstone 7 of this being specialized struct page for such memory (see sections 5 to 7 of 10 HMM also provides optional helpers for SVM (Share Virtual Memory), i.e., 17 This document is divided as follows: in the first section I expose the problems 18 related to using device specific memory allocators. In the second section, I 21 CPU page-table mirroring works and the purpose of HMM in this context. The 22 fifth section deals with how device memory is represented inside the kernel. 28 Problems of using a device specific memory allocator [all …]
|
H A D | memory-model.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 Physical Memory Model 7 Physical memory in a system may be addressed in different ways. The 8 simplest case is when the physical memory starts at address 0 and 13 different memory banks are attached to different CPUs. 15 Linux abstracts this diversity using one of the two memory models: 17 memory models it supports, what the default memory model is and 20 All the memory models track the status of physical page frames using 21 struct page arranged in one or more arrays. 23 Regardless of the selected memory model, there exists one-to-one [all …]
|
H A D | numa.rst | 12 or more CPUs, local memory, and/or IO buses. For brevity and to 15 'cells' in this document. 17 Each of the 'cells' may be viewed as an SMP [symmetric multi-processor] subset 18 of the system--although some components necessary for a stand-alone SMP system 20 connected together with some sort of system interconnect--e.g., a crossbar or 21 point-to-point link are common types of NUMA system interconnects. Both of 26 Coherent NUMA or ccNUMA systems. With ccNUMA systems, all memory is visible 28 is handled in hardware by the processor caches and/or the system interconnect. 30 Memory access time and effective memory bandwidth varies depending on how far 31 away the cell containing the CPU or IO bus making the memory access is from the [all …]
|
/openbmc/qemu/include/hw/mem/ |
H A D | memory-device.h | 2 * Memory Device Interface 10 * See the COPYING file in the top-level directory. 16 #include "hw/qdev-core.h" 17 #include "qapi/qapi-types-machine.h" 20 #define TYPE_MEMORY_DEVICE "memory-device" 33 * All memory devices need to implement TYPE_MEMORY_DEVICE as an interface. 35 * A memory device is a device that owns a memory region which is 37 * address in guest physical memory can either be specified explicitly 40 * Some memory device might not own a memory region in certain device 42 * empty memory devices are mostly ignored by the memory device code. [all …]
|
/openbmc/linux/include/uapi/linux/ |
H A D | nitro_enclaves.h | 1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 3 * Copyright 2020-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. 16 * NE_CREATE_VM - The command is used to create a slot that is associated with 20 * setting any resources, such as memory and vCPUs, for an 21 * enclave. Memory and vCPUs are set for the slot mapped to an enclave. 25 * Its format is the detailed in the cpu-lists section: 26 * https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html 30 * in the CPU pool. 34 * * Enclave file descriptor - Enclave file descriptor used with 35 * ioctl calls to set vCPUs and memory [all …]
|
/openbmc/linux/Documentation/core-api/ |
H A 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 …]
|
/openbmc/linux/Documentation/dev-tools/ |
H A D | kasan.rst | 5 -------- 7 Kernel Address Sanitizer (KASAN) is a dynamic memory safety error detector 8 designed to find out-of-bounds and use-after-free bugs. 13 2. Software Tag-Based KASAN 14 3. Hardware Tag-Based KASAN 18 architectures, but it has significant performance and memory overheads. 20 Software Tag-Based KASAN or SW_TAGS KASAN, enabled with CONFIG_KASAN_SW_TAGS, 22 This mode is only supported for arm64, but its moderate memory overhead allows 23 using it for testing on memory-restricted devices with real workloads. 25 Hardware Tag-Based KASAN or HW_TAGS KASAN, enabled with CONFIG_KASAN_HW_TAGS, [all …]
|
/openbmc/linux/mm/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 3 menu "Memory Management options" 7 # add proper SWAP support to them, in which case this can be remove. 16 bool "Support for paging of anonymous memory (swap)" 21 for so called swap devices or swap files in your kernel that are 22 used to provide more virtual memory than the actual RAM present 23 in your computer. If unsure say Y. 32 pages that are in the process of being swapped out and attempts to 33 compress them into a dynamically allocated RAM-based memory pool. 34 This can result in a significant I/O reduction on swap device and, [all …]
|
/openbmc/linux/include/linux/ |
H A D | memory.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * include/linux/memory.h - generic memory definition 6 * basic "struct memory_block" here, which can be embedded in per-arch 9 * Basic handling of the devices is done in drivers/base/memory.c 10 * and system devices are handled in drivers/base/sys.c. 12 * Memory block are exported via sysfs in the class/memory/devices/ 26 * struct memory_group - a logical group of memory blocks 27 * @nid: The node id for all memory blocks inside the memory group. 28 * @blocks: List of all memory blocks belonging to this memory group. 29 * @present_kernel_pages: Present (online) memory outside ZONE_MOVABLE of this [all …]
|
/openbmc/linux/Documentation/admin-guide/mm/damon/ |
H A D | reclaim.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 DAMON-based Reclamation 7 DAMON-based Reclamation (DAMON_RECLAIM) is a static kernel module that aimed to 8 be used for proactive and lightweight reclamation under light memory pressure. 9 It doesn't aim to replace the LRU-list based page_granularity reclamation, but 10 to be selectively used for different level of memory pressure and requirements. 15 On general memory over-committed systems, proactively reclaiming cold pages 16 helps saving memory and reducing latency spikes that incurred by the direct 20 Free Pages Reporting [3]_ based memory over-commit virtualization systems are 21 good example of the cases. In such systems, the guest VMs reports their free [all …]
|
/openbmc/linux/drivers/staging/media/atomisp/pci/ |
H A D | ia_css_dvs.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 10 * This program is distributed in the hope it will be useful, but WITHOUT 34 /* Structure that holds DVS statistics in the ISP internal 44 ia_css_ptr data_ptr; /* base pointer containing all memory */ 45 u32 size; /* size of allocated memory in data_ptr */ 48 /* Structure that holds SKC DVS statistics in the ISP internal 58 /* Map with host-side pointers to ISP-format statistics. 59 * These pointers can either be copies of ISP data or memory mapped 62 * allocated pointer is stored in the data_ptr field. The other fields 69 u32 size; /* total size in bytes */ [all …]
|
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ |
H A D | MemoryRegion_v1.xml | 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!----> 3 <!--################################################################################ --> 4 <!--# Redfish Schema: MemoryRegion v1.0.3 --> 5 <!--# --> 6 <!--# For a detailed change log, see the README file contained in the DSP8010 bundle, --> 7 <!--# available at http://www.dmtf.org/standards/redfish --> 8 <!--# Copyright 2014-2024 DMTF. --> 9 <!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright --> 10 <!--################################################################################ --> [all …]
|
H A D | Memory_v1.xml | 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!----> 3 <!--################################################################################ --> 4 <!--# Redfish Schema: Memory v1.20.0 --> 5 <!--# --> 6 <!--# For a detailed change log, see the README file contained in the DSP8010 bundle, --> 7 <!--# available at http://www.dmtf.org/standards/redfish --> 8 <!--# Copyright 2014-2024 DMTF. --> 9 <!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright --> 10 <!--################################################################################ --> [all …]
|
/openbmc/linux/drivers/xen/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 6 bool "Xen memory balloon driver" 9 The balloon driver allows the Xen domain to request more memory from 10 the system to expand the domain's memory allocation, or alternatively 11 return unneeded memory to the system. 14 bool "Memory hotplug support for Xen balloon driver" 18 Memory hotplug support for Xen balloon driver allows expanding memory 24 memory ranges to use in order to map foreign memory or grants. 26 Memory could be hotplugged in following steps: 28 1) target domain: ensure that memory auto online policy is in [all …]
|
/openbmc/qemu/docs/devel/ |
H A D | memory.rst | 2 The memory API 5 The memory API models the memory and I/O buses and controllers of a QEMU 8 - ordinary RAM 9 - memory-mapped I/O (MMIO) 10 - memory controllers that can dynamically reroute physical memory regions 13 The memory model provides support for 15 - tracking RAM changes by the guest 16 - setting up coalesced memory for kvm 17 - setting up ioeventfd regions for kvm 19 Memory is modelled as an acyclic graph of MemoryRegion objects. Sinks [all …]
|