| /linux-6.15/tools/testing/memblock/tests/ |
| H A D | basic_api.c | 18 ASSERT_EQ(memblock.memory.cnt, 0); in memblock_initialization_check() 23 ASSERT_EQ(memblock.reserved.cnt, 0); in memblock_initialization_check() 27 ASSERT_EQ(memblock.bottom_up, false); in memblock_initialization_check() 45 rgn = &memblock.memory.regions[0]; in memblock_add_simple_check() 60 ASSERT_EQ(memblock.memory.cnt, 1); in memblock_add_simple_check() 78 rgn = &memblock.memory.regions[0]; in memblock_add_node_simple_check() 97 ASSERT_EQ(memblock.memory.cnt, 1); in memblock_add_node_simple_check() 145 ASSERT_EQ(memblock.memory.cnt, 2); in memblock_add_disjoint_check() 175 rgn = &memblock.memory.regions[0]; in memblock_add_overlap_top_check() 1206 ASSERT_EQ(memblock.reserved.regions[0].base + memblock.reserved.regions[0].size, in memblock_reserve_many_may_conflict_check() [all …]
|
| H A D | alloc_nid_api.c | 91 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_nid_top_down_simple_check() 144 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_nid_top_down_end_misaligned_check() 194 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_nid_exact_address_generic_check() 243 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_nid_top_down_narrow_range_check() 339 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_nid_min_reserved_generic_check() 389 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_nid_max_reserved_generic_check() 455 ASSERT_EQ(memblock.reserved.cnt, 2); in alloc_nid_top_down_reserved_with_space_check() 515 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_nid_reserved_full_merge_generic_check() 582 ASSERT_EQ(memblock.reserved.cnt, 2); in alloc_nid_top_down_reserved_no_space_check() 674 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_nid_top_down_cap_max_check() [all …]
|
| H A D | alloc_exact_nid_api.c | 56 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_exact_nid_top_down_numa_simple_check() 112 ASSERT_EQ(memblock.reserved.cnt, 2); in alloc_exact_nid_top_down_numa_part_reserved_check() 169 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_exact_nid_top_down_numa_split_range_low_check() 226 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_exact_nid_top_down_numa_no_overlap_split_check() 283 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_exact_nid_top_down_numa_no_overlap_low_check() 325 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_exact_nid_bottom_up_numa_simple_check() 383 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_exact_nid_bottom_up_numa_part_reserved_check() 440 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_exact_nid_bottom_up_numa_split_range_low_check() 497 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_exact_nid_bottom_up_numa_no_overlap_split_check() 555 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_exact_nid_bottom_up_numa_no_overlap_low_check() [all …]
|
| H A D | alloc_helpers_api.c | 38 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_from_simple_generic_check() 39 ASSERT_EQ(memblock.reserved.total_size, size); in alloc_from_simple_generic_check() 82 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_from_misaligned_generic_check() 83 ASSERT_EQ(memblock.reserved.total_size, size); in alloc_from_misaligned_generic_check() 127 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_from_top_down_high_addr_check() 128 ASSERT_EQ(memblock.reserved.total_size, size); in alloc_from_top_down_high_addr_check() 174 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_from_top_down_no_space_above_check() 210 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_from_top_down_min_addr_cap_check() 253 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_from_bottom_up_high_addr_check() 299 ASSERT_EQ(memblock.reserved.cnt, 2); in alloc_from_bottom_up_no_space_above_check() [all …]
|
| H A D | alloc_api.c | 44 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_top_down_simple_check() 105 ASSERT_EQ(memblock.reserved.cnt, 2); in alloc_top_down_disjoint_check() 147 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_top_down_before_check() 195 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_top_down_after_check() 245 ASSERT_EQ(memblock.reserved.cnt, 2); in alloc_top_down_second_fit_check() 299 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_in_between_generic_check() 435 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_limited_space_generic_check() 523 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_bottom_up_simple_check() 582 ASSERT_EQ(memblock.reserved.cnt, 2); in alloc_bottom_up_disjoint_check() 621 ASSERT_EQ(memblock.reserved.cnt, 1); in alloc_bottom_up_before_check() [all …]
|
| H A D | common.c | 41 memset(memblock.memory.regions, 0, in reset_memblock_regions() 43 memblock.memory.cnt = 0; in reset_memblock_regions() 44 memblock.memory.max = INIT_MEMBLOCK_REGIONS; in reset_memblock_regions() 45 memblock.memory.total_size = 0; in reset_memblock_regions() 47 memset(memblock.reserved.regions, 0, in reset_memblock_regions() 49 memblock.reserved.cnt = 0; in reset_memblock_regions() 51 memblock.reserved.total_size = 0; in reset_memblock_regions() 56 memblock.memory.name = "memory"; in reset_memblock_attributes() 57 memblock.reserved.name = "reserved"; in reset_memblock_attributes() 58 memblock.bottom_up = false; in reset_memblock_attributes() [all …]
|
| /linux-6.15/tools/testing/memblock/ |
| H A D | Makefile | 11 DEP_OFILES = memblock.o lib/slab.o mmzone.o slab.o cmdline.o 13 EXTR_SRC = ../../../mm/memblock.c 27 include: ../../../include/linux/memblock.h ../../include/linux/*.h \ 31 test -L linux/memblock.h || ln -s ../../../../include/linux/memblock.h linux/memblock.h 35 memblock.c: $(EXTR_SRC) 36 test -L memblock.c || ln -s $(EXTR_SRC) memblock.c 39 $(RM) $(TARGETS) $(OFILES) linux/memblock.h memblock.c asm/asm.h asm/cmpxchg.h
|
| H A D | README | 14 difficult. This test suite, usually referred as memblock simulator, is 15 an attempt at testing the memblock mechanism. It runs one monolithic test that 17 allocation functionalities of memblock. The main data structure of the boot time 22 As this project uses the actual memblock code and has to run in user space, 24 introduced memblock simulator (commit 16802e55dea9 ("memblock tests: Add 25 skeleton of the memblock simulator")) and a few preparation commits just 61 memblock 72 | |-- common.(c|h) -- helper functions for resetting memblock; 84 with memblock memory stored by test_memory struct. It is a small wrapper that 86 tests, dummy physical memory is allocated, added to memblock, and then released [all …]
|
| H A D | .gitignore | 2 memblock.c 3 linux/memblock.h
|
| /linux-6.15/mm/ |
| H A D | memblock.c | 116 struct memblock memblock __initdata_memblock = { 299 end = memblock.current_limit; in memblock_find_in_range_node() 375 memblock.reserved.max); in memblock_discard() 385 memblock.memory.max); in memblock_discard() 438 if (type == &memblock.memory) in memblock_double_array() 453 memblock.current_limit, in memblock_double_array() 1377 &memblock.memory, &memblock.reserved, in __next_mem_pfn_range_in_zone() 1404 &memblock.memory, &memblock.reserved, in __next_mem_pfn_range_in_zone() 1789 return (memblock.memory.regions[idx].base + memblock.memory.regions[idx].size); in memblock_end_of_DRAM() 2003 return memblock.current_limit; in memblock_get_current_limit() [all …]
|
| H A D | numa_memblks.c | 224 if (!memblock_overlaps_region(&memblock.memory, in numa_cleanup_meminfo() 336 &memblock.reserved, mb->nid); in numa_clear_kernel_node_hotplug() 388 &memblock.memory, mb->nid); in numa_register_meminfo() 431 WARN_ON(memblock_set_node(0, max_addr, &memblock.memory, NUMA_NO_NODE)); in numa_memblks_init() 432 WARN_ON(memblock_set_node(0, max_addr, &memblock.reserved, in numa_memblks_init()
|
| /linux-6.15/include/linux/ |
| H A D | memblock.h | 94 struct memblock { struct 101 extern struct memblock memblock; argument 224 __for_each_mem_range(i, &memblock.memory, NULL, NUMA_NO_NODE, \ 333 __for_each_mem_range(i, &memblock.memory, &memblock.reserved, \ 350 __for_each_mem_range_rev(i, &memblock.memory, &memblock.reserved, \ 464 memblock.bottom_up = enable; in memblock_set_bottom_up() 474 return memblock.bottom_up; in memblock_bottom_up() 561 for (region = memblock.memory.regions; \ 562 region < (memblock.memory.regions + memblock.memory.cnt); \ 570 for (region = memblock.reserved.regions; \ [all …]
|
| /linux-6.15/Documentation/translations/zh_CN/core-api/ |
| H A D | boot-time-mm.rst | 22 一个叫做 ``memblock`` 的专用分配器执行启动时的内存管理。特定架构的初始化 36 mm/memblock.c 42 下面是关于memblock数据结构、函数和宏的描述。其中一些实际上是内部的,但由于 48 include/linux/memblock.h 49 mm/memblock.c
|
| /linux-6.15/Documentation/core-api/ |
| H A D | boot-time-mm.rst | 10 A specialized allocator called ``memblock`` performs the 26 .. kernel-doc:: mm/memblock.c 27 :doc: memblock overview 33 Here is the description of memblock data structures, functions and 39 .. kernel-doc:: include/linux/memblock.h 40 .. kernel-doc:: mm/memblock.c
|
| /linux-6.15/arch/microblaze/mm/ |
| H A D | init.c | 133 memblock.memory.regions[0].size = memory_size; in mm_cmdline_setup() 171 if ((u32) memblock.memory.regions[0].size < 0x400000) { in mmu_init() 176 if ((u32) memblock.memory.regions[0].size < kernel_tlb) { in mmu_init() 182 memory_start = (u32) memblock.memory.regions[0].base; in mmu_init() 183 lowmem_size = memory_size = (u32) memblock.memory.regions[0].size; in mmu_init()
|
| /linux-6.15/arch/loongarch/kernel/ |
| H A D | mem.c | 61 memblock_set_node(0, PHYS_ADDR_MAX, &memblock.memory, 0); in memblock_init() 62 memblock_set_node(0, PHYS_ADDR_MAX, &memblock.reserved, 0); in memblock_init()
|
| /linux-6.15/arch/arm/mm/ |
| H A D | pmsa-v8.c | 248 add_range(mem, ARRAY_SIZE(mem), 0, memblock.memory.regions[0].base, in pmsav8_setup() 249 memblock.memory.regions[0].base + memblock.memory.regions[0].size); in pmsav8_setup()
|
| /linux-6.15/drivers/infiniband/core/ |
| H A D | uverbs_ioctl.c | 513 struct bundle_alloc_head *memblock; in bundle_destroy() local 550 for (memblock = pbundle->allocated_mem; memblock;) { in bundle_destroy() 551 struct bundle_alloc_head *tmp = memblock; in bundle_destroy() 553 memblock = memblock->next; in bundle_destroy()
|
| /linux-6.15/arch/riscv/kernel/ |
| H A D | setup.c | 149 num_resources = memblock.memory.cnt + memblock.reserved.cnt + 1; in init_resources()
|
| /linux-6.15/arch/mips/loongson64/ |
| H A D | numa.c | 122 memblock_set_node(0, 1ULL << 44, &memblock.reserved, 0); in node_mem_init()
|
| H A D | init.c | 108 &memblock.reserved, node); in szmem()
|
| /linux-6.15/arch/powerpc/include/asm/ |
| H A D | fadump-internal.h | 20 #define memblock_num_regions(memblock_type) (memblock.memblock_type.cnt)
|
| /linux-6.15/arch/s390/kernel/ |
| H A D | setup.c | 615 if (memblock.memory.regions[0].size < crash_size) { in reserve_crashkernel() 661 (unsigned long)memblock.memory.total_size >> 20); in reserve_crashkernel() 719 memblock_set_node(0, ULONG_MAX, &memblock.memory, 0); in memblock_add_physmem_info()
|
| /linux-6.15/Documentation/ABI/testing/ |
| H A D | ppc-memtrace | 15 aligned to the memblock size. This amount of RAM will be removed
|
| /linux-6.15/arch/powerpc/mm/ |
| H A D | numa.c | 889 memblock_set_node(base, sz, &memblock.memory, nid); in numa_setup_drmem_lmb() 1005 memblock_set_node(start, size, &memblock.memory, nid); in parse_numa_properties() 1052 &memblock.memory, nid); in setup_nonnuma()
|