Lines Matching refs:size

106 static bool assert_continuous(const struct drm_mm *mm, u64 size)  in assert_continuous()  argument
124 if (node->size != size) { in assert_continuous()
126 n, size, node->size); in assert_continuous()
136 drm_mm_for_each_node_in_range(check, mm, addr, addr + size) { in assert_continuous()
146 addr, size); in assert_continuous()
150 addr += size; in assert_continuous()
169 u64 size, u64 alignment, unsigned long color) in assert_node() argument
178 if (node->size != size) { in assert_node()
180 node->size, size); in assert_node()
205 const unsigned int size = 4096; in igt_init() local
218 drm_mm_init(&mm, 0, size); in igt_init()
230 if (!assert_one_hole(&mm, 0, size)) { in igt_init()
237 tmp.size = size; in igt_init()
252 if (!assert_one_hole(&mm, 0, size)) { in igt_init()
278 nodes[0].size = 1024; in igt_debug()
282 nodes[0].start, nodes[0].size); in igt_debug()
286 nodes[1].size = 1024; in igt_debug()
287 nodes[1].start = 4096 - 512 - nodes[1].size; in igt_debug()
291 nodes[1].start, nodes[1].size); in igt_debug()
300 u64 start, u64 size) in set_node() argument
303 node->size = size; in set_node()
317 node->start, node->size); in expect_reserve_fail()
321 err, -ENOSPC, node->start, node->size); in expect_reserve_fail()
328 u64 size) in check_reserve_boundaries() argument
331 u64 start, size; in check_reserve_boundaries() member
336 B(-size, 0), in check_reserve_boundaries()
337 B(size, 0), in check_reserve_boundaries()
338 B(size * count, 0), in check_reserve_boundaries()
339 B(-size, size), in check_reserve_boundaries()
340 B(-size, -size), in check_reserve_boundaries()
341 B(-size, 2*size), in check_reserve_boundaries()
342 B(0, -size), in check_reserve_boundaries()
343 B(size, -size), in check_reserve_boundaries()
344 B(count*size, size), in check_reserve_boundaries()
345 B(count*size, -size), in check_reserve_boundaries()
346 B(count*size, count*size), in check_reserve_boundaries()
347 B(count*size, -count*size), in check_reserve_boundaries()
348 B(count*size, -(count+1)*size), in check_reserve_boundaries()
349 B((count+1)*size, size), in check_reserve_boundaries()
350 B((count+1)*size, -size), in check_reserve_boundaries()
351 B((count+1)*size, -2*size), in check_reserve_boundaries()
361 boundaries[n].size))) { in check_reserve_boundaries()
363 n, boundaries[n].name, count, size); in check_reserve_boundaries()
371 static int __igt_reserve(unsigned int count, u64 size) in __igt_reserve() argument
386 DRM_MM_BUG_ON(!size); in __igt_reserve()
398 drm_mm_init(&mm, 0, count * size); in __igt_reserve()
400 if (!check_reserve_boundaries(&mm, count, size)) in __igt_reserve()
404 nodes[n].start = order[n] * size; in __igt_reserve()
405 nodes[n].size = size; in __igt_reserve()
426 if (!assert_continuous(&mm, size)) in __igt_reserve()
433 set_node(&tmp, order[n] * size, 1))) in __igt_reserve()
447 if (!assert_continuous(&mm, size)) in __igt_reserve()
452 if (!expect_reserve_fail(&mm, set_node(&tmp, 0, size*count))) in __igt_reserve()
458 size * n, in __igt_reserve()
459 size * (count - n)))) in __igt_reserve()
483 if (!assert_continuous(&mm, size)) in __igt_reserve()
505 u64 size = BIT_ULL(n); in igt_reserve() local
507 ret = __igt_reserve(count, size - 1); in igt_reserve()
511 ret = __igt_reserve(count, size); in igt_reserve()
515 ret = __igt_reserve(count, size + 1); in igt_reserve()
526 u64 size, u64 alignment, unsigned long color, in expect_insert() argument
532 size, alignment, color, in expect_insert()
536 size, alignment, color, mode->name, err); in expect_insert()
540 if (!assert_node(node, mm, size, alignment, color)) { in expect_insert()
548 static bool expect_insert_fail(struct drm_mm *mm, u64 size) in expect_insert_fail() argument
553 err = drm_mm_insert_node(mm, &tmp, size); in expect_insert_fail()
559 tmp.start, tmp.size); in expect_insert_fail()
563 err, -ENOSPC, size); in expect_insert_fail()
568 static int __igt_insert(unsigned int count, u64 size, bool replace) in __igt_insert() argument
580 DRM_MM_BUG_ON(!size); in __igt_insert()
592 drm_mm_init(&mm, 0, count * size); in __igt_insert()
600 if (!expect_insert(&mm, node, size, 0, n, mode)) { in __igt_insert()
602 mode->name, size, n); in __igt_insert()
614 if (!assert_node(&nodes[n], &mm, size, 0, n)) { in __igt_insert()
616 size, n); in __igt_insert()
622 tmp.start, size, in __igt_insert()
623 nodes[n].start, nodes[n].size); in __igt_insert()
630 if (!assert_continuous(&mm, size)) in __igt_insert()
634 if (!expect_insert_fail(&mm, size)) in __igt_insert()
642 if (!expect_insert(&mm, &nodes[n], size, 0, n, mode)) { in __igt_insert()
644 mode->name, size, n); in __igt_insert()
654 if (!assert_continuous(&mm, size)) in __igt_insert()
667 if (!expect_insert(&mm, node, size, 0, n, mode)) { in __igt_insert()
669 mode->name, size, n); in __igt_insert()
676 if (!assert_continuous(&mm, size)) in __igt_insert()
679 if (!expect_insert_fail(&mm, size)) in __igt_insert()
709 u64 size = BIT_ULL(n); in igt_insert() local
711 ret = __igt_insert(count, size - 1, false); in igt_insert()
715 ret = __igt_insert(count, size, false); in igt_insert()
719 ret = __igt_insert(count, size + 1, false); in igt_insert()
742 u64 size = BIT_ULL(n); in igt_replace() local
744 ret = __igt_insert(count, size - 1, true); in igt_replace()
748 ret = __igt_insert(count, size, true); in igt_replace()
752 ret = __igt_insert(count, size + 1, true); in igt_replace()
763 u64 size, u64 alignment, unsigned long color, in expect_insert_in_range() argument
770 size, alignment, color, in expect_insert_in_range()
775 size, alignment, color, mode->name, in expect_insert_in_range()
780 if (!assert_node(node, mm, size, alignment, color)) { in expect_insert_in_range()
789 u64 size, in expect_insert_in_range_fail() argument
797 size, 0, 0, in expect_insert_in_range_fail()
805 tmp.start, tmp.size, range_start, range_end); in expect_insert_in_range_fail()
809 err, -ENOSPC, size, range_start, range_end); in expect_insert_in_range_fail()
816 u64 size, in assert_contiguous_in_range() argument
823 if (!expect_insert_in_range_fail(mm, size, start, end)) in assert_contiguous_in_range()
826 n = div64_u64(start + size - 1, size); in assert_contiguous_in_range()
828 if (node->start < start || node->start + node->size > end) { in assert_contiguous_in_range()
830 n, node->start, node->start + node->size, start, end); in assert_contiguous_in_range()
834 if (node->start != n * size) { in assert_contiguous_in_range()
836 n, n * size, node->start); in assert_contiguous_in_range()
840 if (node->size != size) { in assert_contiguous_in_range()
842 n, size, node->size); in assert_contiguous_in_range()
859 node->start, node->size, start); in assert_contiguous_in_range()
868 node->start, node->size, end); in assert_contiguous_in_range()
876 static int __igt_insert_range(unsigned int count, u64 size, u64 start, u64 end) in __igt_insert_range() argument
885 DRM_MM_BUG_ON(!size); in __igt_insert_range()
898 drm_mm_init(&mm, 0, count * size); in __igt_insert_range()
900 start_n = div64_u64(start + size - 1, size); in __igt_insert_range()
901 end_n = div64_u64(end - size, size); in __igt_insert_range()
906 size, size, n, in __igt_insert_range()
909 mode->name, size, n, in __igt_insert_range()
916 if (!assert_contiguous_in_range(&mm, size, start, end)) { in __igt_insert_range()
918 mode->name, start, end, size); in __igt_insert_range()
928 size, size, n, in __igt_insert_range()
941 if (!assert_contiguous_in_range(&mm, size, start, end)) { in __igt_insert_range()
943 mode->name, start, end, size); in __igt_insert_range()
969 const unsigned int size = end - start; in insert_outside_range() local
971 drm_mm_init(&mm, start, size); in insert_outside_range()
976 if (!expect_insert_in_range_fail(&mm, size, in insert_outside_range()
977 start - size/2, start + (size+1)/2)) in insert_outside_range()
980 if (!expect_insert_in_range_fail(&mm, size, in insert_outside_range()
981 end - (size+1)/2, end + size/2)) in insert_outside_range()
984 if (!expect_insert_in_range_fail(&mm, 1, end, end + size)) in insert_outside_range()
1003 const u64 size = BIT_ULL(n); in igt_insert_range() local
1004 const u64 max = count * size; in igt_insert_range()
1006 ret = __igt_insert_range(count, size, 0, max); in igt_insert_range()
1010 ret = __igt_insert_range(count, size, 1, max); in igt_insert_range()
1014 ret = __igt_insert_range(count, size, 0, max - 1); in igt_insert_range()
1018 ret = __igt_insert_range(count, size, 0, max/2); in igt_insert_range()
1022 ret = __igt_insert_range(count, size, max/2, max); in igt_insert_range()
1026 ret = __igt_insert_range(count, size, max/4+1, 3*max/4-1); in igt_insert_range()
1060 u64 size = next_prime_number(prime); in igt_align() local
1063 size, prime, i, in igt_align()
1102 u64 align, size; in igt_align_pot() local
1111 size = BIT_ULL(bit-1) + 1; in igt_align_pot()
1113 size, align, bit, in igt_align_pot()
1147 scan->size, scan->alignment, scan->color); in show_scan()
1162 hole->start, hole->size, hole->color); in show_holes()
1167 next->start, next->size, next->color); in show_holes()
1209 scan->size, count, scan->alignment, scan->color); in evict_nodes()
1278 return assert_continuous(mm, nodes[0].node.size); in evict_nothing()
1327 return assert_continuous(mm, nodes[0].node.size); in evict_everything()
1335 unsigned int size, in evict_something() argument
1346 size, alignment, 0, in evict_something()
1355 err = drm_mm_insert_node_generic(mm, &tmp, size, alignment, 0, in evict_something()
1359 size, alignment); in evict_something()
1365 if (tmp.start < range_start || tmp.start + tmp.size > range_end) { in evict_something()
1367 tmp.start, tmp.size, range_start, range_end); in evict_something()
1371 if (!assert_node(&tmp, mm, size, alignment, 0) || in evict_something()
1374 tmp.size, size, in evict_something()
1393 if (!assert_continuous(mm, nodes[0].node.size)) { in evict_something()
1404 const unsigned int size = 8192; in igt_evict() local
1420 nodes = vzalloc(array_size(size, sizeof(*nodes))); in igt_evict()
1424 order = drm_random_order(size, &prng); in igt_evict()
1429 drm_mm_init(&mm, 0, size); in igt_evict()
1430 for (n = 0; n < size; n++) { in igt_evict()
1440 if (!evict_nothing(&mm, size, nodes)) { in igt_evict()
1444 if (!evict_everything(&mm, size, nodes)) { in igt_evict()
1450 for (n = 1; n <= size; n <<= 1) { in igt_evict()
1451 drm_random_reorder(order, size, &prng); in igt_evict()
1453 nodes, order, size, in igt_evict()
1464 for (n = 1; n < size; n <<= 1) { in igt_evict()
1465 drm_random_reorder(order, size, &prng); in igt_evict()
1467 nodes, order, size, in igt_evict()
1468 size/2, n, in igt_evict()
1472 mode->name, size/2, n); in igt_evict()
1478 for_each_prime_number_from(n, 1, min(size, max_prime)) { in igt_evict()
1479 unsigned int nsize = (size - n + 1) / 2; in igt_evict()
1483 drm_random_reorder(order, size, &prng); in igt_evict()
1485 nodes, order, size, in igt_evict()
1514 const unsigned int size = 8192; in igt_evict_range() local
1515 const unsigned int range_size = size / 2; in igt_evict_range()
1516 const unsigned int range_start = size / 4; in igt_evict_range()
1530 nodes = vzalloc(array_size(size, sizeof(*nodes))); in igt_evict_range()
1534 order = drm_random_order(size, &prng); in igt_evict_range()
1539 drm_mm_init(&mm, 0, size); in igt_evict_range()
1540 for (n = 0; n < size; n++) { in igt_evict_range()
1551 drm_random_reorder(order, size, &prng); in igt_evict_range()
1553 nodes, order, size, in igt_evict_range()
1564 drm_random_reorder(order, size, &prng); in igt_evict_range()
1566 nodes, order, size, in igt_evict_range()
1581 drm_random_reorder(order, size, &prng); in igt_evict_range()
1583 nodes, order, size, in igt_evict_range()
1610 return div64_u64(node->start, node->size); in node_index()
1618 unsigned int size; in igt_topdown() local
1644 for (size = 1; size <= 64; size <<= 1) { in igt_topdown()
1645 drm_mm_init(&mm, 0, size*count); in igt_topdown()
1648 size, 0, n, in igt_topdown()
1650 pr_err("insert failed, size %u step %d\n", size, n); in igt_topdown()
1656 n, nodes[n].start, size); in igt_topdown()
1660 if (!assert_one_hole(&mm, 0, size*(count - n - 1))) in igt_topdown()
1664 if (!assert_continuous(&mm, size)) in igt_topdown()
1680 size, 0, 0, in igt_topdown()
1695 m, n, size, last, node_index(node)); in igt_topdown()
1732 unsigned int size; in igt_bottomup() local
1757 for (size = 1; size <= 64; size <<= 1) { in igt_bottomup()
1758 drm_mm_init(&mm, 0, size*count); in igt_bottomup()
1761 size, 0, n, in igt_bottomup()
1763 pr_err("bottomup insert failed, size %u step %d\n", size, n); in igt_bottomup()
1767 if (!assert_one_hole(&mm, size*(n + 1), size*count)) in igt_bottomup()
1771 if (!assert_continuous(&mm, size)) in igt_bottomup()
1787 size, 0, 0, in igt_bottomup()
1837 rsvd_lo.size = 1; in __igt_once()
1846 rsvd_hi.size = 1; in __igt_once()
1916 node->color, node->start, node->size, in colors_abutt()
1919 list_next_entry(node, node_list)->size); in colors_abutt()
1961 if (node->color != node->size) { in igt_color()
1963 node->size, node->color); in igt_color()
1983 node->size = 1 + 2*count; in igt_color()
1984 node->color = node->size; in igt_color()
1993 last = node->start + node->size; in igt_color()
2005 node->size = n + count; in igt_color()
2006 node->color = node->size; in igt_color()
2026 last = node->start + node->size; in igt_color()
2049 if (node->color != node->size) { in igt_color()
2051 mode->name, node->size, node->color); in igt_color()
2059 div64_u64_rem(node->start, node->size, &rem); in igt_color()
2062 mode->name, node->start, node->size, rem); in igt_color()
2088 unsigned int size, in evict_color() argument
2100 size, alignment, color, in evict_color()
2109 err = drm_mm_insert_node_generic(mm, &tmp, size, alignment, color, in evict_color()
2113 size, alignment, color, err); in evict_color()
2119 if (tmp.start < range_start || tmp.start + tmp.size > range_end) { in evict_color()
2121 tmp.start, tmp.size, range_start, range_end); in evict_color()
2128 if (!assert_node(&tmp, mm, size, alignment, color)) { in evict_color()
2130 tmp.size, size, in evict_color()