/Linux-v4.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 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 68 grep -q offline $SYSFS/devices/system/memory/memory$1/state [all …]
|
/Linux-v4.19/drivers/gpu/drm/nouveau/nvkm/core/ |
D | memory.c | 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() 101 struct nvkm_memory *memory) in nvkm_memory_ctor() argument 103 memory->func = func; in nvkm_memory_ctor() 104 kref_init(&memory->kref); in nvkm_memory_ctor() 110 struct nvkm_memory *memory = container_of(kref, typeof(*memory), kref); in nvkm_memory_del() local 111 if (!WARN_ON(!memory->func)) { in nvkm_memory_del() [all …]
|
/Linux-v4.19/Documentation/ |
D | memory-hotplug.txt | 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. 15 1.1 purpose of memory hotplug 16 1.2. Phases of memory hotplug 19 3. sysfs files for memory hotplug 20 4. Physical memory hot-add phase 22 4.2 Notify memory hot-add event by hand 24 5.1. State of memory 25 5.2. How to online memory 26 6. Logical memory remove [all …]
|
D | bus-virt-phys-mapping.txt | 2 How to access I/O mapped memory from within device drivers 22 (because all bus master devices see the physical memory mappings directly). 25 at memory addresses, and in this case we actually want the third, the 28 Essentially, the three ways of addressing memory are (this is "real memory", 32 0 is what the CPU sees when it drives zeroes on the memory bus. 38 - bus address. This is the address of memory as seen by OTHER devices, 40 addresses, with each device seeing memory in some device-specific way, but 43 external hardware sees the memory the same way. 47 because the memory and the devices share the same address space, and that is 51 CPU sees a memory map something like this (this is from memory):: [all …]
|
/Linux-v4.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 …]
|
/Linux-v4.19/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/ |
D | mem.c | 22 #define nvkm_mem(p) container_of((p), struct nvkm_mem, memory) 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)->pages << PAGE_SHIFT; in nvkm_mem_size() 70 nvkm_mem_map_dma(struct nvkm_memory *memory, u64 offset, struct nvkm_vmm *vmm, in nvkm_mem_map_dma() argument [all …]
|
D | umem.c | 38 struct nvkm_memory *memory = NULL; in nvkm_umem_search() local 48 memory = nvkm_memory_ref(umem->memory); in nvkm_umem_search() 57 memory = nvkm_memory_ref(umem->memory); in nvkm_umem_search() 60 return memory ? memory : ERR_PTR(-ENOENT); in nvkm_umem_search() 99 int ret = nvkm_mem_map_host(umem->memory, &umem->map); in nvkm_umem_map() 104 *length = nvkm_memory_size(umem->memory); in nvkm_umem_map() 110 int ret = mmu->func->mem.umap(mmu, umem->memory, argv, argc, in nvkm_umem_map() 131 nvkm_memory_unref(&umem->memory); in nvkm_umem_dtor() 180 &umem->memory); in nvkm_umem_new() 188 args->v0.page = nvkm_memory_page(umem->memory); in nvkm_umem_new() [all …]
|
/Linux-v4.19/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/ |
D | nv50.c | 43 #define nv50_instobj(p) container_of((p), struct nv50_instobj, base.memory) 56 nv50_instobj_wr32_slow(struct nvkm_memory *memory, u64 offset, u32 data) in nv50_instobj_wr32_slow() argument 58 struct nv50_instobj *iobj = nv50_instobj(memory); in nv50_instobj_wr32_slow() 75 nv50_instobj_rd32_slow(struct nvkm_memory *memory, u64 offset) in nv50_instobj_rd32_slow() argument 77 struct nv50_instobj *iobj = nv50_instobj(memory); in nv50_instobj_rd32_slow() 102 nv50_instobj_wr32(struct nvkm_memory *memory, u64 offset, u32 data) in nv50_instobj_wr32() argument 104 iowrite32_native(data, nv50_instobj(memory)->map + offset); in nv50_instobj_wr32() 108 nv50_instobj_rd32(struct nvkm_memory *memory, u64 offset) in nv50_instobj_rd32() argument 110 return ioread32_native(nv50_instobj(memory)->map + offset); in nv50_instobj_rd32() 124 struct nvkm_memory *memory = &iobj->base.memory; in nv50_instobj_kmap() local [all …]
|
D | base.c | 34 struct nvkm_memory *memory = &iobj->memory; in nvkm_instobj_load() local 35 const u64 size = nvkm_memory_size(memory); in nvkm_instobj_load() 39 if (!(map = nvkm_kmap(memory))) { in nvkm_instobj_load() 41 nvkm_wo32(memory, i, iobj->suspend[i / 4]); in nvkm_instobj_load() 45 nvkm_done(memory); in nvkm_instobj_load() 54 struct nvkm_memory *memory = &iobj->memory; in nvkm_instobj_save() local 55 const u64 size = nvkm_memory_size(memory); in nvkm_instobj_save() 63 if (!(map = nvkm_kmap(memory))) { in nvkm_instobj_save() 65 iobj->suspend[i / 4] = nvkm_ro32(memory, i); in nvkm_instobj_save() 69 nvkm_done(memory); in nvkm_instobj_save() [all …]
|
D | gk20a.c | 52 struct nvkm_memory memory; member 59 #define gk20a_instobj(p) container_of((p), struct gk20a_instobj, 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)->mn->offset << 12; in gk20a_instobj_addr() 134 gk20a_instobj_size(struct nvkm_memory *memory) in gk20a_instobj_size() argument 136 return (u64)gk20a_instobj(memory)->mn->length << 12; in gk20a_instobj_size() 151 imem->vaddr_use -= nvkm_memory_size(&obj->base.memory); in gk20a_instobj_iommu_recycle_vaddr() 174 gk20a_instobj_acquire_dma(struct nvkm_memory *memory) in gk20a_instobj_acquire_dma() argument [all …]
|
D | nv04.c | 37 #define nv04_instobj(p) container_of((p), struct nv04_instobj, base.memory) 46 nv04_instobj_wr32(struct nvkm_memory *memory, u64 offset, u32 data) in nv04_instobj_wr32() argument 48 struct nv04_instobj *iobj = nv04_instobj(memory); in nv04_instobj_wr32() 54 nv04_instobj_rd32(struct nvkm_memory *memory, u64 offset) in nv04_instobj_rd32() argument 56 struct nv04_instobj *iobj = nv04_instobj(memory); in nv04_instobj_rd32() 68 nv04_instobj_release(struct nvkm_memory *memory) in nv04_instobj_release() argument 73 nv04_instobj_acquire(struct nvkm_memory *memory) in nv04_instobj_acquire() argument 75 struct nv04_instobj *iobj = nv04_instobj(memory); in nv04_instobj_acquire() 81 nv04_instobj_size(struct nvkm_memory *memory) in nv04_instobj_size() argument 83 return nv04_instobj(memory)->node->length; in nv04_instobj_size() [all …]
|
D | nv40.c | 39 #define nv40_instobj(p) container_of((p), struct nv40_instobj, base.memory) 48 nv40_instobj_wr32(struct nvkm_memory *memory, u64 offset, u32 data) in nv40_instobj_wr32() argument 50 struct nv40_instobj *iobj = nv40_instobj(memory); in nv40_instobj_wr32() 55 nv40_instobj_rd32(struct nvkm_memory *memory, u64 offset) in nv40_instobj_rd32() argument 57 struct nv40_instobj *iobj = nv40_instobj(memory); in nv40_instobj_rd32() 68 nv40_instobj_release(struct nvkm_memory *memory) in nv40_instobj_release() argument 74 nv40_instobj_acquire(struct nvkm_memory *memory) in nv40_instobj_acquire() argument 76 struct nv40_instobj *iobj = nv40_instobj(memory); in nv40_instobj_acquire() 81 nv40_instobj_size(struct nvkm_memory *memory) in nv40_instobj_size() argument 83 return nv40_instobj(memory)->node->length; in nv40_instobj_size() [all …]
|
/Linux-v4.19/Documentation/cgroup-v1/ |
D | memory.txt | 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 27 amount of memory. 28 b. Create a cgroup with a limited amount of memory; this can be used 30 c. Virtualization solutions can control the amount of memory they want [all …]
|
/Linux-v4.19/Documentation/devicetree/bindings/reserved-memory/ |
D | reserved-memory.txt | 1 *** Reserved memory regions *** 3 Reserved memory is specified as a node under the /reserved-memory node. 4 The operating system shall exclude reserved memory from normal usage 6 normal use) memory regions. Such memory regions are usually designed for 9 Parameters for each memory region can be encoded into the device tree 12 /reserved-memory node 19 /reserved-memory/ child nodes 21 Each child of the reserved-memory node specifies one or more regions of 22 reserved memory. Each child node may either use a 'reg' property to 23 specify a specific range of reserved memory, or a 'size' property with [all …]
|
/Linux-v4.19/drivers/staging/octeon/ |
D | ethernet-mem.c | 52 char *memory; in cvm_oct_free_hw_skbuff() local 55 memory = cvmx_fpa_alloc(pool); in cvm_oct_free_hw_skbuff() 56 if (memory) { in cvm_oct_free_hw_skbuff() 58 *(struct sk_buff **)(memory - sizeof(void *)); in cvm_oct_free_hw_skbuff() 62 } while (memory); in cvm_oct_free_hw_skbuff() 82 char *memory; in cvm_oct_fill_hw_memory() local 97 memory = kmalloc(size + 256, GFP_ATOMIC); in cvm_oct_fill_hw_memory() 98 if (unlikely(!memory)) { in cvm_oct_fill_hw_memory() 103 fpa = (char *)(((unsigned long)memory + 256) & ~0x7fUL); in cvm_oct_fill_hw_memory() 104 *((char **)fpa - 1) = memory; in cvm_oct_fill_hw_memory() [all …]
|
/Linux-v4.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 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 37 With virtual memory, each and every memory access uses a virtual [all …]
|
/Linux-v4.19/Documentation/vm/ |
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 …]
|
D | hmm.rst | 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 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. 35 This creates a disconnect between memory allocated and managed by a device 36 driver and regular application memory (private anonymous, shared memory, or [all …]
|
/Linux-v4.19/drivers/gpu/drm/nouveau/nvkm/engine/fifo/ |
D | gv100.c | 33 struct nvkm_memory *memory, u32 offset) in gv100_fifo_runlist_chan() argument 39 nvkm_wo32(memory, offset + 0x0, lower_32_bits(user)); in gv100_fifo_runlist_chan() 40 nvkm_wo32(memory, offset + 0x4, upper_32_bits(user)); in gv100_fifo_runlist_chan() 41 nvkm_wo32(memory, offset + 0x8, lower_32_bits(inst) | chan->base.chid); in gv100_fifo_runlist_chan() 42 nvkm_wo32(memory, offset + 0xc, upper_32_bits(inst)); in gv100_fifo_runlist_chan() 47 struct nvkm_memory *memory, u32 offset) in gv100_fifo_runlist_cgrp() argument 49 nvkm_wo32(memory, offset + 0x0, (128 << 24) | (3 << 16) | 0x00000001); in gv100_fifo_runlist_cgrp() 50 nvkm_wo32(memory, offset + 0x4, cgrp->chan_nr); in gv100_fifo_runlist_cgrp() 51 nvkm_wo32(memory, offset + 0x8, cgrp->id); in gv100_fifo_runlist_cgrp() 52 nvkm_wo32(memory, offset + 0xc, 0x00000000); in gv100_fifo_runlist_cgrp()
|
/Linux-v4.19/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ |
D | ram.c | 24 #define nvkm_vram(p) container_of((p), struct nvkm_vram, memory) 31 struct nvkm_memory memory; member 38 nvkm_vram_map(struct nvkm_memory *memory, u64 offset, struct nvkm_vmm *vmm, in nvkm_vram_map() argument 41 struct nvkm_vram *vram = nvkm_vram(memory); in nvkm_vram_map() 43 .memory = &vram->memory, in nvkm_vram_map() 52 nvkm_vram_size(struct nvkm_memory *memory) in nvkm_vram_size() argument 54 return (u64)nvkm_mm_size(nvkm_vram(memory)->mn) << NVKM_RAM_MM_SHIFT; in nvkm_vram_size() 58 nvkm_vram_addr(struct nvkm_memory *memory) in nvkm_vram_addr() argument 60 struct nvkm_vram *vram = nvkm_vram(memory); in nvkm_vram_addr() 67 nvkm_vram_page(struct nvkm_memory *memory) in nvkm_vram_page() argument [all …]
|
/Linux-v4.19/Documentation/devicetree/bindings/memory-controllers/fsl/ |
D | ddr.txt | 1 Freescale DDR memory controller 5 - compatible : Should include "fsl,chip-memory-controller" where 7 "fsl,qoriq-memory-controller". 15 memory-controller@2000 { 16 compatible = "fsl,bsc9132-memory-controller"; 24 ddr1: memory-controller@8000 { 25 compatible = "fsl,qoriq-memory-controller-v4.7", 26 "fsl,qoriq-memory-controller";
|
/Linux-v4.19/Documentation/powerpc/ |
D | firmware-assisted-dump.txt | 13 - Fadump uses the same firmware interfaces and memory reservation model 15 - Unlike phyp dump, fadump exports the memory dump through /proc/vmcore 20 - Unlike phyp dump, fadump allows user to release all the memory reserved 34 -- Once the dump is copied out, the memory that held the dump 43 -- The first kernel registers the sections of memory with the 45 These registered sections of memory are reserved by the first 49 the low memory (boot memory of size larger of 5% of system RAM 53 NOTE: The term 'boot memory' means size of the low memory chunk 55 booted with restricted memory. By default, the boot memory 57 Alternatively, user can also specify boot memory size [all …]
|
/Linux-v4.19/arch/arm64/boot/dts/renesas/ |
D | r8a7795-es1-h3ulcb.dts | 17 memory@48000000 { 18 device_type = "memory"; 23 memory@500000000 { 24 device_type = "memory"; 28 memory@600000000 { 29 device_type = "memory"; 33 memory@700000000 { 34 device_type = "memory";
|
D | r8a7795-h3ulcb.dts | 17 memory@48000000 { 18 device_type = "memory"; 23 memory@500000000 { 24 device_type = "memory"; 28 memory@600000000 { 29 device_type = "memory"; 33 memory@700000000 { 34 device_type = "memory";
|
/Linux-v4.19/Documentation/devicetree/bindings/pmem/ |
D | pmem-region.txt | 1 Device-tree bindings for persistent memory regions 4 Persistent memory refers to a class of memory devices that are: 6 a) Usable as main system memory (i.e. cacheable), and 9 Given b) it is best to think of persistent memory as a kind of memory mapped 11 persistent regions separately to the normal memory pool. To aid with that this 13 memory regions exist inside the physical address space. 24 range should be mappable as normal system memory would be 36 backed by non-persistent memory. This lets the OS know that it 41 is backed by non-volatile memory. 48 * 0x5000 to 0x5fff that is backed by non-volatile memory. [all …]
|