Resguardo inicial

This commit is contained in:
lastdragon
2026-09-06 12:53:21 -06:00
parent 662efe3c2a
commit ad2088d178
94853 changed files with 43200404 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
# SPDX-License-Identifier: GPL-2.0
gpu_buddy_tests-y = gpu_buddy_test.o gpu_random.o
obj-$(CONFIG_GPU_BUDDY_KUNIT_TEST) += gpu_buddy_tests.o
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,44 @@
// SPDX-License-Identifier: GPL-2.0
#include <linux/bitops.h>
#include <linux/export.h>
#include <linux/kernel.h>
#include <linux/random.h>
#include <linux/slab.h>
#include <linux/types.h>
#include "gpu_random.h"
u32 gpu_prandom_u32_max_state(u32 ep_ro, struct rnd_state *state)
{
return upper_32_bits((u64)prandom_u32_state(state) * ep_ro);
}
EXPORT_SYMBOL(gpu_prandom_u32_max_state);
void gpu_random_reorder(unsigned int *order, unsigned int count,
struct rnd_state *state)
{
unsigned int i, j;
for (i = 0; i < count; ++i) {
BUILD_BUG_ON(sizeof(unsigned int) > sizeof(u32));
j = gpu_prandom_u32_max_state(count, state);
swap(order[i], order[j]);
}
}
EXPORT_SYMBOL(gpu_random_reorder);
unsigned int *gpu_random_order(unsigned int count, struct rnd_state *state)
{
unsigned int *order, i;
order = kmalloc_array(count, sizeof(*order), GFP_KERNEL);
if (!order)
return order;
for (i = 0; i < count; i++)
order[i] = i;
gpu_random_reorder(order, count, state);
return order;
}
EXPORT_SYMBOL(gpu_random_order);
@@ -0,0 +1,28 @@
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __GPU_RANDOM_H__
#define __GPU_RANDOM_H__
/* This is a temporary home for a couple of utility functions that should
* be transposed to lib/ at the earliest convenience.
*/
#include <linux/prandom.h>
#define GPU_RND_STATE_INITIALIZER(seed__) ({ \
struct rnd_state state__; \
prandom_seed_state(&state__, (seed__)); \
state__; \
})
#define GPU_RND_STATE(name__, seed__) \
struct rnd_state name__ = GPU_RND_STATE_INITIALIZER(seed__)
unsigned int *gpu_random_order(unsigned int count,
struct rnd_state *state);
void gpu_random_reorder(unsigned int *order,
unsigned int count,
struct rnd_state *state);
u32 gpu_prandom_u32_max_state(u32 ep_ro,
struct rnd_state *state);
#endif /* !__GPU_RANDOM_H__ */