Lines Matching refs:size
105 static bool assert_continuous(const struct drm_mm *mm, u64 size) in assert_continuous() argument
123 if (node->size != size) { in assert_continuous()
125 n, size, node->size); in assert_continuous()
135 drm_mm_for_each_node_in_range(check, mm, addr, addr + size) { in assert_continuous()
145 addr, size); in assert_continuous()
149 addr += size; in assert_continuous()
168 u64 size, u64 alignment, unsigned long color) in assert_node() argument
177 if (node->size != size) { in assert_node()
179 node->size, size); in assert_node()
204 const unsigned int size = 4096; in igt_init() local
217 drm_mm_init(&mm, 0, size); in igt_init()
229 if (!assert_one_hole(&mm, 0, size)) { in igt_init()
236 tmp.size = size; in igt_init()
251 if (!assert_one_hole(&mm, 0, size)) { in igt_init()
277 nodes[0].size = 1024; in igt_debug()
281 nodes[0].start, nodes[0].size); in igt_debug()
285 nodes[1].size = 1024; in igt_debug()
286 nodes[1].start = 4096 - 512 - nodes[1].size; in igt_debug()
290 nodes[1].start, nodes[1].size); in igt_debug()
299 u64 start, u64 size) in set_node() argument
302 node->size = size; in set_node()
316 node->start, node->size); in expect_reserve_fail()
320 err, -ENOSPC, node->start, node->size); in expect_reserve_fail()
327 u64 size) in check_reserve_boundaries() argument
330 u64 start, size; in check_reserve_boundaries() member
335 B(-size, 0), in check_reserve_boundaries()
336 B(size, 0), in check_reserve_boundaries()
337 B(size * count, 0), in check_reserve_boundaries()
338 B(-size, size), in check_reserve_boundaries()
339 B(-size, -size), in check_reserve_boundaries()
340 B(-size, 2*size), in check_reserve_boundaries()
341 B(0, -size), in check_reserve_boundaries()
342 B(size, -size), in check_reserve_boundaries()
343 B(count*size, size), in check_reserve_boundaries()
344 B(count*size, -size), in check_reserve_boundaries()
345 B(count*size, count*size), in check_reserve_boundaries()
346 B(count*size, -count*size), in check_reserve_boundaries()
347 B(count*size, -(count+1)*size), in check_reserve_boundaries()
348 B((count+1)*size, size), in check_reserve_boundaries()
349 B((count+1)*size, -size), in check_reserve_boundaries()
350 B((count+1)*size, -2*size), in check_reserve_boundaries()
360 boundaries[n].size))) { in check_reserve_boundaries()
362 n, boundaries[n].name, count, size); in check_reserve_boundaries()
370 static int __igt_reserve(unsigned int count, u64 size) in __igt_reserve() argument
385 DRM_MM_BUG_ON(!size); in __igt_reserve()
397 drm_mm_init(&mm, 0, count * size); in __igt_reserve()
399 if (!check_reserve_boundaries(&mm, count, size)) in __igt_reserve()
403 nodes[n].start = order[n] * size; in __igt_reserve()
404 nodes[n].size = size; in __igt_reserve()
425 if (!assert_continuous(&mm, size)) in __igt_reserve()
432 set_node(&tmp, order[n] * size, 1))) in __igt_reserve()
446 if (!assert_continuous(&mm, size)) in __igt_reserve()
451 if (!expect_reserve_fail(&mm, set_node(&tmp, 0, size*count))) in __igt_reserve()
457 size * n, in __igt_reserve()
458 size * (count - n)))) in __igt_reserve()
482 if (!assert_continuous(&mm, size)) in __igt_reserve()
504 u64 size = BIT_ULL(n); in igt_reserve() local
506 ret = __igt_reserve(count, size - 1); in igt_reserve()
510 ret = __igt_reserve(count, size); in igt_reserve()
514 ret = __igt_reserve(count, size + 1); in igt_reserve()
525 u64 size, u64 alignment, unsigned long color, in expect_insert() argument
531 size, alignment, color, in expect_insert()
535 size, alignment, color, mode->name, err); in expect_insert()
539 if (!assert_node(node, mm, size, alignment, color)) { in expect_insert()
547 static bool expect_insert_fail(struct drm_mm *mm, u64 size) in expect_insert_fail() argument
552 err = drm_mm_insert_node(mm, &tmp, size); in expect_insert_fail()
558 tmp.start, tmp.size); in expect_insert_fail()
562 err, -ENOSPC, size); in expect_insert_fail()
567 static int __igt_insert(unsigned int count, u64 size, bool replace) in __igt_insert() argument
579 DRM_MM_BUG_ON(!size); in __igt_insert()
591 drm_mm_init(&mm, 0, count * size); in __igt_insert()
599 if (!expect_insert(&mm, node, size, 0, n, mode)) { in __igt_insert()
601 mode->name, size, n); in __igt_insert()
613 if (!assert_node(&nodes[n], &mm, size, 0, n)) { in __igt_insert()
615 size, n); in __igt_insert()
621 tmp.start, size, in __igt_insert()
622 nodes[n].start, nodes[n].size); in __igt_insert()
629 if (!assert_continuous(&mm, size)) in __igt_insert()
633 if (!expect_insert_fail(&mm, size)) in __igt_insert()
641 if (!expect_insert(&mm, &nodes[n], size, 0, n, mode)) { in __igt_insert()
643 mode->name, size, n); in __igt_insert()
653 if (!assert_continuous(&mm, size)) in __igt_insert()
666 if (!expect_insert(&mm, node, size, 0, n, mode)) { in __igt_insert()
668 mode->name, size, n); in __igt_insert()
675 if (!assert_continuous(&mm, size)) in __igt_insert()
678 if (!expect_insert_fail(&mm, size)) in __igt_insert()
708 u64 size = BIT_ULL(n); in igt_insert() local
710 ret = __igt_insert(count, size - 1, false); in igt_insert()
714 ret = __igt_insert(count, size, false); in igt_insert()
718 ret = __igt_insert(count, size + 1, false); in igt_insert()
741 u64 size = BIT_ULL(n); in igt_replace() local
743 ret = __igt_insert(count, size - 1, true); in igt_replace()
747 ret = __igt_insert(count, size, true); in igt_replace()
751 ret = __igt_insert(count, size + 1, true); in igt_replace()
762 u64 size, u64 alignment, unsigned long color, in expect_insert_in_range() argument
769 size, alignment, color, in expect_insert_in_range()
774 size, alignment, color, mode->name, in expect_insert_in_range()
779 if (!assert_node(node, mm, size, alignment, color)) { in expect_insert_in_range()
788 u64 size, in expect_insert_in_range_fail() argument
796 size, 0, 0, in expect_insert_in_range_fail()
804 tmp.start, tmp.size, range_start, range_end); in expect_insert_in_range_fail()
808 err, -ENOSPC, size, range_start, range_end); in expect_insert_in_range_fail()
815 u64 size, in assert_contiguous_in_range() argument
822 if (!expect_insert_in_range_fail(mm, size, start, end)) in assert_contiguous_in_range()
825 n = div64_u64(start + size - 1, size); in assert_contiguous_in_range()
827 if (node->start < start || node->start + node->size > end) { in assert_contiguous_in_range()
829 n, node->start, node->start + node->size, start, end); in assert_contiguous_in_range()
833 if (node->start != n * size) { in assert_contiguous_in_range()
835 n, n * size, node->start); in assert_contiguous_in_range()
839 if (node->size != size) { in assert_contiguous_in_range()
841 n, size, node->size); in assert_contiguous_in_range()
858 node->start, node->size, start); in assert_contiguous_in_range()
867 node->start, node->size, end); in assert_contiguous_in_range()
875 static int __igt_insert_range(unsigned int count, u64 size, u64 start, u64 end) in __igt_insert_range() argument
884 DRM_MM_BUG_ON(!size); in __igt_insert_range()
897 drm_mm_init(&mm, 0, count * size); in __igt_insert_range()
899 start_n = div64_u64(start + size - 1, size); in __igt_insert_range()
900 end_n = div64_u64(end - size, size); in __igt_insert_range()
905 size, size, n, in __igt_insert_range()
908 mode->name, size, n, in __igt_insert_range()
915 if (!assert_contiguous_in_range(&mm, size, start, end)) { in __igt_insert_range()
917 mode->name, start, end, size); in __igt_insert_range()
927 size, size, n, in __igt_insert_range()
940 if (!assert_contiguous_in_range(&mm, size, start, end)) { in __igt_insert_range()
942 mode->name, start, end, size); in __igt_insert_range()
968 const unsigned int size = end - start; in insert_outside_range() local
970 drm_mm_init(&mm, start, size); in insert_outside_range()
975 if (!expect_insert_in_range_fail(&mm, size, in insert_outside_range()
976 start - size/2, start + (size+1)/2)) in insert_outside_range()
979 if (!expect_insert_in_range_fail(&mm, size, in insert_outside_range()
980 end - (size+1)/2, end + size/2)) in insert_outside_range()
983 if (!expect_insert_in_range_fail(&mm, 1, end, end + size)) in insert_outside_range()
1002 const u64 size = BIT_ULL(n); in igt_insert_range() local
1003 const u64 max = count * size; in igt_insert_range()
1005 ret = __igt_insert_range(count, size, 0, max); in igt_insert_range()
1009 ret = __igt_insert_range(count, size, 1, max); in igt_insert_range()
1013 ret = __igt_insert_range(count, size, 0, max - 1); in igt_insert_range()
1017 ret = __igt_insert_range(count, size, 0, max/2); in igt_insert_range()
1021 ret = __igt_insert_range(count, size, max/2, max); in igt_insert_range()
1025 ret = __igt_insert_range(count, size, max/4+1, 3*max/4-1); in igt_insert_range()
1059 u64 size = next_prime_number(prime); in igt_align() local
1062 size, prime, i, in igt_align()
1101 u64 align, size; in igt_align_pot() local
1110 size = BIT_ULL(bit-1) + 1; in igt_align_pot()
1112 size, align, bit, in igt_align_pot()
1146 scan->size, scan->alignment, scan->color); in show_scan()
1161 hole->start, hole->size, hole->color); in show_holes()
1166 next->start, next->size, next->color); in show_holes()
1208 scan->size, count, scan->alignment, scan->color); in evict_nodes()
1277 return assert_continuous(mm, nodes[0].node.size); in evict_nothing()
1326 return assert_continuous(mm, nodes[0].node.size); in evict_everything()
1334 unsigned int size, in evict_something() argument
1345 size, alignment, 0, in evict_something()
1354 err = drm_mm_insert_node_generic(mm, &tmp, size, alignment, 0, in evict_something()
1358 size, alignment); in evict_something()
1364 if (tmp.start < range_start || tmp.start + tmp.size > range_end) { in evict_something()
1366 tmp.start, tmp.size, range_start, range_end); in evict_something()
1370 if (!assert_node(&tmp, mm, size, alignment, 0) || in evict_something()
1373 tmp.size, size, in evict_something()
1392 if (!assert_continuous(mm, nodes[0].node.size)) { in evict_something()
1403 const unsigned int size = 8192; in igt_evict() local
1419 nodes = vzalloc(array_size(size, sizeof(*nodes))); in igt_evict()
1423 order = drm_random_order(size, &prng); in igt_evict()
1428 drm_mm_init(&mm, 0, size); in igt_evict()
1429 for (n = 0; n < size; n++) { in igt_evict()
1439 if (!evict_nothing(&mm, size, nodes)) { in igt_evict()
1443 if (!evict_everything(&mm, size, nodes)) { in igt_evict()
1449 for (n = 1; n <= size; n <<= 1) { in igt_evict()
1450 drm_random_reorder(order, size, &prng); in igt_evict()
1452 nodes, order, size, in igt_evict()
1463 for (n = 1; n < size; n <<= 1) { in igt_evict()
1464 drm_random_reorder(order, size, &prng); in igt_evict()
1466 nodes, order, size, in igt_evict()
1467 size/2, n, in igt_evict()
1471 mode->name, size/2, n); in igt_evict()
1477 for_each_prime_number_from(n, 1, min(size, max_prime)) { in igt_evict()
1478 unsigned int nsize = (size - n + 1) / 2; in igt_evict()
1482 drm_random_reorder(order, size, &prng); in igt_evict()
1484 nodes, order, size, in igt_evict()
1513 const unsigned int size = 8192; in igt_evict_range() local
1514 const unsigned int range_size = size / 2; in igt_evict_range()
1515 const unsigned int range_start = size / 4; in igt_evict_range()
1529 nodes = vzalloc(array_size(size, sizeof(*nodes))); in igt_evict_range()
1533 order = drm_random_order(size, &prng); in igt_evict_range()
1538 drm_mm_init(&mm, 0, size); in igt_evict_range()
1539 for (n = 0; n < size; n++) { in igt_evict_range()
1550 drm_random_reorder(order, size, &prng); in igt_evict_range()
1552 nodes, order, size, in igt_evict_range()
1563 drm_random_reorder(order, size, &prng); in igt_evict_range()
1565 nodes, order, size, in igt_evict_range()
1580 drm_random_reorder(order, size, &prng); in igt_evict_range()
1582 nodes, order, size, in igt_evict_range()
1609 return div64_u64(node->start, node->size); in node_index()
1617 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
1758 for (size = 1; size <= 64; size <<= 1) { in igt_bottomup()
1759 drm_mm_init(&mm, 0, size*count); in igt_bottomup()
1762 size, 0, n, in igt_bottomup()
1764 pr_err("bottomup insert failed, size %u step %d\n", size, n); in igt_bottomup()
1768 if (!assert_one_hole(&mm, size*(n + 1), size*count)) in igt_bottomup()
1772 if (!assert_continuous(&mm, size)) in igt_bottomup()
1788 size, 0, 0, in igt_bottomup()
1838 rsvd_lo.size = 1; in __igt_once()
1847 rsvd_hi.size = 1; in __igt_once()
1917 node->color, node->start, node->size, in colors_abutt()
1920 list_next_entry(node, node_list)->size); in colors_abutt()
1962 if (node->color != node->size) { in igt_color()
1964 node->size, node->color); in igt_color()
1984 node->size = 1 + 2*count; in igt_color()
1985 node->color = node->size; in igt_color()
1994 last = node->start + node->size; in igt_color()
2006 node->size = n + count; in igt_color()
2007 node->color = node->size; in igt_color()
2027 last = node->start + node->size; in igt_color()
2050 if (node->color != node->size) { in igt_color()
2052 mode->name, node->size, node->color); in igt_color()
2060 div64_u64_rem(node->start, node->size, &rem); in igt_color()
2063 mode->name, node->start, node->size, rem); in igt_color()
2089 unsigned int size, in evict_color() argument
2101 size, alignment, color, in evict_color()
2110 err = drm_mm_insert_node_generic(mm, &tmp, size, alignment, color, in evict_color()
2114 size, alignment, color, err); in evict_color()
2120 if (tmp.start < range_start || tmp.start + tmp.size > range_end) { in evict_color()
2122 tmp.start, tmp.size, range_start, range_end); in evict_color()
2129 if (!assert_node(&tmp, mm, size, alignment, color)) { in evict_color()
2131 tmp.size, size, in evict_color()