/linux/tools/testing/memblock/tests/ |
H A D | basic_api.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 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 get 45 rgn = &memblock.memory.regions[0]; in memblock_add_simple_check() [all …]
|
H A D | alloc_api.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 21 * A simple test that tries to allocate a small memory region. 22 * Expect to allocate an aligned region near the end of the available memory. 34 expected_start = memblock_end_of_DRAM() - SMP_CACHE_BYTES; in alloc_top_down_simple_check() 41 ASSERT_EQ(rgn->size, size); in alloc_top_down_simple_check() 42 ASSERT_EQ(rgn->base, expected_start); in alloc_top_down_simple_check() 53 * A test that tries to allocate memory next to a reserved region that starts at 58 * | +--------+ +--------| 60 * +------------+--------+---------+--------+ 65 * The allocation direction is top-down and region arrays are sorted from lower [all …]
|
H A D | alloc_nid_api.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 51 * A simple test that tries to allocate a memory region within min_addr and 55 * | + +-----------+ | 57 * +----+-------+-----------+------+ 62 * Expect to allocate a region that ends at max_addr. 82 rgn_end = rgn->base + rgn->size; in alloc_nid_top_down_simple_check() 87 ASSERT_EQ(rgn->size, size); in alloc_nid_top_down_simple_check() 88 ASSERT_EQ(rgn->base, max_addr - size); in alloc_nid_top_down_simple_check() 100 * A simple test that tries to allocate a memory region within min_addr and 104 * | + +---------+ + | [all …]
|
H A D | alloc_exact_nid_api.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 23 * A test that tries to allocate a memory region in a specific NUMA node that 24 * has enough memory to allocate a region of the requested size. 25 * Expect to allocate an aligned region at the end of the requested node. 31 struct memblock_region *req_node = &memblock.memory.regions[nid_req]; in alloc_exact_nid_top_down_numa_simple_check() 40 ASSERT_LE(SZ_4, req_node->size); in alloc_exact_nid_top_down_numa_simple_check() 41 size = req_node->size / SZ_4; in alloc_exact_nid_top_down_numa_simple_check() 52 ASSERT_EQ(new_rgn->size, size); in alloc_exact_nid_top_down_numa_simple_check() 53 ASSERT_EQ(new_rgn->base, region_end(req_node) - size); in alloc_exact_nid_top_down_numa_simple_check() 54 ASSERT_LE(req_node->base, new_rgn->base); in alloc_exact_nid_top_down_numa_simple_check() [all …]
|
H A D | alloc_helpers_api.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 5 * A simple test that tries to allocate a memory region above a specified, 9 * | +-----------+ | 11 * +----------+-----------+---------+ 16 * Expect to allocate a cleared region at the minimal memory address. 28 min_addr = memblock_end_of_DRAM() - SMP_CACHE_BYTES; in alloc_from_simple_generic_check() 35 ASSERT_EQ(rgn->size, size); in alloc_from_simple_generic_check() 36 ASSERT_EQ(rgn->base, min_addr); in alloc_from_simple_generic_check() 47 * A test that tries to allocate a memory region above a certain address. 51 * | + +---------+ | [all …]
|
/linux/mm/ |
H A D | memblock.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Procedures for maintaining information about logical memory blocks. 45 * Memblock is a method of managing memory regions during the early 46 * boot period when the usual kernel memory allocators are not up and 49 * Memblock views the system memory as collections of contiguous 52 * * ``memory`` - describes the physical memory available to the 53 * kernel; this may differ from the actual physical memory installed 54 * in the system, for instance when the memory is restricted with 56 * * ``reserved`` - describes the regions that were allocated 57 * * ``physmem`` - describes the actual physical memory available during [all …]
|
H A D | nommu.c | 1 // SPDX-License-Identifier: GPL-2.0-only 6 * have any form of memory management unit (thus no virtual memory). 8 * See Documentation/admin-guide/mm/nommu-mmap.rst 10 * Copyright (c) 2004-2008 David Howells <dhowells@redhat.com> 11 * Copyright (c) 2000-2003 David McCullough <davidm@snapgear.com> 12 * Copyright (c) 2000-2001 D Jeff Dionne <jeff@uClinux.org> 14 * Copyright (c) 2007-2010 Paul Mundt <lethal@linux-sh.org> 29 #include <linux/backing-dev.h> 60 * Return the total memory allocated for this pointer, not 87 * region. This test is intentionally done in reverse order, in kobjsize() [all …]
|
/linux/drivers/of/ |
H A D | of_reserved_mem.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * Device tree based initialization code for reserved memory. 47 return -ENOMEM; in early_init_dt_alloc_reserved_memory_arch() 63 * alloc_reserved_mem_array() - allocate memory for the reserved_mem 66 * This function is used to allocate memory for the reserved_mem 67 * array according to the total number of reserved memory regions 80 pr_err("Failed to allocate memory for reserved_mem array with err: %d", -EOVERFLOW); in alloc_reserved_mem_array() 86 pr_err("Failed to allocate memory for reserved_mem array with err: %d", -ENOMEM); in alloc_reserved_mem_array() 94 pr_err("Failed to allocate memory for reserved_mem array with err: %d", -EOVERFLOW); in alloc_reserved_mem_array() 98 memset_size = alloc_size - copy_size; in alloc_reserved_mem_array() [all …]
|
/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 34 * * Enclave file descriptor - Enclave file descriptor used with 35 * ioctl calls to set vCPUs and memory 37 * * -1 - There was a failure in the ioctl logic. [all …]
|
/linux/include/linux/ |
H A D | memblock.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 6 * Logical memory blocks. 28 * enum memblock_flags - definition of memory region attributes 30 * @MEMBLOCK_HOTPLUG: memory region indicated in the firmware-provided memory 31 * map during early boot as hot(un)pluggable system RAM (e.g., memory range 33 * commandline, try keeping this memory region hotunpluggable. Does not apply 35 * @MEMBLOCK_MIRROR: mirrored region 37 * reserved in the memory map; refer to memblock_mark_nomap() description 39 * @MEMBLOCK_DRIVER_MANAGED: memory region that is always detected and added 40 * via a driver, and never indicated in the firmware-provided memory map as [all …]
|
H A D | pruss_driver.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * PRU-ICSS sub-system specific definitions 5 * Copyright (C) 2014-2020 Texas Instruments Incorporated - http://www.ti.com/ 6 * Suman Anna <s-anna@ti.com> 18 * enum pruss_gp_mux_sel - PRUSS GPI/O Mux modes for the 23 * values are interchanged. Also, this bit-field does not exist on 36 * enum pruss_gpi_mode - PRUSS GPI configuration modes, used 48 * enum pru_type - PRU core type identifier 50 * @PRU_TYPE_PRU: Programmable Real-time Unit 51 * @PRU_TYPE_RTU: Auxiliary Programmable Real-Time Unit [all …]
|
/linux/arch/x86/boot/compressed/ |
H A D | kaslr.c | 1 // SPDX-License-Identifier: GPL-2.0 8 * handles walking the physical memory maps (and tracking memory regions 9 * to avoid) in order to select a physical memory location that can 37 /* Simplified build-specific string for starting entropy. */ 49 hash = (hash << ((sizeof(hash) * 8) - 7)) | (hash >> 7); in rotate_xor() 78 * Store memory limit: MAXMEM on 64-bit and KERNEL_IMAGE_SIZE on 32-bit. 83 /* Number of immovable memory regions */ 92 MEM_AVOID_MEMMAP_END = MEM_AVOID_MEMMAP_BEGIN + MAX_MEMMAP_REGIONS - 1, 101 if (one->start + one->size <= two->start) in mem_overlaps() 104 if (one->start >= two->start + two->size) in mem_overlaps() [all …]
|
/linux/drivers/acpi/ |
H A D | nvs.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * nvs.c - Routines for saving and restoring ACPI NVS memory region 5 * Copyright (C) 2008-2011 Rafael J. Wysocki <rjw@sisk.pl>, Novell Inc. 40 struct nvs_region *region; in acpi_nvs_register() local 42 region = kmalloc(sizeof(*region), GFP_KERNEL); in acpi_nvs_register() 43 if (!region) in acpi_nvs_register() 44 return -ENOMEM; in acpi_nvs_register() 45 region->phys_start = start; in acpi_nvs_register() 46 region->size = size; in acpi_nvs_register() 47 list_add_tail(®ion->node, &nvs_region_list); in acpi_nvs_register() [all …]
|
/linux/tools/testing/selftests/kvm/lib/ |
H A D | kvm_util.c | 1 // SPDX-License-Identifier: GPL-2.0-only 44 * flags - The flags to pass when opening KVM_DEV_PATH. 86 * 16 bytes to hold a 64-bit value (1 byte per char), 1 byte for the in get_module_param_integer() 96 TEST_ASSERT(value[r - 1] == '\n', in get_module_param_integer() 97 "Expected trailing newline, got char '%c'", value[r - 1]); in get_module_param_integer() 101 * trailing non-NUL characters in the string. in get_module_param_integer() 103 value[r - 1] = '\0'; in get_module_param_integer() 157 * cap - Capability 189 vm->dirty_ring_size = ring_size; in vm_enable_dirty_ring() 194 vm->kvm_fd = _open_kvm_dev_path_or_exit(O_RDWR); in vm_open() [all …]
|
/linux/drivers/net/ipa/ |
H A D | ipa_mem.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. 4 * Copyright (C) 2019-2024 Linaro Ltd. 17 * DOC: IPA Local Memory 19 * The IPA has a block of shared memory, divided into regions used for 23 * the "ipa-shared" memory range) and size found in the IPA_SHARED_MEM_SIZE 26 * Each region is optionally preceded by one or more 32-bit "canary" values. 27 * These are meant to detect out-of-range writes (if they become corrupted). 28 * A given region (such as a filter or routing table) has the same number 32 * The set of memory regions is defined in configuration data. They are [all …]
|
/linux/Documentation/PCI/endpoint/ |
H A D | pci-ntb-function.rst | 1 .. SPDX-License-Identifier: GPL-2.0 9 PCI Non-Transparent Bridges (NTB) allow two host systems to communicate 12 machine, expose memory ranges as BARs, and perform DMA. They also support 13 scratchpads, which are areas of memory within the NTB that are accessible 26 .. code-block:: text 28 +-------------+ +-------------+ 32 +------^------+ +------^------+ 35 +---------|-------------------------------------------------|---------+ 36 | +------v------+ +------v------+ | 40 | | <-----------------------------------> | | [all …]
|
/linux/Documentation/core-api/kho/ |
H A D | concepts.rst | 1 .. SPDX-License-Identifier: GPL-2.0-or-later 2 .. _kho-concepts: 8 Kexec HandOver (KHO) is a mechanism that allows Linux to preserve memory 17 that describes preserved memory regions. These regions contain either 18 serialized subsystem states, or in-memory data that shall not be touched 20 memory regions from KHO FDT. 25 ``ranges`` do not exist, hence there are no ``#...-cells`` properties. 33 To boot into kexec, we need to have a physically contiguous memory range that 34 contains no handed over memory. Kexec then places the target kernel and initrd 35 into that region. The new kernel exclusively uses this region for memory [all …]
|
/linux/drivers/gpu/drm/i915/ |
H A D | intel_region_ttm.c | 1 // SPDX-License-Identifier: MIT 19 * The code in this file deals with setting up memory managers for TTM 22 * i915 GEM regions to TTM memory types and resource managers. 26 * intel_region_ttm_device_init - Initialize a TTM device 33 struct drm_device *drm = &dev_priv->drm; in intel_region_ttm_device_init() 35 return ttm_device_init(&dev_priv->bdev, i915_ttm_driver(), in intel_region_ttm_device_init() 36 drm->dev, drm->anon_inode->i_mapping, in intel_region_ttm_device_init() 37 drm->vma_offset_manager, false, false); in intel_region_ttm_device_init() 41 * intel_region_ttm_device_fini - Finalize a TTM device 46 ttm_device_fini(&dev_priv->bdev); in intel_region_ttm_device_fini() [all …]
|
/linux/Documentation/devicetree/bindings/remoteproc/ |
H A D | ti,k3-dsp-rproc.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/remoteproc/ti,k3-dsp-rproc.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Suman Anna <s-anna@ti.com> 13 The TI K3 family of SoCs usually have one or more TI DSP Core sub-systems 14 that are used to offload some of the processor-intensive tasks or algorithms, 17 These processor sub-systems usually contain additional sub-modules like 18 L1 and/or L2 caches/SRAMs, an Interrupt Controller, an external memory 23 Each DSP Core sub-system is represented as a single DT node. Each node has a [all …]
|
/linux/Documentation/devicetree/bindings/arm/mediatek/ |
H A D | mediatek,mt7622-wed.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/arm/mediatek/mediatek,mt7622-wed.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Lorenzo Bianconi <lorenzo@kernel.org> 11 - Felix Fietkau <nbd@nbd.name> 21 - enum: 22 - mediatek,mt7622-wed 23 - mediatek,mt7981-wed 24 - mediatek,mt7986-wed [all …]
|
/linux/drivers/virt/acrn/ |
H A D | mm.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * ACRN: Memory mapping management 19 static int modify_region(struct acrn_vm *vm, struct vm_memory_region_op *region) in modify_region() argument 26 return -ENOMEM; in modify_region() 28 regions->vmid = vm->vmid; in modify_region() 29 regions->regions_num = 1; in modify_region() 30 regions->regions_gpa = virt_to_phys(region); in modify_region() 35 "Failed to set memory region for VM[%u]!\n", vm->vmid); in modify_region() 42 * acrn_mm_region_add() - Set up the EPT mapping of a memory region. 46 * @size: Size of the region. [all …]
|
/linux/Documentation/mm/damon/ |
H A D | design.rst | 1 .. SPDX-License-Identifier: GPL-2.0 13 The monitoring-related information including the monitoring request 14 specification and DAMON-based operation schemes are stored in a data structure 19 To know how user-space can do the configurations and start/stop DAMON, refer to 28 - :ref:`Operations Set <damon_operations_set>`: Implements fundamental 30 address-space and available set of software/hardware primitives, 31 - :ref:`Core <damon_core_logic>`: Implements core logics including monitoring 32 overhead/accuracy control and access-aware system operations on top of the 34 - :ref:`Modules <damon_modules>`: Implements kernel modules for various 49 monitoring are address-space dependent. [all …]
|
/linux/Documentation/ABI/testing/ |
H A D | sysfs-edac-scrub | 1 What: /sys/bus/edac/devices/<dev-name>/scrubX 4 Contact: linux-edac@vger.kernel.org 6 The sysfs EDAC bus devices /<dev-name>/scrubX subdirectory 7 belongs to an instance of memory scrub control feature, 8 where <dev-name> directory corresponds to a device/memory 9 region registered with the EDAC device driver for the 17 What: /sys/bus/edac/devices/<dev-name>/scrubX/addr 20 Contact: linux-edac@vger.kernel.org 22 (RW) The base address of the memory region to be scrubbed 23 for on-demand scrubbing. Setting address starts scrubbing. [all …]
|
/linux/samples/nitro_enclaves/ |
H A D | ne_ioctl_sample.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright 2020-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. 11 * ----- 19 * https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html#cpu-lists 26 * echo <cpu-list> > /sys/module/nitro_enclaves/parameters/ne_cpus 43 * Setup hugetlbfs huge pages. The memory needs to be from the same NUMA node as 46 * https://www.kernel.org/doc/html/latest/admin-guide/mm/hugetlbpage.html 52 * /sys/devices/system/node/node<X>/hugepages/hugepages-2048kB/nr_hugepages 53 * /sys/devices/system/node/node<X>/hugepages/hugepages-1048576kB/nr_hugepages 58 * /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages [all …]
|
/linux/Documentation/devicetree/bindings/memory-controllers/ |
H A D | st,stm32mp25-omm.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/memory-controllers/st,stm32mp25-omm.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: STM32 Octo Memory Manager (OMM) 10 - Patrice Chotard <patrice.chotard@foss.st.com> 13 The STM32 Octo Memory Manager is a low-level interface that enables an 17 - Two single/dual/quad/octal SPI interfaces 18 - Two ports for pin assignment 22 const: st,stm32mp25-omm [all …]
|