Lines Matching full:size
107 static bool assert_continuous(const struct drm_mm *mm, u64 size) in assert_continuous() argument
125 if (node->size != size) { in assert_continuous()
126 pr_err("node[%ld].size incorrect, expected %llx, found %llx\n", in assert_continuous()
127 n, size, node->size); in assert_continuous()
137 drm_mm_for_each_node_in_range(check, mm, addr, addr + size) { in assert_continuous()
147 addr, size); in assert_continuous()
151 addr += size; in assert_continuous()
170 u64 size, u64 alignment, unsigned long color) in assert_node() argument
179 if (node->size != size) { in assert_node()
180 pr_err("node has wrong size, found %llu, expected %llu\n", in assert_node()
181 node->size, size); in assert_node()
206 const unsigned int size = 4096; in igt_init() local
219 drm_mm_init(&mm, 0, size); in igt_init()
231 if (!assert_one_hole(&mm, 0, size)) { in igt_init()
238 tmp.size = size; in igt_init()
253 if (!assert_one_hole(&mm, 0, size)) { in igt_init()
279 nodes[0].size = 1024; in igt_debug()
282 pr_err("failed to reserve node[0] {start=%lld, size=%lld)\n", in igt_debug()
283 nodes[0].start, nodes[0].size); in igt_debug()
287 nodes[1].size = 1024; in igt_debug()
288 nodes[1].start = 4096 - 512 - nodes[1].size; in igt_debug()
291 pr_err("failed to reserve node[1] {start=%lld, size=%lld)\n", in igt_debug()
292 nodes[1].start, nodes[1].size); in igt_debug()
301 u64 start, u64 size) in set_node() argument
304 node->size = size; in set_node()
318 node->start, node->size); in expect_reserve_fail()
322 err, -ENOSPC, node->start, node->size); in expect_reserve_fail()
329 u64 size) in check_reserve_boundaries() argument
332 u64 start, size; in check_reserve_boundaries() member
337 B(-size, 0), in check_reserve_boundaries()
338 B(size, 0), in check_reserve_boundaries()
339 B(size * count, 0), in check_reserve_boundaries()
340 B(-size, size), in check_reserve_boundaries()
341 B(-size, -size), in check_reserve_boundaries()
342 B(-size, 2*size), in check_reserve_boundaries()
343 B(0, -size), in check_reserve_boundaries()
344 B(size, -size), in check_reserve_boundaries()
345 B(count*size, size), in check_reserve_boundaries()
346 B(count*size, -size), in check_reserve_boundaries()
347 B(count*size, count*size), in check_reserve_boundaries()
348 B(count*size, -count*size), in check_reserve_boundaries()
349 B(count*size, -(count+1)*size), in check_reserve_boundaries()
350 B((count+1)*size, size), in check_reserve_boundaries()
351 B((count+1)*size, -size), in check_reserve_boundaries()
352 B((count+1)*size, -2*size), in check_reserve_boundaries()
362 boundaries[n].size))) { in check_reserve_boundaries()
363 pr_err("boundary[%d:%s] failed, count=%u, size=%lld\n", in check_reserve_boundaries()
364 n, boundaries[n].name, count, size); in check_reserve_boundaries()
372 static int __igt_reserve(unsigned int count, u64 size) in __igt_reserve() argument
387 DRM_MM_BUG_ON(!size); in __igt_reserve()
399 drm_mm_init(&mm, 0, count * size); in __igt_reserve()
401 if (!check_reserve_boundaries(&mm, count, size)) in __igt_reserve()
405 nodes[n].start = order[n] * size; in __igt_reserve()
406 nodes[n].size = size; in __igt_reserve()
427 if (!assert_continuous(&mm, size)) in __igt_reserve()
434 set_node(&tmp, order[n] * size, 1))) in __igt_reserve()
448 if (!assert_continuous(&mm, size)) in __igt_reserve()
453 if (!expect_reserve_fail(&mm, set_node(&tmp, 0, size*count))) in __igt_reserve()
459 size * n, in __igt_reserve()
460 size * (count - n)))) in __igt_reserve()
484 if (!assert_continuous(&mm, size)) in __igt_reserve()
506 u64 size = BIT_ULL(n); in igt_reserve() local
508 ret = __igt_reserve(count, size - 1); in igt_reserve()
512 ret = __igt_reserve(count, size); in igt_reserve()
516 ret = __igt_reserve(count, size + 1); in igt_reserve()
527 u64 size, u64 alignment, unsigned long color, in expect_insert() argument
533 size, alignment, color, in expect_insert()
536 pr_err("insert (size=%llu, alignment=%llu, color=%lu, mode=%s) failed with err=%d\n", in expect_insert()
537 size, alignment, color, mode->name, err); in expect_insert()
541 if (!assert_node(node, mm, size, alignment, color)) { in expect_insert()
549 static bool expect_insert_fail(struct drm_mm *mm, u64 size) in expect_insert_fail() argument
554 err = drm_mm_insert_node(mm, &tmp, size); in expect_insert_fail()
560 tmp.start, tmp.size); in expect_insert_fail()
563 pr_err("impossible insert failed with wrong error %d [expected %d], size %llu\n", in expect_insert_fail()
564 err, -ENOSPC, size); in expect_insert_fail()
569 static int __igt_insert(unsigned int count, u64 size, bool replace) in __igt_insert() argument
581 DRM_MM_BUG_ON(!size); in __igt_insert()
593 drm_mm_init(&mm, 0, count * size); in __igt_insert()
601 if (!expect_insert(&mm, node, size, 0, n, mode)) { in __igt_insert()
602 pr_err("%s insert failed, size %llu step %d\n", in __igt_insert()
603 mode->name, size, n); in __igt_insert()
615 if (!assert_node(&nodes[n], &mm, size, 0, n)) { in __igt_insert()
616 pr_err("replaced node did not inherit parameters, size %llu step %d\n", in __igt_insert()
617 size, n); in __igt_insert()
623 tmp.start, size, in __igt_insert()
624 nodes[n].start, nodes[n].size); in __igt_insert()
631 if (!assert_continuous(&mm, size)) in __igt_insert()
635 if (!expect_insert_fail(&mm, size)) in __igt_insert()
643 if (!expect_insert(&mm, &nodes[n], size, 0, n, mode)) { in __igt_insert()
644 pr_err("%s reinsert failed, size %llu step %d\n", in __igt_insert()
645 mode->name, size, n); in __igt_insert()
655 if (!assert_continuous(&mm, size)) in __igt_insert()
668 if (!expect_insert(&mm, node, size, 0, n, mode)) { in __igt_insert()
669 pr_err("%s multiple reinsert failed, size %llu step %d\n", in __igt_insert()
670 mode->name, size, n); in __igt_insert()
677 if (!assert_continuous(&mm, size)) in __igt_insert()
680 if (!expect_insert_fail(&mm, size)) in __igt_insert()
710 u64 size = BIT_ULL(n); in igt_insert() local
712 ret = __igt_insert(count, size - 1, false); in igt_insert()
716 ret = __igt_insert(count, size, false); in igt_insert()
720 ret = __igt_insert(count, size + 1, false); in igt_insert()
743 u64 size = BIT_ULL(n); in igt_replace() local
745 ret = __igt_insert(count, size - 1, true); in igt_replace()
749 ret = __igt_insert(count, size, true); in igt_replace()
753 ret = __igt_insert(count, size + 1, true); in igt_replace()
764 u64 size, u64 alignment, unsigned long color, in expect_insert_in_range() argument
771 size, alignment, color, in expect_insert_in_range()
775 …pr_err("insert (size=%llu, alignment=%llu, color=%lu, mode=%s) nto range [%llx, %llx] failed with … in expect_insert_in_range()
776 size, alignment, color, mode->name, in expect_insert_in_range()
781 if (!assert_node(node, mm, size, alignment, color)) { in expect_insert_in_range()
790 u64 size, in expect_insert_in_range_fail() argument
798 size, 0, 0, in expect_insert_in_range_fail()
806 tmp.start, tmp.size, range_start, range_end); in expect_insert_in_range_fail()
809 …pr_err("impossible insert failed with wrong error %d [expected %d], size %llu, range [%llx, %llx]\… in expect_insert_in_range_fail()
810 err, -ENOSPC, size, range_start, range_end); in expect_insert_in_range_fail()
817 u64 size, in assert_contiguous_in_range() argument
824 if (!expect_insert_in_range_fail(mm, size, start, end)) in assert_contiguous_in_range()
827 n = div64_u64(start + size - 1, size); in assert_contiguous_in_range()
829 if (node->start < start || node->start + node->size > end) { in assert_contiguous_in_range()
831 n, node->start, node->start + node->size, start, end); in assert_contiguous_in_range()
835 if (node->start != n * size) { in assert_contiguous_in_range()
837 n, n * size, node->start); in assert_contiguous_in_range()
841 if (node->size != size) { in assert_contiguous_in_range()
842 pr_err("node %d has wrong size, expected size %llx, found %llx\n", in assert_contiguous_in_range()
843 n, size, node->size); in assert_contiguous_in_range()
860 node->start, node->size, start); in assert_contiguous_in_range()
869 node->start, node->size, end); in assert_contiguous_in_range()
877 static int __igt_insert_range(unsigned int count, u64 size, u64 start, u64 end) in __igt_insert_range() argument
886 DRM_MM_BUG_ON(!size); in __igt_insert_range()
899 drm_mm_init(&mm, 0, count * size); in __igt_insert_range()
901 start_n = div64_u64(start + size - 1, size); in __igt_insert_range()
902 end_n = div64_u64(end - size, size); in __igt_insert_range()
907 size, size, n, in __igt_insert_range()
909 pr_err("%s insert failed, size %llu, step %d [%d, %d], range [%llx, %llx]\n", in __igt_insert_range()
910 mode->name, size, n, in __igt_insert_range()
917 if (!assert_contiguous_in_range(&mm, size, start, end)) { in __igt_insert_range()
918 pr_err("%s: range [%llx, %llx] not full after initialisation, size=%llu\n", in __igt_insert_range()
919 mode->name, start, end, size); in __igt_insert_range()
929 size, size, n, in __igt_insert_range()
942 if (!assert_contiguous_in_range(&mm, size, start, end)) { in __igt_insert_range()
943 pr_err("%s: range [%llx, %llx] not full after reinsertion, size=%llu\n", in __igt_insert_range()
944 mode->name, start, end, size); in __igt_insert_range()
970 const unsigned int size = end - start; in insert_outside_range() local
972 drm_mm_init(&mm, start, size); in insert_outside_range()
977 if (!expect_insert_in_range_fail(&mm, size, in insert_outside_range()
978 start - size/2, start + (size+1)/2)) in insert_outside_range()
981 if (!expect_insert_in_range_fail(&mm, size, in insert_outside_range()
982 end - (size+1)/2, end + size/2)) in insert_outside_range()
985 if (!expect_insert_in_range_fail(&mm, 1, end, end + size)) in insert_outside_range()
1004 const u64 size = BIT_ULL(n); in igt_insert_range() local
1005 const u64 max = count * size; in igt_insert_range()
1007 ret = __igt_insert_range(count, size, 0, max); in igt_insert_range()
1011 ret = __igt_insert_range(count, size, 1, max); in igt_insert_range()
1015 ret = __igt_insert_range(count, size, 0, max - 1); in igt_insert_range()
1019 ret = __igt_insert_range(count, size, 0, max/2); in igt_insert_range()
1023 ret = __igt_insert_range(count, size, max/2, max); in igt_insert_range()
1027 ret = __igt_insert_range(count, size, max/4+1, 3*max/4-1); in igt_insert_range()
1042 unsigned int size = 4096; in prepare_igt_frag() local
1046 if (!expect_insert(mm, &nodes[i], size, 0, i, in prepare_igt_frag()
1068 unsigned int size = 8192; in get_insert_time() local
1074 if (!expect_insert(mm, &nodes[i], size, 0, i, mode) != 0) { in get_insert_time()
1177 u64 size = next_prime_number(prime); in igt_align() local
1180 size, prime, i, in igt_align()
1219 u64 align, size; in igt_align_pot() local
1228 size = BIT_ULL(bit-1) + 1; in igt_align_pot()
1230 size, align, bit, in igt_align_pot()
1262 pr_info("scan: hit [%llx, %llx], size=%lld, align=%lld, color=%ld\n", in show_scan()
1264 scan->size, scan->alignment, scan->color); in show_scan()
1279 hole->start, hole->size, hole->color); in show_holes()
1284 next->start, next->size, next->color); in show_holes()
1286 pr_info("%sHole [%llx - %llx, size %lld]%s\n", in show_holes()
1325 pr_err("Failed to find eviction: size=%lld [avail=%d], align=%lld (color=%lu)\n", in evict_nodes()
1326 scan->size, count, scan->alignment, scan->color); in evict_nodes()
1395 return assert_continuous(mm, nodes[0].node.size); in evict_nothing()
1444 return assert_continuous(mm, nodes[0].node.size); in evict_everything()
1452 unsigned int size, in evict_something() argument
1463 size, alignment, 0, in evict_something()
1472 err = drm_mm_insert_node_generic(mm, &tmp, size, alignment, 0, in evict_something()
1475 pr_err("Failed to insert into eviction hole: size=%d, align=%d\n", in evict_something()
1476 size, alignment); in evict_something()
1482 if (tmp.start < range_start || tmp.start + tmp.size > range_end) { in evict_something()
1484 tmp.start, tmp.size, range_start, range_end); in evict_something()
1488 if (!assert_node(&tmp, mm, size, alignment, 0) || in evict_something()
1490 …pr_err("Inserted did not fill the eviction hole: size=%lld [%d], align=%d [rem=%lld], start=%llx, … in evict_something()
1491 tmp.size, size, in evict_something()
1510 if (!assert_continuous(mm, nodes[0].node.size)) { in evict_something()
1521 const unsigned int size = 8192; in igt_evict() local
1537 nodes = vzalloc(array_size(size, sizeof(*nodes))); in igt_evict()
1541 order = drm_random_order(size, &prng); in igt_evict()
1546 drm_mm_init(&mm, 0, size); in igt_evict()
1547 for (n = 0; n < size; n++) { in igt_evict()
1557 if (!evict_nothing(&mm, size, nodes)) { in igt_evict()
1561 if (!evict_everything(&mm, size, nodes)) { in igt_evict()
1567 for (n = 1; n <= size; n <<= 1) { in igt_evict()
1568 drm_random_reorder(order, size, &prng); in igt_evict()
1570 nodes, order, size, in igt_evict()
1574 pr_err("%s evict_something(size=%u) failed\n", in igt_evict()
1581 for (n = 1; n < size; n <<= 1) { in igt_evict()
1582 drm_random_reorder(order, size, &prng); in igt_evict()
1584 nodes, order, size, in igt_evict()
1585 size/2, n, in igt_evict()
1588 pr_err("%s evict_something(size=%u, alignment=%u) failed\n", in igt_evict()
1589 mode->name, size/2, n); in igt_evict()
1595 for_each_prime_number_from(n, 1, min(size, max_prime)) { in igt_evict()
1596 unsigned int nsize = (size - n + 1) / 2; in igt_evict()
1600 drm_random_reorder(order, size, &prng); in igt_evict()
1602 nodes, order, size, in igt_evict()
1606 pr_err("%s evict_something(size=%u, alignment=%u) failed\n", in igt_evict()
1631 const unsigned int size = 8192; in igt_evict_range() local
1632 const unsigned int range_size = size / 2; in igt_evict_range()
1633 const unsigned int range_start = size / 4; in igt_evict_range()
1647 nodes = vzalloc(array_size(size, sizeof(*nodes))); in igt_evict_range()
1651 order = drm_random_order(size, &prng); in igt_evict_range()
1656 drm_mm_init(&mm, 0, size); in igt_evict_range()
1657 for (n = 0; n < size; n++) { in igt_evict_range()
1668 drm_random_reorder(order, size, &prng); in igt_evict_range()
1670 nodes, order, size, in igt_evict_range()
1674 pr_err("%s evict_something(size=%u) failed with range [%u, %u]\n", in igt_evict_range()
1681 drm_random_reorder(order, size, &prng); in igt_evict_range()
1683 nodes, order, size, in igt_evict_range()
1687 pr_err("%s evict_something(size=%u, alignment=%u) failed with range [%u, %u]\n", in igt_evict_range()
1698 drm_random_reorder(order, size, &prng); in igt_evict_range()
1700 nodes, order, size, in igt_evict_range()
1704 pr_err("%s evict_something(size=%u, alignment=%u) failed with range [%u, %u]\n", in igt_evict_range()
1727 return div64_u64(node->start, node->size); in node_index()
1735 unsigned int size; in igt_topdown() local
1761 for (size = 1; size <= 64; size <<= 1) { in igt_topdown()
1762 drm_mm_init(&mm, 0, size*count); in igt_topdown()
1765 size, 0, n, in igt_topdown()
1767 pr_err("insert failed, size %u step %d\n", size, n); in igt_topdown()
1772 pr_err("hole after topdown insert %d, start=%llx\n, size=%u", in igt_topdown()
1773 n, nodes[n].start, size); in igt_topdown()
1777 if (!assert_one_hole(&mm, 0, size*(count - n - 1))) in igt_topdown()
1781 if (!assert_continuous(&mm, size)) in igt_topdown()
1797 size, 0, 0, in igt_topdown()
1811 pr_err("node %d/%d, size %d, not inserted into upmost hole, expected %d, found %d\n", in igt_topdown()
1812 m, n, size, last, node_index(node)); in igt_topdown()
1849 unsigned int size; in igt_bottomup() local
1874 for (size = 1; size <= 64; size <<= 1) { in igt_bottomup()
1875 drm_mm_init(&mm, 0, size*count); in igt_bottomup()
1878 size, 0, n, in igt_bottomup()
1880 pr_err("bottomup insert failed, size %u step %d\n", size, n); in igt_bottomup()
1884 if (!assert_one_hole(&mm, size*(n + 1), size*count)) in igt_bottomup()
1888 if (!assert_continuous(&mm, size)) in igt_bottomup()
1904 size, 0, 0, in igt_bottomup()
1954 rsvd_lo.size = 1; in __igt_once()
1963 rsvd_hi.size = 1; in __igt_once()
2022 node->color, node->start, node->size, in colors_abutt()
2025 list_next_entry(node, node_list)->size); in colors_abutt()
2067 if (node->color != node->size) { in igt_color()
2069 node->size, node->color); in igt_color()
2089 node->size = 1 + 2*count; in igt_color()
2090 node->color = node->size; in igt_color()
2099 last = node->start + node->size; in igt_color()
2111 node->size = n + count; in igt_color()
2112 node->color = node->size; in igt_color()
2132 last = node->start + node->size; in igt_color()
2155 if (node->color != node->size) { in igt_color()
2157 mode->name, node->size, node->color); in igt_color()
2165 div64_u64_rem(node->start, node->size, &rem); in igt_color()
2168 mode->name, node->start, node->size, rem); in igt_color()
2194 unsigned int size, in evict_color() argument
2206 size, alignment, color, in evict_color()
2215 err = drm_mm_insert_node_generic(mm, &tmp, size, alignment, color, in evict_color()
2218 pr_err("Failed to insert into eviction hole: size=%d, align=%d, color=%lu, err=%d\n", in evict_color()
2219 size, alignment, color, err); in evict_color()
2225 if (tmp.start < range_start || tmp.start + tmp.size > range_end) { in evict_color()
2227 tmp.start, tmp.size, range_start, range_end); in evict_color()
2234 if (!assert_node(&tmp, mm, size, alignment, color)) { in evict_color()
2235 …pr_err("Inserted did not fit the eviction hole: size=%lld [%d], align=%d [rem=%lld], start=%llx\n", in evict_color()
2236 tmp.size, size, in evict_color()
2305 pr_err("%s evict_color(size=%u) failed\n", in igt_color_evict()
2318 pr_err("%s evict_color(size=%u, alignment=%u) failed\n", in igt_color_evict()
2335 pr_err("%s evict_color(size=%u, alignment=%u) failed\n", in igt_color_evict()
2406 pr_err("%s evict_color(size=%u) failed for range [%x, %x]\n", in igt_color_evict_range()
2419 pr_err("%s evict_color(size=%u, alignment=%u) failed for range [%x, %x]\n", in igt_color_evict_range()
2436 pr_err("%s evict_color(size=%u, alignment=%u) failed for range [%x, %x]\n", in igt_color_evict_range()