Lines Matching full:memblock
4 #include <linux/memblock.h>
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()
22 ASSERT_NE(memblock.reserved.regions, NULL); in memblock_initialization_check()
23 ASSERT_EQ(memblock.reserved.cnt, 0); in memblock_initialization_check()
24 ASSERT_EQ(memblock.memory.max, EXPECTED_MEMBLOCK_REGIONS); in memblock_initialization_check()
25 ASSERT_EQ(strcmp(memblock.reserved.name, "reserved"), 0); in memblock_initialization_check()
27 ASSERT_EQ(memblock.bottom_up, false); in memblock_initialization_check()
28 ASSERT_EQ(memblock.current_limit, MEMBLOCK_ALLOC_ANYWHERE); in memblock_initialization_check()
37 * and size to the collection of available memory regions (memblock.memory).
45 rgn = &memblock.memory.regions[0]; in memblock_add_simple_check()
60 ASSERT_EQ(memblock.memory.cnt, 1); in memblock_add_simple_check()
61 ASSERT_EQ(memblock.memory.total_size, r.size); 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()
98 ASSERT_EQ(memblock.memory.total_size, r.size); in memblock_add_node_simple_check()
114 * available memory regions (memblock.memory). The total size and
121 rgn1 = &memblock.memory.regions[0]; in memblock_add_disjoint_check()
122 rgn2 = &memblock.memory.regions[1]; in memblock_add_disjoint_check()
145 ASSERT_EQ(memblock.memory.cnt, 2); in memblock_add_disjoint_check()
146 ASSERT_EQ(memblock.memory.total_size, r1.size + r2.size); in memblock_add_disjoint_check()
175 rgn = &memblock.memory.regions[0]; in memblock_add_overlap_top_check()
197 ASSERT_EQ(memblock.memory.cnt, 1); in memblock_add_overlap_top_check()
198 ASSERT_EQ(memblock.memory.total_size, total_size); in memblock_add_overlap_top_check()
227 rgn = &memblock.memory.regions[0]; in memblock_add_overlap_bottom_check()
249 ASSERT_EQ(memblock.memory.cnt, 1); in memblock_add_overlap_bottom_check()
250 ASSERT_EQ(memblock.memory.total_size, total_size); in memblock_add_overlap_bottom_check()
276 rgn = &memblock.memory.regions[0]; in memblock_add_within_check()
296 ASSERT_EQ(memblock.memory.cnt, 1); in memblock_add_within_check()
297 ASSERT_EQ(memblock.memory.total_size, r1.size); in memblock_add_within_check()
322 ASSERT_EQ(memblock.memory.cnt, 1); in memblock_add_twice_check()
323 ASSERT_EQ(memblock.memory.total_size, r.size); in memblock_add_twice_check()
347 rgn = &memblock.memory.regions[0]; in memblock_add_between_check()
374 ASSERT_EQ(memblock.memory.cnt, 1); in memblock_add_between_check()
375 ASSERT_EQ(memblock.memory.total_size, total_size); in memblock_add_between_check()
401 rgn = &memblock.memory.regions[0]; in memblock_add_near_max_check()
418 ASSERT_EQ(memblock.memory.cnt, 1); in memblock_add_near_max_check()
419 ASSERT_EQ(memblock.memory.total_size, total_size); in memblock_add_near_max_check()
429 * memblock.memory.max, find a new valid memory as
463 orig_region = memblock.memory.regions; in memblock_add_many_check()
467 * Add these small block to fulfill the memblock. We keep a in memblock_add_many_check()
473 ASSERT_EQ(memblock.memory.cnt, i + 2); in memblock_add_many_check()
474 ASSERT_EQ(memblock.memory.total_size, new_memory_regions_size + in memblock_add_many_check()
482 ASSERT_EQ(memblock.memory.max, INIT_MEMBLOCK_REGIONS * 2); in memblock_add_many_check()
485 ASSERT_EQ(memblock.reserved.cnt, 1); in memblock_add_many_check()
486 ASSERT_EQ(memblock.reserved.total_size, new_memory_regions_size); in memblock_add_many_check()
493 ASSERT_EQ(memblock.memory.regions[0].base, r.base); in memblock_add_many_check()
494 ASSERT_EQ(memblock.memory.regions[0].size, r.size); in memblock_add_many_check()
496 ASSERT_EQ(memblock.memory.cnt, INIT_MEMBLOCK_REGIONS + 2); in memblock_add_many_check()
497 ASSERT_EQ(memblock.memory.total_size, INIT_MEMBLOCK_REGIONS * size + in memblock_add_many_check()
500 ASSERT_EQ(memblock.memory.max, INIT_MEMBLOCK_REGIONS * 2); in memblock_add_many_check()
510 memblock.memory.regions = orig_region; in memblock_add_many_check()
511 memblock.memory.cnt = INIT_MEMBLOCK_REGIONS; in memblock_add_many_check()
543 * (memblock.reserved). Expect to create a new entry. The region counter
550 rgn = &memblock.reserved.regions[0]; in memblock_reserve_simple_check()
578 * (memblock.reserved). The total size and region counter for
579 * memblock.reserved are updated.
585 rgn1 = &memblock.reserved.regions[0]; in memblock_reserve_disjoint_check()
586 rgn2 = &memblock.reserved.regions[1]; in memblock_reserve_disjoint_check()
609 ASSERT_EQ(memblock.reserved.cnt, 2); in memblock_reserve_disjoint_check()
610 ASSERT_EQ(memblock.reserved.total_size, r1.size + r2.size); in memblock_reserve_disjoint_check()
640 rgn = &memblock.reserved.regions[0]; in memblock_reserve_overlap_top_check()
662 ASSERT_EQ(memblock.reserved.cnt, 1); in memblock_reserve_overlap_top_check()
663 ASSERT_EQ(memblock.reserved.total_size, total_size); in memblock_reserve_overlap_top_check()
693 rgn = &memblock.reserved.regions[0]; in memblock_reserve_overlap_bottom_check()
715 ASSERT_EQ(memblock.reserved.cnt, 1); in memblock_reserve_overlap_bottom_check()
716 ASSERT_EQ(memblock.reserved.total_size, total_size); in memblock_reserve_overlap_bottom_check()
744 rgn = &memblock.reserved.regions[0]; in memblock_reserve_within_check()
764 ASSERT_EQ(memblock.reserved.cnt, 1); in memblock_reserve_within_check()
765 ASSERT_EQ(memblock.reserved.total_size, r1.size); in memblock_reserve_within_check()
791 ASSERT_EQ(memblock.reserved.cnt, 1); in memblock_reserve_twice_check()
792 ASSERT_EQ(memblock.reserved.total_size, r.size); in memblock_reserve_twice_check()
809 * total for memblock.reserved are updated.
816 rgn = &memblock.reserved.regions[0]; in memblock_reserve_between_check()
843 ASSERT_EQ(memblock.reserved.cnt, 1); in memblock_reserve_between_check()
844 ASSERT_EQ(memblock.reserved.total_size, total_size); in memblock_reserve_between_check()
870 rgn = &memblock.reserved.regions[0]; in memblock_reserve_near_max_check()
887 ASSERT_EQ(memblock.reserved.cnt, 1); in memblock_reserve_near_max_check()
888 ASSERT_EQ(memblock.reserved.total_size, total_size); in memblock_reserve_near_max_check()
898 * memblock.memory.max, find a new valid memory as
922 /* Reserve some fakes memory region to fulfill the memblock. */ in memblock_reserve_many_check()
925 ASSERT_EQ(memblock.reserved.cnt, i + 1); in memblock_reserve_many_check()
926 ASSERT_EQ(memblock.reserved.total_size, (i + 1) * MEM_SIZE); in memblock_reserve_many_check()
932 orig_region = memblock.reserved.regions; in memblock_reserve_many_check()
940 * calculate the total_size that the memblock.reserved have now. in memblock_reserve_many_check()
947 * there will be one more region exist in the reserved memblock. And the in memblock_reserve_many_check()
950 ASSERT_EQ(memblock.reserved.cnt, INIT_MEMBLOCK_REGIONS + 2); in memblock_reserve_many_check()
951 ASSERT_EQ(memblock.reserved.total_size, (INIT_MEMBLOCK_REGIONS + 1) * MEM_SIZE + in memblock_reserve_many_check()
953 ASSERT_EQ(memblock.reserved.max, INIT_MEMBLOCK_REGIONS * 2); in memblock_reserve_many_check()
960 ASSERT_EQ(memblock.reserved.regions[0].base, r.base); in memblock_reserve_many_check()
961 ASSERT_EQ(memblock.reserved.regions[0].size, r.size); in memblock_reserve_many_check()
963 ASSERT_EQ(memblock.reserved.cnt, INIT_MEMBLOCK_REGIONS + 3); in memblock_reserve_many_check()
964 ASSERT_EQ(memblock.reserved.total_size, (INIT_MEMBLOCK_REGIONS + 1) * MEM_SIZE + in memblock_reserve_many_check()
967 ASSERT_EQ(memblock.reserved.max, INIT_MEMBLOCK_REGIONS * 2); in memblock_reserve_many_check()
977 memblock.reserved.regions = orig_region; in memblock_reserve_many_check()
978 memblock.reserved.cnt = INIT_MEMBLOCK_RESERVED_REGIONS; in memblock_reserve_many_check()
989 * memblock.memory.max, find a new valid memory as reserved.regions.
1025 /* Reserve some fakes memory region to fulfill the memblock. */ in memblock_reserve_all_locations_check()
1029 ASSERT_EQ(memblock.reserved.cnt, i + 1); in memblock_reserve_all_locations_check()
1030 ASSERT_EQ(memblock.reserved.total_size, (i + 1) * MEM_SIZE); in memblock_reserve_all_locations_check()
1032 ASSERT_EQ(memblock.reserved.cnt, i); in memblock_reserve_all_locations_check()
1033 ASSERT_EQ(memblock.reserved.total_size, i * MEM_SIZE); in memblock_reserve_all_locations_check()
1037 orig_region = memblock.reserved.regions; in memblock_reserve_all_locations_check()
1045 * calculate the total_size that the memblock.reserved have now. in memblock_reserve_all_locations_check()
1052 * there will be one more region exist in the reserved memblock. And the in memblock_reserve_all_locations_check()
1055 ASSERT_EQ(memblock.reserved.cnt, INIT_MEMBLOCK_REGIONS + 2); in memblock_reserve_all_locations_check()
1056 ASSERT_EQ(memblock.reserved.total_size, (INIT_MEMBLOCK_REGIONS + 1) * MEM_SIZE + in memblock_reserve_all_locations_check()
1058 ASSERT_EQ(memblock.reserved.max, INIT_MEMBLOCK_REGIONS * 2); in memblock_reserve_all_locations_check()
1065 ASSERT_EQ(memblock.reserved.regions[0].base, r.base); in memblock_reserve_all_locations_check()
1066 ASSERT_EQ(memblock.reserved.regions[0].size, r.size); in memblock_reserve_all_locations_check()
1068 ASSERT_EQ(memblock.reserved.cnt, INIT_MEMBLOCK_REGIONS + 3); in memblock_reserve_all_locations_check()
1069 ASSERT_EQ(memblock.reserved.total_size, (INIT_MEMBLOCK_REGIONS + 1) * MEM_SIZE + in memblock_reserve_all_locations_check()
1072 ASSERT_EQ(memblock.reserved.max, INIT_MEMBLOCK_REGIONS * 2); in memblock_reserve_all_locations_check()
1082 memblock.reserved.regions = orig_region; in memblock_reserve_all_locations_check()
1083 memblock.reserved.cnt = INIT_MEMBLOCK_RESERVED_REGIONS; in memblock_reserve_all_locations_check()
1094 * memblock.memory.max, find a new valid memory as reserved.regions. And make
1101 * commit 48c3b583bbdd ("mm/memblock: fix overlapping allocation when doubling
1140 * memblock.reserved.regions at idx 0. in memblock_reserve_many_may_conflict_check()
1166 /* Reserve some fakes memory region to fulfill the memblock. */ in memblock_reserve_many_may_conflict_check()
1170 ASSERT_EQ(memblock.reserved.cnt, i); in memblock_reserve_many_may_conflict_check()
1171 ASSERT_EQ(memblock.reserved.total_size, i * MEM_SIZE); in memblock_reserve_many_may_conflict_check()
1173 ASSERT_EQ(memblock.reserved.cnt, i - 1); in memblock_reserve_many_may_conflict_check()
1174 ASSERT_EQ(memblock.reserved.total_size, (i - 1) * MEM_SIZE); in memblock_reserve_many_may_conflict_check()
1178 orig_region = memblock.reserved.regions; in memblock_reserve_many_may_conflict_check()
1186 * calculate the total_size that the memblock.reserved have now. in memblock_reserve_many_may_conflict_check()
1193 * there will be one more region exist in the reserved memblock. And the in memblock_reserve_many_may_conflict_check()
1196 ASSERT_EQ(memblock.reserved.cnt, INIT_MEMBLOCK_REGIONS + 2); in memblock_reserve_many_may_conflict_check()
1197 ASSERT_EQ(memblock.reserved.total_size, (INIT_MEMBLOCK_REGIONS + 1) * MEM_SIZE + in memblock_reserve_many_may_conflict_check()
1199 ASSERT_EQ(memblock.reserved.max, INIT_MEMBLOCK_REGIONS * 2); in memblock_reserve_many_may_conflict_check()
1206 ASSERT_EQ(memblock.reserved.regions[0].base + memblock.reserved.regions[0].size, in memblock_reserve_many_may_conflict_check()
1208 ASSERT_EQ(memblock.reserved.regions[0].size, new_reserved_regions_size); in memblock_reserve_many_may_conflict_check()
1215 ASSERT_EQ(memblock.reserved.regions[0].base, r.base); in memblock_reserve_many_may_conflict_check()
1216 ASSERT_EQ(memblock.reserved.regions[0].size, r.size); in memblock_reserve_many_may_conflict_check()
1218 ASSERT_EQ(memblock.reserved.cnt, INIT_MEMBLOCK_REGIONS + 3); in memblock_reserve_many_may_conflict_check()
1219 ASSERT_EQ(memblock.reserved.total_size, (INIT_MEMBLOCK_REGIONS + 1) * MEM_SIZE + in memblock_reserve_many_may_conflict_check()
1222 ASSERT_EQ(memblock.reserved.max, INIT_MEMBLOCK_REGIONS * 2); in memblock_reserve_many_may_conflict_check()
1230 memblock.reserved.regions = orig_region; in memblock_reserve_many_may_conflict_check()
1231 memblock.reserved.cnt = INIT_MEMBLOCK_RESERVED_REGIONS; in memblock_reserve_many_may_conflict_check()
1267 * with the next region r2 in memblock.memory:
1284 rgn = &memblock.memory.regions[0]; in memblock_remove_simple_check()
1305 ASSERT_EQ(memblock.memory.cnt, 1); in memblock_remove_simple_check()
1306 ASSERT_EQ(memblock.memory.total_size, r2.size); in memblock_remove_simple_check()
1315 * available memory (i.e. has no corresponding entry in memblock.memory):
1333 rgn = &memblock.memory.regions[0]; in memblock_remove_absent_check()
1353 ASSERT_EQ(memblock.memory.cnt, 1); in memblock_remove_absent_check()
1354 ASSERT_EQ(memblock.memory.total_size, r1.size); in memblock_remove_absent_check()
1385 rgn = &memblock.memory.regions[0]; in memblock_remove_overlap_top_check()
1409 ASSERT_EQ(memblock.memory.cnt, 1); in memblock_remove_overlap_top_check()
1410 ASSERT_EQ(memblock.memory.total_size, total_size); in memblock_remove_overlap_top_check()
1439 rgn = &memblock.memory.regions[0]; in memblock_remove_overlap_bottom_check()
1461 ASSERT_EQ(memblock.memory.cnt, 1); in memblock_remove_overlap_bottom_check()
1462 ASSERT_EQ(memblock.memory.total_size, total_size); in memblock_remove_overlap_bottom_check()
1493 rgn1 = &memblock.memory.regions[0]; in memblock_remove_within_check()
1494 rgn2 = &memblock.memory.regions[1]; in memblock_remove_within_check()
1521 ASSERT_EQ(memblock.memory.cnt, 2); in memblock_remove_within_check()
1522 ASSERT_EQ(memblock.memory.total_size, total_size); in memblock_remove_within_check()
1540 rgn = &memblock.memory.regions[0]; in memblock_remove_only_region_check()
1556 ASSERT_EQ(memblock.memory.cnt, 0); in memblock_remove_only_region_check()
1557 ASSERT_EQ(memblock.memory.total_size, 0); in memblock_remove_only_region_check()
1584 rgn = &memblock.memory.regions[0]; in memblock_remove_near_max_check()
1607 ASSERT_EQ(memblock.memory.cnt, 1); in memblock_remove_near_max_check()
1608 ASSERT_EQ(memblock.memory.total_size, total_size); in memblock_remove_near_max_check()
1635 rgn1 = &memblock.memory.regions[0]; in memblock_remove_overlap_two_check()
1636 rgn2 = &memblock.memory.regions[1]; in memblock_remove_overlap_two_check()
1670 ASSERT_EQ(memblock.memory.cnt, 2); in memblock_remove_overlap_two_check()
1671 ASSERT_EQ(memblock.memory.total_size, total_size); in memblock_remove_overlap_two_check()
1701 * the next entry r2 in memblock.reserved:
1717 rgn = &memblock.reserved.regions[0]; in memblock_free_simple_check()
1738 ASSERT_EQ(memblock.reserved.cnt, 1); in memblock_free_simple_check()
1739 ASSERT_EQ(memblock.reserved.total_size, r2.size); in memblock_free_simple_check()
1748 * (i.e. has no corresponding entry in memblock.reserved):
1766 rgn = &memblock.reserved.regions[0]; in memblock_free_absent_check()
1786 ASSERT_EQ(memblock.reserved.cnt, 1); in memblock_free_absent_check()
1787 ASSERT_EQ(memblock.reserved.total_size, r1.size); in memblock_free_absent_check()
1818 rgn = &memblock.reserved.regions[0]; in memblock_free_overlap_top_check()
1840 ASSERT_EQ(memblock.reserved.cnt, 1); in memblock_free_overlap_top_check()
1841 ASSERT_EQ(memblock.reserved.total_size, total_size); in memblock_free_overlap_top_check()
1867 rgn = &memblock.reserved.regions[0]; in memblock_free_overlap_bottom_check()
1889 ASSERT_EQ(memblock.reserved.cnt, 1); in memblock_free_overlap_bottom_check()
1890 ASSERT_EQ(memblock.reserved.total_size, total_size); in memblock_free_overlap_bottom_check()
1921 rgn1 = &memblock.reserved.regions[0]; in memblock_free_within_check()
1922 rgn2 = &memblock.reserved.regions[1]; in memblock_free_within_check()
1949 ASSERT_EQ(memblock.reserved.cnt, 2); in memblock_free_within_check()
1950 ASSERT_EQ(memblock.reserved.total_size, total_size); in memblock_free_within_check()
1968 rgn = &memblock.reserved.regions[0]; in memblock_free_only_region_check()
1984 ASSERT_EQ(memblock.reserved.cnt, 0); in memblock_free_only_region_check()
1985 ASSERT_EQ(memblock.reserved.total_size, 0); in memblock_free_only_region_check()
2011 rgn = &memblock.reserved.regions[0]; in memblock_free_near_max_check()
2034 ASSERT_EQ(memblock.reserved.cnt, 1); in memblock_free_near_max_check()
2035 ASSERT_EQ(memblock.reserved.total_size, total_size); in memblock_free_near_max_check()
2062 rgn1 = &memblock.reserved.regions[0]; in memblock_free_overlap_two_check()
2063 rgn2 = &memblock.reserved.regions[1]; in memblock_free_overlap_two_check()
2097 ASSERT_EQ(memblock.reserved.cnt, 2); in memblock_free_overlap_two_check()
2098 ASSERT_EQ(memblock.reserved.total_size, total_size); in memblock_free_overlap_two_check()
2130 ASSERT_EQ(memblock.bottom_up, false); in memblock_set_bottom_up_check()
2132 ASSERT_EQ(memblock.bottom_up, true); in memblock_set_bottom_up_check()
2145 ASSERT_EQ(memblock_bottom_up(), memblock.bottom_up); in memblock_bottom_up_check()
2148 ASSERT_EQ(memblock_bottom_up(), memblock.bottom_up); in memblock_bottom_up_check()
2179 rgn = &memblock.memory.regions[0]; in memblock_trim_memory_aligned_check()
2195 ASSERT_EQ(memblock.memory.cnt, 1); in memblock_trim_memory_aligned_check()
2225 rgn = &memblock.memory.regions[0]; in memblock_trim_memory_too_small_check()
2246 ASSERT_EQ(memblock.memory.cnt, 1); in memblock_trim_memory_too_small_check()
2279 rgn1 = &memblock.memory.regions[0]; in memblock_trim_memory_unaligned_base_check()
2280 rgn2 = &memblock.memory.regions[1]; in memblock_trim_memory_unaligned_base_check()
2307 ASSERT_EQ(memblock.memory.cnt, 2); in memblock_trim_memory_unaligned_base_check()
2340 rgn1 = &memblock.memory.regions[0]; in memblock_trim_memory_unaligned_end_check()
2341 rgn2 = &memblock.memory.regions[1]; in memblock_trim_memory_unaligned_end_check()
2367 ASSERT_EQ(memblock.memory.cnt, 2); in memblock_trim_memory_unaligned_end_check()
2403 ASSERT_FALSE(memblock_overlaps_region(&memblock.memory, SZ_1M, SZ_1M)); in memblock_overlaps_region_check()
2404 ASSERT_FALSE(memblock_overlaps_region(&memblock.memory, SZ_2G, SZ_1M)); in memblock_overlaps_region_check()
2407 ASSERT_FALSE(memblock_overlaps_region(&memblock.memory, SZ_1G - SZ_1M, SZ_1M)); in memblock_overlaps_region_check()
2408 ASSERT_FALSE(memblock_overlaps_region(&memblock.memory, SZ_1G + SZ_4M, SZ_1M)); in memblock_overlaps_region_check()
2411 ASSERT_TRUE(memblock_overlaps_region(&memblock.memory, SZ_1G - SZ_1M, SZ_2M)); in memblock_overlaps_region_check()
2412 ASSERT_TRUE(memblock_overlaps_region(&memblock.memory, SZ_1G + SZ_2M, SZ_2M)); in memblock_overlaps_region_check()
2415 ASSERT_TRUE(memblock_overlaps_region(&memblock.memory, SZ_1G, SZ_4M)); in memblock_overlaps_region_check()
2416 ASSERT_TRUE(memblock_overlaps_region(&memblock.memory, SZ_1G - SZ_2M, SZ_8M)); in memblock_overlaps_region_check()
2417 ASSERT_TRUE(memblock_overlaps_region(&memblock.memory, SZ_1G + SZ_1M, SZ_1M)); in memblock_overlaps_region_check()
2451 orig_region = memblock.reserved.regions; in memblock_set_node_check()
2455 memblock_phys_mem_size() / 2, &memblock.memory, 0); in memblock_set_node_check()
2457 memblock_phys_mem_size() / 2, &memblock.memory, 1); in memblock_set_node_check()
2459 ASSERT_EQ(memblock.memory.cnt, 2); in memblock_set_node_check()
2460 rgn = &memblock.memory.regions[0]; in memblock_set_node_check()
2464 rgn = &memblock.memory.regions[1]; in memblock_set_node_check()
2478 * do following process to set nid to each memblock.reserved region. in memblock_set_node_check()
2485 max_reserved = memblock.reserved.max; in memblock_set_node_check()
2489 memblock_set_node(rgn->base, rgn->size, &memblock.reserved, nid); in memblock_set_node_check()
2491 if (max_reserved != memblock.reserved.max) in memblock_set_node_check()
2497 if (rgn == (memblock.reserved.regions + memblock.reserved.cnt - 1)) in memblock_set_node_check()
2511 memblock.reserved.regions = orig_region; in memblock_set_node_check()
2512 memblock.reserved.cnt = INIT_MEMBLOCK_RESERVED_REGIONS; in memblock_set_node_check()