Lines Matching +full:mm +full:- +full:0
1 // SPDX-License-Identifier: MIT
31 struct drm_buddy mm; in drm_test_buddy_alloc_range_bias() local
37 mm_size = (SZ_8M-1) & ~(ps-1); /* Multiple roots */ in drm_test_buddy_alloc_range_bias()
41 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_init(&mm, mm_size, ps), in drm_test_buddy_alloc_range_bias()
55 for (i = 0; i < count; i++) { in drm_test_buddy_alloc_range_bias()
65 drm_buddy_alloc_blocks(&mm, bias_start, in drm_test_buddy_alloc_range_bias()
69 "buddy_alloc failed with bias(%x-%x), size=%u, ps=%u\n", in drm_test_buddy_alloc_range_bias()
74 drm_buddy_alloc_blocks(&mm, bias_start, in drm_test_buddy_alloc_range_bias()
78 "buddy_alloc didn't fail with bias(%x-%x), size=%u, ps=%u\n", in drm_test_buddy_alloc_range_bias()
83 drm_buddy_alloc_blocks(&mm, bias_start + ps, in drm_test_buddy_alloc_range_bias()
87 "buddy_alloc didn't fail with bias(%x-%x), size=%u, ps=%u\n", in drm_test_buddy_alloc_range_bias()
92 drm_buddy_alloc_blocks(&mm, bias_start + ps, in drm_test_buddy_alloc_range_bias()
93 bias_end - ps, in drm_test_buddy_alloc_range_bias()
97 "buddy_alloc h didn't fail with bias(%x-%x), size=%u, ps=%u\n", in drm_test_buddy_alloc_range_bias()
98 bias_start + ps, bias_end - ps, bias_size >> 1, bias_size >> 1); in drm_test_buddy_alloc_range_bias()
102 drm_buddy_alloc_blocks(&mm, bias_start, in drm_test_buddy_alloc_range_bias()
106 "buddy_alloc i failed with bias(%x-%x), size=%u, ps=%u\n", in drm_test_buddy_alloc_range_bias()
108 drm_buddy_free_list(&mm, &tmp, 0); in drm_test_buddy_alloc_range_bias()
112 drm_buddy_alloc_blocks(&mm, bias_start, in drm_test_buddy_alloc_range_bias()
116 "buddy_alloc failed with bias(%x-%x), size=%u, ps=%u\n", in drm_test_buddy_alloc_range_bias()
118 drm_buddy_free_list(&mm, &tmp, 0); in drm_test_buddy_alloc_range_bias()
124 drm_buddy_alloc_blocks(&mm, bias_start, in drm_test_buddy_alloc_range_bias()
128 "buddy_alloc failed with bias(%x-%x), size=%u, ps=%u\n", in drm_test_buddy_alloc_range_bias()
131 bias_rem -= size; in drm_test_buddy_alloc_range_bias()
134 drm_buddy_alloc_blocks(&mm, bias_start, in drm_test_buddy_alloc_range_bias()
138 "buddy_alloc didn't fail with bias(%x-%x), size=%u, ps=%u\n", in drm_test_buddy_alloc_range_bias()
147 drm_buddy_alloc_blocks(&mm, bias_start, in drm_test_buddy_alloc_range_bias()
151 "buddy_alloc failed with bias(%x-%x), size=%u, ps=%u\n", in drm_test_buddy_alloc_range_bias()
158 drm_buddy_free_list(&mm, &tmp, 0); in drm_test_buddy_alloc_range_bias()
165 drm_buddy_free_list(&mm, &allocated, 0); in drm_test_buddy_alloc_range_bias()
166 drm_buddy_fini(&mm); in drm_test_buddy_alloc_range_bias()
169 * Something more free-form. Idea is to pick a random starting bias in drm_test_buddy_alloc_range_bias()
177 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_init(&mm, mm_size, ps), in drm_test_buddy_alloc_range_bias()
180 bias_start = round_up(prandom_u32_state(&prng) % (mm_size - ps), ps); in drm_test_buddy_alloc_range_bias()
181 bias_end = round_up(bias_start + prandom_u32_state(&prng) % (mm_size - bias_start), ps); in drm_test_buddy_alloc_range_bias()
183 bias_rem = bias_end - bias_start; in drm_test_buddy_alloc_range_bias()
189 drm_buddy_alloc_blocks(&mm, bias_start, in drm_test_buddy_alloc_range_bias()
193 "buddy_alloc failed with bias(%x-%x), size=%u, ps=%u\n", in drm_test_buddy_alloc_range_bias()
195 bias_rem -= size; in drm_test_buddy_alloc_range_bias()
206 bias_start -= round_up(prandom_u32_state(&prng) % bias_start, ps); in drm_test_buddy_alloc_range_bias()
208 bias_end += round_up(prandom_u32_state(&prng) % (mm_size - bias_end), ps); in drm_test_buddy_alloc_range_bias()
210 bias_rem += old_bias_start - bias_start; in drm_test_buddy_alloc_range_bias()
211 bias_rem += bias_end - old_bias_end; in drm_test_buddy_alloc_range_bias()
215 KUNIT_ASSERT_EQ(test, bias_start, 0); in drm_test_buddy_alloc_range_bias()
218 drm_buddy_alloc_blocks(&mm, bias_start, bias_end, in drm_test_buddy_alloc_range_bias()
222 "buddy_alloc passed with bias(%x-%x), size=%u\n", in drm_test_buddy_alloc_range_bias()
225 drm_buddy_free_list(&mm, &allocated, 0); in drm_test_buddy_alloc_range_bias()
226 drm_buddy_fini(&mm); in drm_test_buddy_alloc_range_bias()
235 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_init(&mm, mm_size, ps), in drm_test_buddy_alloc_range_bias()
238 bias_start = round_up(prandom_u32_state(&prng) % (mm_size - ps), ps); in drm_test_buddy_alloc_range_bias()
239 bias_end = round_up(bias_start + prandom_u32_state(&prng) % (mm_size - bias_start), ps); in drm_test_buddy_alloc_range_bias()
241 bias_rem = bias_end - bias_start; in drm_test_buddy_alloc_range_bias()
247 drm_buddy_alloc_blocks(&mm, bias_start, in drm_test_buddy_alloc_range_bias()
251 "buddy_alloc failed with bias(%x-%x), size=%u, ps=%u\n", in drm_test_buddy_alloc_range_bias()
257 drm_buddy_free_list(&mm, &allocated, 0); in drm_test_buddy_alloc_range_bias()
258 drm_buddy_fini(&mm); in drm_test_buddy_alloc_range_bias()
263 unsigned long n_pages, total, i = 0; in drm_test_buddy_alloc_clear()
268 struct drm_buddy mm; in drm_test_buddy_alloc_clear() local
275 KUNIT_EXPECT_FALSE(test, drm_buddy_init(&mm, mm_size, ps)); in drm_test_buddy_alloc_clear()
277 KUNIT_EXPECT_EQ(test, mm.max_order, max_order); in drm_test_buddy_alloc_clear()
281 * returning those pages as non-dirty and randomly alternate between in drm_test_buddy_alloc_clear()
282 * requesting dirty and non-dirty pages (not going over the limit in drm_test_buddy_alloc_clear()
283 * we freed as non-dirty), putting that into two separate lists. in drm_test_buddy_alloc_clear()
288 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_alloc_blocks(&mm, 0, mm_size, in drm_test_buddy_alloc_clear()
292 drm_buddy_free_list(&mm, &allocated, DRM_BUDDY_CLEARED); in drm_test_buddy_alloc_clear()
300 if (slot == 0) { in drm_test_buddy_alloc_clear()
302 flags = 0; in drm_test_buddy_alloc_clear()
308 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_alloc_blocks(&mm, 0, mm_size, in drm_test_buddy_alloc_clear()
320 drm_buddy_free_list(&mm, &clean, DRM_BUDDY_CLEARED); in drm_test_buddy_alloc_clear()
324 * The allocation should never fail with reasonable page-size. in drm_test_buddy_alloc_clear()
326 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_alloc_blocks(&mm, 0, mm_size, in drm_test_buddy_alloc_clear()
331 drm_buddy_free_list(&mm, &clean, DRM_BUDDY_CLEARED); in drm_test_buddy_alloc_clear()
332 drm_buddy_free_list(&mm, &dirty, 0); in drm_test_buddy_alloc_clear()
333 drm_buddy_fini(&mm); in drm_test_buddy_alloc_clear()
335 KUNIT_EXPECT_FALSE(test, drm_buddy_init(&mm, mm_size, ps)); in drm_test_buddy_alloc_clear()
338 * Create a new mm. Intentionally fragment the address space by creating in drm_test_buddy_alloc_clear()
346 i = 0; in drm_test_buddy_alloc_clear()
352 if (slot == 0) in drm_test_buddy_alloc_clear()
357 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_alloc_blocks(&mm, 0, mm_size, in drm_test_buddy_alloc_clear()
358 ps, ps, list, 0), in drm_test_buddy_alloc_clear()
362 drm_buddy_free_list(&mm, &clean, DRM_BUDDY_CLEARED); in drm_test_buddy_alloc_clear()
363 drm_buddy_free_list(&mm, &dirty, 0); in drm_test_buddy_alloc_clear()
369 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_alloc_blocks(&mm, 0, mm_size, in drm_test_buddy_alloc_clear()
373 total = 0; in drm_test_buddy_alloc_clear()
377 total += drm_buddy_block_size(&mm, block); in drm_test_buddy_alloc_clear()
381 drm_buddy_free_list(&mm, &allocated, 0); in drm_test_buddy_alloc_clear()
384 drm_buddy_fini(&mm); in drm_test_buddy_alloc_clear()
387 * Create a new mm with a non power-of-two size. Allocate a random size from each in drm_test_buddy_alloc_clear()
388 * root, free as cleared and then call fini. This will ensure the multi-root in drm_test_buddy_alloc_clear()
391 mm_size = (SZ_4K << max_order) + (SZ_4K << (max_order - 2)); in drm_test_buddy_alloc_clear()
393 KUNIT_EXPECT_FALSE(test, drm_buddy_init(&mm, mm_size, ps)); in drm_test_buddy_alloc_clear()
394 KUNIT_EXPECT_EQ(test, mm.max_order, max_order); in drm_test_buddy_alloc_clear()
395 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_alloc_blocks(&mm, 0, SZ_4K << max_order, in drm_test_buddy_alloc_clear()
399 drm_buddy_free_list(&mm, &allocated, DRM_BUDDY_CLEARED); in drm_test_buddy_alloc_clear()
400 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_alloc_blocks(&mm, 0, SZ_4K << max_order, in drm_test_buddy_alloc_clear()
404 drm_buddy_free_list(&mm, &allocated, DRM_BUDDY_CLEARED); in drm_test_buddy_alloc_clear()
405 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_alloc_blocks(&mm, SZ_4K << max_order, mm_size, in drm_test_buddy_alloc_clear()
409 drm_buddy_free_list(&mm, &allocated, DRM_BUDDY_CLEARED); in drm_test_buddy_alloc_clear()
410 drm_buddy_fini(&mm); in drm_test_buddy_alloc_clear()
418 struct drm_buddy mm; in drm_test_buddy_alloc_contiguous() local
424 KUNIT_EXPECT_FALSE(test, drm_buddy_init(&mm, mm_size, ps)); in drm_test_buddy_alloc_contiguous()
434 i = 0; in drm_test_buddy_alloc_contiguous()
440 if (slot == 0) in drm_test_buddy_alloc_contiguous()
447 drm_buddy_alloc_blocks(&mm, 0, mm_size, in drm_test_buddy_alloc_contiguous()
448 ps, ps, list, 0), in drm_test_buddy_alloc_contiguous()
453 KUNIT_ASSERT_TRUE_MSG(test, drm_buddy_alloc_blocks(&mm, 0, mm_size, in drm_test_buddy_alloc_contiguous()
458 drm_buddy_free_list(&mm, &middle, 0); in drm_test_buddy_alloc_contiguous()
459 KUNIT_ASSERT_TRUE_MSG(test, drm_buddy_alloc_blocks(&mm, 0, mm_size, in drm_test_buddy_alloc_contiguous()
463 KUNIT_ASSERT_TRUE_MSG(test, drm_buddy_alloc_blocks(&mm, 0, mm_size, in drm_test_buddy_alloc_contiguous()
468 drm_buddy_free_list(&mm, &right, 0); in drm_test_buddy_alloc_contiguous()
469 KUNIT_ASSERT_TRUE_MSG(test, drm_buddy_alloc_blocks(&mm, 0, mm_size, in drm_test_buddy_alloc_contiguous()
478 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_alloc_blocks(&mm, 0, mm_size, in drm_test_buddy_alloc_contiguous()
483 drm_buddy_free_list(&mm, &left, 0); in drm_test_buddy_alloc_contiguous()
484 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_alloc_blocks(&mm, 0, mm_size, in drm_test_buddy_alloc_contiguous()
489 total = 0; in drm_test_buddy_alloc_contiguous()
491 total += drm_buddy_block_size(&mm, block); in drm_test_buddy_alloc_contiguous()
495 drm_buddy_free_list(&mm, &allocated, 0); in drm_test_buddy_alloc_contiguous()
496 drm_buddy_fini(&mm); in drm_test_buddy_alloc_contiguous()
501 u64 mm_size, size, start = 0; in drm_test_buddy_alloc_pathological()
504 unsigned long flags = 0; in drm_test_buddy_alloc_pathological()
506 struct drm_buddy mm; in drm_test_buddy_alloc_pathological() local
512 * Create a pot-sized mm, then allocate one of each possible in drm_test_buddy_alloc_pathological()
513 * order within. This should leave the mm with exactly one in drm_test_buddy_alloc_pathological()
515 * Eventually we will have a fully 50% fragmented mm. in drm_test_buddy_alloc_pathological()
519 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_init(&mm, mm_size, SZ_4K), in drm_test_buddy_alloc_pathological()
522 KUNIT_EXPECT_EQ(test, mm.max_order, max_order); in drm_test_buddy_alloc_pathological()
524 for (top = max_order; top; top--) { in drm_test_buddy_alloc_pathological()
528 list_del(&block->link); in drm_test_buddy_alloc_pathological()
529 drm_buddy_free_block(&mm, block); in drm_test_buddy_alloc_pathological()
532 for (order = top; order--;) { in drm_test_buddy_alloc_pathological()
533 size = get_size(order, mm.chunk_size); in drm_test_buddy_alloc_pathological()
534 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_alloc_blocks(&mm, start, in drm_test_buddy_alloc_pathological()
537 "buddy_alloc hit -ENOMEM with order=%d, top=%d\n", in drm_test_buddy_alloc_pathological()
543 list_move_tail(&block->link, &blocks); in drm_test_buddy_alloc_pathological()
546 /* There should be one final page for this sub-allocation */ in drm_test_buddy_alloc_pathological()
547 size = get_size(0, mm.chunk_size); in drm_test_buddy_alloc_pathological()
548 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_alloc_blocks(&mm, start, mm_size, in drm_test_buddy_alloc_pathological()
550 "buddy_alloc hit -ENOMEM for hole\n"); in drm_test_buddy_alloc_pathological()
555 list_move_tail(&block->link, &holes); in drm_test_buddy_alloc_pathological()
557 size = get_size(top, mm.chunk_size); in drm_test_buddy_alloc_pathological()
558 KUNIT_ASSERT_TRUE_MSG(test, drm_buddy_alloc_blocks(&mm, start, mm_size, in drm_test_buddy_alloc_pathological()
560 "buddy_alloc unexpectedly succeeded at top-order %d/%d, it should be full!", in drm_test_buddy_alloc_pathological()
564 drm_buddy_free_list(&mm, &holes, 0); in drm_test_buddy_alloc_pathological()
568 size = get_size(order, mm.chunk_size); in drm_test_buddy_alloc_pathological()
569 KUNIT_ASSERT_TRUE_MSG(test, drm_buddy_alloc_blocks(&mm, start, mm_size, in drm_test_buddy_alloc_pathological()
576 drm_buddy_free_list(&mm, &blocks, 0); in drm_test_buddy_alloc_pathological()
577 drm_buddy_fini(&mm); in drm_test_buddy_alloc_pathological()
582 u64 mm_size, size, start = 0; in drm_test_buddy_alloc_pessimistic()
585 unsigned long flags = 0; in drm_test_buddy_alloc_pessimistic()
586 struct drm_buddy mm; in drm_test_buddy_alloc_pessimistic() local
592 * Create a pot-sized mm, then allocate one of each possible in drm_test_buddy_alloc_pessimistic()
593 * order within. This should leave the mm with exactly one in drm_test_buddy_alloc_pessimistic()
598 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_init(&mm, mm_size, SZ_4K), in drm_test_buddy_alloc_pessimistic()
601 KUNIT_EXPECT_EQ(test, mm.max_order, max_order); in drm_test_buddy_alloc_pessimistic()
603 for (order = 0; order < max_order; order++) { in drm_test_buddy_alloc_pessimistic()
604 size = get_size(order, mm.chunk_size); in drm_test_buddy_alloc_pessimistic()
605 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_alloc_blocks(&mm, start, mm_size, in drm_test_buddy_alloc_pessimistic()
607 "buddy_alloc hit -ENOMEM with order=%d\n", in drm_test_buddy_alloc_pessimistic()
613 list_move_tail(&block->link, &blocks); in drm_test_buddy_alloc_pessimistic()
617 size = get_size(0, mm.chunk_size); in drm_test_buddy_alloc_pessimistic()
618 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_alloc_blocks(&mm, start, mm_size, in drm_test_buddy_alloc_pessimistic()
620 "buddy_alloc hit -ENOMEM on final alloc\n"); in drm_test_buddy_alloc_pessimistic()
625 list_move_tail(&block->link, &blocks); in drm_test_buddy_alloc_pessimistic()
628 for (order = max_order; order--;) { in drm_test_buddy_alloc_pessimistic()
629 size = get_size(order, mm.chunk_size); in drm_test_buddy_alloc_pessimistic()
630 KUNIT_ASSERT_TRUE_MSG(test, drm_buddy_alloc_blocks(&mm, start, mm_size, in drm_test_buddy_alloc_pessimistic()
636 list_del(&block->link); in drm_test_buddy_alloc_pessimistic()
637 drm_buddy_free_block(&mm, block); in drm_test_buddy_alloc_pessimistic()
642 list_del(&block->link); in drm_test_buddy_alloc_pessimistic()
643 drm_buddy_free_block(&mm, block); in drm_test_buddy_alloc_pessimistic()
645 size = get_size(order, mm.chunk_size); in drm_test_buddy_alloc_pessimistic()
646 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_alloc_blocks(&mm, start, mm_size, in drm_test_buddy_alloc_pessimistic()
648 "buddy_alloc hit -ENOMEM with order=%d\n", in drm_test_buddy_alloc_pessimistic()
654 list_del(&block->link); in drm_test_buddy_alloc_pessimistic()
655 drm_buddy_free_block(&mm, block); in drm_test_buddy_alloc_pessimistic()
659 /* To confirm, now the whole mm should be available */ in drm_test_buddy_alloc_pessimistic()
660 size = get_size(max_order, mm.chunk_size); in drm_test_buddy_alloc_pessimistic()
661 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_alloc_blocks(&mm, start, mm_size, in drm_test_buddy_alloc_pessimistic()
663 "buddy_alloc (realloc) hit -ENOMEM with order=%d\n", in drm_test_buddy_alloc_pessimistic()
669 list_del(&block->link); in drm_test_buddy_alloc_pessimistic()
670 drm_buddy_free_block(&mm, block); in drm_test_buddy_alloc_pessimistic()
671 drm_buddy_free_list(&mm, &blocks, 0); in drm_test_buddy_alloc_pessimistic()
672 drm_buddy_fini(&mm); in drm_test_buddy_alloc_pessimistic()
677 u64 mm_size, size, start = 0; in drm_test_buddy_alloc_optimistic()
679 unsigned long flags = 0; in drm_test_buddy_alloc_optimistic()
681 struct drm_buddy mm; in drm_test_buddy_alloc_optimistic() local
687 * Create a mm with one block of each order available, and in drm_test_buddy_alloc_optimistic()
691 mm_size = SZ_4K * ((1 << (max_order + 1)) - 1); in drm_test_buddy_alloc_optimistic()
693 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_init(&mm, mm_size, SZ_4K), in drm_test_buddy_alloc_optimistic()
696 KUNIT_EXPECT_EQ(test, mm.max_order, max_order); in drm_test_buddy_alloc_optimistic()
698 for (order = 0; order <= max_order; order++) { in drm_test_buddy_alloc_optimistic()
699 size = get_size(order, mm.chunk_size); in drm_test_buddy_alloc_optimistic()
700 KUNIT_ASSERT_FALSE_MSG(test, drm_buddy_alloc_blocks(&mm, start, mm_size, in drm_test_buddy_alloc_optimistic()
702 "buddy_alloc hit -ENOMEM with order=%d\n", in drm_test_buddy_alloc_optimistic()
708 list_move_tail(&block->link, &blocks); in drm_test_buddy_alloc_optimistic()
712 size = get_size(0, mm.chunk_size); in drm_test_buddy_alloc_optimistic()
713 KUNIT_ASSERT_TRUE_MSG(test, drm_buddy_alloc_blocks(&mm, start, mm_size, in drm_test_buddy_alloc_optimistic()
717 drm_buddy_free_list(&mm, &blocks, 0); in drm_test_buddy_alloc_optimistic()
718 drm_buddy_fini(&mm); in drm_test_buddy_alloc_optimistic()
723 u64 size = U64_MAX, start = 0; in drm_test_buddy_alloc_limit()
725 unsigned long flags = 0; in drm_test_buddy_alloc_limit()
727 struct drm_buddy mm; in drm_test_buddy_alloc_limit() local
729 KUNIT_EXPECT_FALSE(test, drm_buddy_init(&mm, size, SZ_4K)); in drm_test_buddy_alloc_limit()
731 KUNIT_EXPECT_EQ_MSG(test, mm.max_order, DRM_BUDDY_MAX_ORDER, in drm_test_buddy_alloc_limit()
732 "mm.max_order(%d) != %d\n", mm.max_order, in drm_test_buddy_alloc_limit()
735 size = mm.chunk_size << mm.max_order; in drm_test_buddy_alloc_limit()
736 KUNIT_EXPECT_FALSE(test, drm_buddy_alloc_blocks(&mm, start, size, size, in drm_test_buddy_alloc_limit()
737 mm.chunk_size, &allocated, flags)); in drm_test_buddy_alloc_limit()
742 KUNIT_EXPECT_EQ_MSG(test, drm_buddy_block_order(block), mm.max_order, in drm_test_buddy_alloc_limit()
744 drm_buddy_block_order(block), mm.max_order); in drm_test_buddy_alloc_limit()
746 KUNIT_EXPECT_EQ_MSG(test, drm_buddy_block_size(&mm, block), in drm_test_buddy_alloc_limit()
747 BIT_ULL(mm.max_order) * mm.chunk_size, in drm_test_buddy_alloc_limit()
749 drm_buddy_block_size(&mm, block), in drm_test_buddy_alloc_limit()
750 BIT_ULL(mm.max_order) * mm.chunk_size); in drm_test_buddy_alloc_limit()
752 drm_buddy_free_list(&mm, &allocated, 0); in drm_test_buddy_alloc_limit()
753 drm_buddy_fini(&mm); in drm_test_buddy_alloc_limit()
761 kunit_info(suite, "Testing DRM buddy manager, with random_seed=0x%x\n", in drm_buddy_suite_init()
764 return 0; in drm_buddy_suite_init()