/linux/tools/testing/selftests/memory-hotplug/ |
H A 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*; d [all...] |
/linux/drivers/gpu/drm/nouveau/nvkm/core/ |
H A D | memory.c | 24 #include <core/memory.h> 30 nvkm_memory_tags_put(struct nvkm_memory *memory, struct nvkm_device *device, in nvkm_memory_tags_put() argument 39 kfree(memory->tags); in nvkm_memory_tags_put() 40 memory->tags = NULL; in nvkm_memory_tags_put() 48 nvkm_memory_tags_get(struct nvkm_memory *memory, struct nvkm_device *device, in nvkm_memory_tags_get() argument 56 if ((tags = memory->tags)) { in nvkm_memory_tags_get() 57 /* If comptags exist for the memory, but a different amount in nvkm_memory_tags_get() 84 * As memory can be mapped in multiple places, we still in nvkm_memory_tags_get() 94 *ptags = memory->tags = tags; in nvkm_memory_tags_get() 101 struct nvkm_memory *memory) in nvkm_memory_ctor() argument 110 struct nvkm_memory *memory = container_of(kref, typeof(*memory), kref); nvkm_memory_del() local 121 struct nvkm_memory *memory = *pmemory; nvkm_memory_unref() local 129 nvkm_memory_ref(struct nvkm_memory * memory) nvkm_memory_ref() argument 142 struct nvkm_memory *memory; nvkm_memory_new() local [all...] |
/linux/Documentation/admin-guide/mm/ |
H A D | memory-hotplug.rst | 5 This document describes generic Linux support for memory hot(un)plug with 14 memory available to a machine at runtime. In the simplest case, it consists of 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 26 example is replacing failing memory modules. 28 - Reducing energy consumption either by physically unplugging memory modules or 29 by logically unplugging (parts of) memory modules from Linux. 31 Further, the basic memory hot(un)plug infrastructure in Linux is nowadays also 32 used to expose persistent memory, othe [all...] |
H A D | numaperf.rst | 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:: 30 A "memory initiato [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 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 fro [all...] |
/linux/Documentation/arch/arm64/ |
H A D | kdump.rst | 2 crashkernel memory reservation on arm64 9 reserved memory is needed to pre-load the kdump kernel and boot such 12 That reserved memory for kdump is adapted to be able to minimally 19 Through the kernel parameters below, memory can be reserved accordingly 21 large chunk of memomy can be found. The low memory reservation needs to 22 be considered if the crashkernel is reserved from the high memory area. 28 Low memory and high memory 31 For kdump reservations, low memory is the memory are [all...] |
/linux/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/ |
H A D | mem.c | 22 #define nvkm_mem(p) container_of((p), struct nvkm_mem, memory) 25 #include <core/memory.h> 31 struct nvkm_memory memory; member 43 nvkm_mem_target(struct nvkm_memory *memory) in nvkm_mem_target() argument 45 return nvkm_mem(memory)->target; in nvkm_mem_target() 49 nvkm_mem_page(struct nvkm_memory *memory) in nvkm_mem_page() argument 55 nvkm_mem_addr(struct nvkm_memory *memory) in nvkm_mem_addr() argument 57 struct nvkm_mem *mem = nvkm_mem(memory); in nvkm_mem_addr() 64 nvkm_mem_size(struct nvkm_memory *memory) in nvkm_mem_size() argument 66 return nvkm_mem(memory) in nvkm_mem_size() 70 nvkm_mem_map_dma(struct nvkm_memory * memory,u64 offset,struct nvkm_vmm * vmm,struct nvkm_vma * vma,void * argv,u32 argc) nvkm_mem_map_dma() argument 83 nvkm_mem_dtor(struct nvkm_memory * memory) nvkm_mem_dtor() argument 110 nvkm_mem_map_sgl(struct nvkm_memory * memory,u64 offset,struct nvkm_vmm * vmm,struct nvkm_vma * vma,void * argv,u32 argc) nvkm_mem_map_sgl() argument 133 nvkm_mem_map_host(struct nvkm_memory * memory,void ** pmap) nvkm_mem_map_host() argument 227 struct nvkm_memory *memory = NULL; nvkm_mem_new_type() local [all...] |
H A D | umem.c | 26 #include <core/memory.h> 38 struct nvkm_memory *memory = NULL; in nvkm_umem_search() local 48 memory = nvkm_memory_ref(umem->memory); in nvkm_umem_search() 56 memory = nvkm_memory_ref(umem->memory); in nvkm_umem_search() 59 return memory ? memory : ERR_PTR(-ENOENT); in nvkm_umem_search() 98 int ret = nvkm_mem_map_host(umem->memory, &umem->map); in nvkm_umem_map() 103 *length = nvkm_memory_size(umem->memory); in nvkm_umem_map() [all...] |
/linux/Documentation/ABI/testing/ |
H A 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 is a 17 legacy interface used to indicated whether a memory block is 19 "1" if and only if the kernel supports memory offlining. 20 Users: hotplug memory remove tools 24 What: /sys/devices/system/memory/memory [all...] |
H A D | sysfs-edac-memory-repair | 7 pertains to the memory media repair features control, such as 8 PPR (Post Package Repair), memory sparing etc, where <dev-name> 10 device driver for the memory repair features. 12 Post Package Repair is a maintenance operation requests the memory 13 device to perform a repair operation on its media. It is a memory 14 self-healing feature that fixes a failing memory location by 16 CXL memory device with DRAM components that support PPR features may 28 decoders have been configured), memory devices (e.g. CXL) 30 physical address map. As such, the memory to repair must be 41 memory sparin [all...] |
/linux/Documentation/admin-guide/cgroup-v1/ |
H A D | memory.rst | 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 controlle [all...] |
/linux/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/ |
H A D | nv50.c | 27 #include <core/memory.h> 44 #define nv50_instobj(p) container_of((p), struct nv50_instobj, base.memory) 57 nv50_instobj_wr32_slow(struct nvkm_memory *memory, u64 offset, u32 data) in nv50_instobj_wr32_slow() argument 59 struct nv50_instobj *iobj = nv50_instobj(memory); in nv50_instobj_wr32_slow() 76 nv50_instobj_rd32_slow(struct nvkm_memory *memory, u64 offset) in nv50_instobj_rd32_slow() argument 78 struct nv50_instobj *iobj = nv50_instobj(memory); in nv50_instobj_rd32_slow() 103 nv50_instobj_wr32(struct nvkm_memory *memory, u64 offset, u32 data) in nv50_instobj_wr32() argument 105 iowrite32_native(data, nv50_instobj(memory)->map + offset); in nv50_instobj_wr32() 109 nv50_instobj_rd32(struct nvkm_memory *memory, u64 offset) in nv50_instobj_rd32() argument 111 return ioread32_native(nv50_instobj(memory) in nv50_instobj_rd32() 125 struct nvkm_memory *memory = &iobj->base.memory; nv50_instobj_kmap() local 184 nv50_instobj_map(struct nvkm_memory * memory,u64 offset,struct nvkm_vmm * vmm,struct nvkm_vma * vma,void * argv,u32 argc) nv50_instobj_map() argument 192 nv50_instobj_release(struct nvkm_memory * memory) nv50_instobj_release() argument 217 nv50_instobj_acquire(struct nvkm_memory * memory) nv50_instobj_acquire() argument 266 nv50_instobj_boot(struct nvkm_memory * memory,struct nvkm_vmm * vmm) nv50_instobj_boot() argument 286 nv50_instobj_size(struct nvkm_memory * memory) nv50_instobj_size() argument 292 nv50_instobj_addr(struct nvkm_memory * memory) nv50_instobj_addr() argument 298 nv50_instobj_bar2(struct nvkm_memory * memory) nv50_instobj_bar2() argument 311 nv50_instobj_target(struct nvkm_memory * memory) nv50_instobj_target() argument 317 nv50_instobj_dtor(struct nvkm_memory * memory) nv50_instobj_dtor() argument 358 nv50_instobj_wrap(struct nvkm_instmem * base,struct nvkm_memory * memory,struct nvkm_memory ** pmemory) nv50_instobj_wrap() argument [all...] |
H A D | gk20a.c | 24 * GK20A does not have dedicated video memory, and to accurately represent this 26 * implementation must be done directly on top of system memory, while 30 * 1) If an IOMMU unit has been probed, the IOMMU API is used to make memory 33 * contiguous memory. 46 #include <core/memory.h> 59 #define gk20a_instobj(p) container_of((p), struct gk20a_instobj, base.memory) 116 gk20a_instobj_target(struct nvkm_memory *memory) in gk20a_instobj_target() argument 122 gk20a_instobj_page(struct nvkm_memory *memory) in gk20a_instobj_page() argument 128 gk20a_instobj_addr(struct nvkm_memory *memory) in gk20a_instobj_addr() argument 130 return (u64)gk20a_instobj(memory) in gk20a_instobj_addr() 134 gk20a_instobj_size(struct nvkm_memory * memory) gk20a_instobj_size() argument 174 gk20a_instobj_acquire_dma(struct nvkm_memory * memory) gk20a_instobj_acquire_dma() argument 186 gk20a_instobj_acquire_iommu(struct nvkm_memory * memory) gk20a_instobj_acquire_iommu() argument 229 gk20a_instobj_release_dma(struct nvkm_memory * memory) gk20a_instobj_release_dma() argument 241 gk20a_instobj_release_iommu(struct nvkm_memory * memory) gk20a_instobj_release_iommu() argument 265 gk20a_instobj_rd32(struct nvkm_memory * memory,u64 offset) gk20a_instobj_rd32() argument 273 gk20a_instobj_wr32(struct nvkm_memory * memory,u64 offset,u32 data) gk20a_instobj_wr32() argument 281 gk20a_instobj_map(struct nvkm_memory * memory,u64 offset,struct nvkm_vmm * vmm,struct nvkm_vma * vma,void * argv,u32 argc) gk20a_instobj_map() argument 295 gk20a_instobj_dtor_dma(struct nvkm_memory * memory) gk20a_instobj_dtor_dma() argument 312 gk20a_instobj_dtor_iommu(struct nvkm_memory * memory) gk20a_instobj_dtor_iommu() argument [all...] |
/linux/Documentation/mm/ |
H A D | memory-model.rst | 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 23 Regardless of the selected memory model, there exists one-to-one 27 Each memory model defines :c:func:`pfn_to_page` and :c:func:`page_to_pfn` 34 The simplest memory mode [all...] |
H A D | hmm.rst | 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 18 related to using device specific memory allocators. In the second section, I 22 fifth section deals with how device memory is represented inside the kernel. 28 Problems of using a device specific memory allocator 31 Devices with a large amount of on board memory (several gigabytes) like GPUs 32 have historically managed their memory through dedicated driver specific APIs. 33 This creates a disconnect between memory allocate [all...] |
H A D | numa.rst | 12 or more CPUs, local memory, and/or IO buses. For brevity and to 26 Coherent NUMA or ccNUMA systems. With ccNUMA systems, all memory is visible 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 32 cell containing the target memory. For example, access to memory by CPUs 34 bandwidths than accesses to memory on other, remote cells. NUMA platforms 39 memory bandwidth. However, to achieve scalable memory bandwidth, system and 40 application software must arrange for a large majority of the memory reference [all...] |
/linux/drivers/staging/octeon/ |
H A D | ethernet-mem.c | 49 char *memory; in cvm_oct_free_hw_skbuff() local 52 memory = cvmx_fpa_alloc(pool); in cvm_oct_free_hw_skbuff() 53 if (memory) { in cvm_oct_free_hw_skbuff() 55 *(struct sk_buff **)(memory - sizeof(void *)); in cvm_oct_free_hw_skbuff() 59 } while (memory); in cvm_oct_free_hw_skbuff() 70 * cvm_oct_fill_hw_memory - fill a hardware pool with memory. 79 char *memory; in cvm_oct_fill_hw_memory() local 85 * FPA memory must be 128 byte aligned. Since we are in cvm_oct_fill_hw_memory() 87 * can feed it to kfree when the memory is returned to in cvm_oct_fill_hw_memory() 94 memory in cvm_oct_fill_hw_memory() 116 char *memory; cvm_oct_free_hw_memory() local [all...] |
/linux/Documentation/edac/ |
H A D | memory_repair.rst | 20 Some memory devices support repair operations to address issues in their 21 memory media. Post Package Repair (PPR) and memory sparing are examples of 27 Post Package Repair is a maintenance operation which requests the memory 28 device to perform repair operation on its media. It is a memory self-healing 29 feature that fixes a failing memory location by replacing it with a spare row 32 For example, a CXL memory device with DRAM components that support PPR 42 The data may not be retained and memory requests may not be correctly 46 For example, for CXL memory devices, see CXL spec rev 3.1 [1]_ sections 53 Memory sparing is a repair function that replaces a portion of memory wit [all...] |
/linux/fs/btrfs/tests/ |
H A D | extent-io-tests.c | 670 static void dump_eb_and_memory_contents(struct extent_buffer *eb, void *memory, in dump_eb_and_memory_contents() argument 677 if (memcmp(addr, memory + i, 1) != 0) { in dump_eb_and_memory_contents() 679 test_err("eb and memory diffs at byte %u, eb has 0x%02x memory has 0x%02x", in dump_eb_and_memory_contents() 680 i, *(u8 *)addr, *(u8 *)(memory + i)); in dump_eb_and_memory_contents() 686 static int verify_eb_and_memory(struct extent_buffer *eb, void *memory, in verify_eb_and_memory() argument 692 if (memcmp(memory + (i << PAGE_SHIFT), eb_addr, PAGE_SIZE) != 0) { in verify_eb_and_memory() 693 dump_eb_and_memory_contents(eb, memory, test_name); in verify_eb_and_memory() 701 * Init both memory and extent buffer contents to the same randomly generated 704 static void init_eb_and_memory(struct extent_buffer *eb, void *memory) in init_eb_and_memory() argument 714 void *memory = NULL; test_eb_mem_ops() local [all...] |
/linux/Documentation/userspace-api/media/v4l/ |
H A D | dev-mem2mem.rst | 9 A V4L2 memory-to-memory device can compress, decompress, transform, or 10 otherwise convert video data from one format into another format, in memory. 11 Such memory-to-memory devices set the ``V4L2_CAP_VIDEO_M2M`` or 12 ``V4L2_CAP_VIDEO_M2M_MPLANE`` capability. Examples of memory-to-memory 16 A memory-to-memory video node acts just like a normal video node, but it 17 supports both output (sending frames from memory t [all...] |
/linux/Documentation/arch/powerpc/ |
H A D | firmware-assisted-dump.rst | 14 - Fadump uses the same firmware interfaces and memory reservation model 16 - Unlike phyp dump, FADump exports the memory dump through /proc/vmcore 21 - Unlike phyp dump, FADump allows user to release all the memory reserved 35 - Once the dump is copied out, the memory that held the dump 44 - The first kernel registers the sections of memory with the 46 These registered sections of memory are reserved by the first 50 low memory regions (boot memory) from source to destination area. 54 The term 'boot memory' means size of the low memory chun [all...] |
/linux/Documentation/core-api/ |
H A D | memory-hotplug.rst | 15 There are six types of notification defined in ``include/linux/memory.h``: 18 Generated before new memory becomes available in order to be able to 19 prepare subsystems to handle memory. The page allocator is still unable 20 to allocate from the new memory. 26 Generated when memory has successfully brought online. The callback may 27 allocate pages from the new memory. 30 Generated to begin the process of offlining memory. Allocations are no 31 longer possible from the memory but some of the memory to be offlined 32 is still in use. The callback can be used to free memory know [all...] |
/linux/arch/arm64/boot/dts/ti/ |
H A D | k3-am68-sk-som.dtsi | 12 memory@80000000 { 13 device_type = "memory"; 20 reserved_memory: reserved-memory { 30 mcu_r5fss0_core0_dma_memory_region: r5f-dma-memory@a0000000 { 36 mcu_r5fss0_core0_memory_region: r5f-memory@a0100000 { 42 mcu_r5fss0_core1_dma_memory_region: r5f-dma-memory@a1000000 { 48 mcu_r5fss0_core1_memory_region: r5f-memory@a1100000 { 54 main_r5fss0_core0_dma_memory_region: r5f-dma-memory@a2000000 { 60 main_r5fss0_core0_memory_region: r5f-memory@a2100000 { 66 main_r5fss0_core1_dma_memory_region: r5f-dma-memory [all...] |
/linux/Documentation/driver-api/cxl/platform/ |
H A D | bios-and-efi.rst | 19 * BIOS/EFI create the system memory map (EFI Memory Map, E820, etc) 24 static memory map configuration. More detail on these tables can be found 29 on physical memory region size and alignment, memory holes, HDM interleave, 39 When this is enabled, this bit tells linux to defer management of a memory 40 region to a driver (in this case, the CXL driver). Otherwise, the memory is 41 treated as "normal memory", and is exposed to the page allocator during 78 As of Linux v6.14, the hotplug memory system requires memory regions to be 79 uniform in size and alignment. While the CXL specification allows for memory [all...] |
/linux/tools/testing/memblock/tests/ |
H A D | basic_api.c | 17 ASSERT_NE(memblock.memory.regions, NULL); in memblock_initialization_check() 18 ASSERT_EQ(memblock.memory.cnt, 0); in memblock_initialization_check() 19 ASSERT_EQ(memblock.memory.max, EXPECTED_MEMBLOCK_REGIONS); in memblock_initialization_check() 20 ASSERT_EQ(strcmp(memblock.memory.name, "memory"), 0); in memblock_initialization_check() 24 ASSERT_EQ(memblock.memory.max, EXPECTED_MEMBLOCK_REGIONS); in memblock_initialization_check() 36 * A simple test that adds a memory block of a specified base address 37 * and size to the collection of available memory regions (memblock.memory). 38 * Expect to create a new entry. The region counter and total memory ge [all...] |