// SPDX-License-Identifier: MIT
/*
* Copyright © 2019 Intel Corporation
* Copyright © 2022 Maíra Canal <mairacanal@riseup.net>
*/
#include <kunit/test.h>
#include <linux/prime_numbers.h>
#include <linux/sched/signal.h>
#include <linux/sizes.h>
#include <linux/gpu_buddy.h>
#include "gpu_random.h"
static unsigned int random_seed;
static inline u64 get_size(int order, u64 chunk_size)
{
return (1 << order) * chunk_size;
}
static void gpu_test_buddy_subtree_offset_alignment_stress(struct kunit *test)
{
struct gpu_buddy_block *block;
struct rb_node *node = NULL;
const u64 mm_size = SZ_2M;
const u64 alignments[] = {
SZ_1M,
SZ_512K,
SZ_256K,
SZ_128K,
SZ_64K,
SZ_32K,
SZ_16K,
SZ_8K,
};
struct list_head allocated[ARRAY_SIZE(alignments)];
unsigned int i, max_subtree_align = 0;
int ret, tree, order;
struct gpu_buddy mm;
KUNIT_ASSERT_FALSE_MSG(test, gpu_buddy_init(&mm, mm_size, SZ_4K),
"buddy_init failed\n");
for (i = 0; i < ARRAY_SIZE(allocated); i++)
INIT_LIST_HEAD(&