test_parman        94 lib/test_parman.c 	struct test_parman *test_parman = priv;
test_parman        98 lib/test_parman.c 	prio_array = krealloc(test_parman->prio_array,
test_parman       104 lib/test_parman.c 	old_count = test_parman->prio_array_limit;
test_parman       108 lib/test_parman.c 	test_parman->prio_array = prio_array;
test_parman       109 lib/test_parman.c 	test_parman->prio_array_limit = new_count;
test_parman       116 lib/test_parman.c 	struct test_parman *test_parman = priv;
test_parman       117 lib/test_parman.c 	struct test_parman_item **prio_array = test_parman->prio_array;
test_parman       132 lib/test_parman.c static void test_parman_rnd_init(struct test_parman *test_parman)
test_parman       134 lib/test_parman.c 	prandom_seed_state(&test_parman->rnd, 3141592653589793238ULL);
test_parman       137 lib/test_parman.c static u32 test_parman_rnd_get(struct test_parman *test_parman)
test_parman       139 lib/test_parman.c 	return prandom_u32_state(&test_parman->rnd);
test_parman       142 lib/test_parman.c static unsigned long test_parman_priority_gen(struct test_parman *test_parman)
test_parman       148 lib/test_parman.c 	priority = test_parman_rnd_get(test_parman);
test_parman       153 lib/test_parman.c 		struct test_parman_prio *prio = &test_parman->prios[i];
test_parman       163 lib/test_parman.c static void test_parman_prios_init(struct test_parman *test_parman)
test_parman       168 lib/test_parman.c 		struct test_parman_prio *prio = &test_parman->prios[i];
test_parman       171 lib/test_parman.c 		prio->priority = test_parman_priority_gen(test_parman);
test_parman       172 lib/test_parman.c 		parman_prio_init(test_parman->parman, &prio->parman_prio,
test_parman       177 lib/test_parman.c static void test_parman_prios_fini(struct test_parman *test_parman)
test_parman       182 lib/test_parman.c 		struct test_parman_prio *prio = &test_parman->prios[i];
test_parman       188 lib/test_parman.c static void test_parman_items_init(struct test_parman *test_parman)
test_parman       193 lib/test_parman.c 		struct test_parman_item *item = &test_parman->items[i];
test_parman       194 lib/test_parman.c 		unsigned int prio_index = test_parman_rnd_get(test_parman) &
test_parman       198 lib/test_parman.c 		item->prio = &test_parman->prios[prio_index];
test_parman       202 lib/test_parman.c static void test_parman_items_fini(struct test_parman *test_parman)
test_parman       207 lib/test_parman.c 		struct test_parman_item *item = &test_parman->items[i];
test_parman       211 lib/test_parman.c 		parman_item_remove(test_parman->parman,
test_parman       217 lib/test_parman.c static struct test_parman *test_parman_create(const struct parman_ops *ops)
test_parman       219 lib/test_parman.c 	struct test_parman *test_parman;
test_parman       222 lib/test_parman.c 	test_parman = kzalloc(sizeof(*test_parman), GFP_KERNEL);
test_parman       223 lib/test_parman.c 	if (!test_parman)
test_parman       225 lib/test_parman.c 	err = test_parman_resize(test_parman, TEST_PARMAN_BASE_COUNT);
test_parman       228 lib/test_parman.c 	test_parman->parman = parman_create(ops, test_parman);
test_parman       229 lib/test_parman.c 	if (!test_parman->parman) {
test_parman       233 lib/test_parman.c 	test_parman_rnd_init(test_parman);
test_parman       234 lib/test_parman.c 	test_parman_prios_init(test_parman);
test_parman       235 lib/test_parman.c 	test_parman_items_init(test_parman);
test_parman       236 lib/test_parman.c 	test_parman->run_budget = TEST_PARMAN_RUN_BUDGET;
test_parman       237 lib/test_parman.c 	return test_parman;
test_parman       240 lib/test_parman.c 	test_parman_resize(test_parman, 0);
test_parman       242 lib/test_parman.c 	kfree(test_parman);
test_parman       246 lib/test_parman.c static void test_parman_destroy(struct test_parman *test_parman)
test_parman       248 lib/test_parman.c 	test_parman_items_fini(test_parman);
test_parman       249 lib/test_parman.c 	test_parman_prios_fini(test_parman);
test_parman       250 lib/test_parman.c 	parman_destroy(test_parman->parman);
test_parman       251 lib/test_parman.c 	test_parman_resize(test_parman, 0);
test_parman       252 lib/test_parman.c 	kfree(test_parman);
test_parman       255 lib/test_parman.c static bool test_parman_run_check_budgets(struct test_parman *test_parman)
test_parman       257 lib/test_parman.c 	if (test_parman->run_budget-- == 0)
test_parman       259 lib/test_parman.c 	if (test_parman->bulk_budget-- != 0)
test_parman       262 lib/test_parman.c 	test_parman->bulk_budget = test_parman_rnd_get(test_parman) &
test_parman       264 lib/test_parman.c 	test_parman->bulk_noop = test_parman_rnd_get(test_parman) & 1;
test_parman       268 lib/test_parman.c static int test_parman_run(struct test_parman *test_parman)
test_parman       270 lib/test_parman.c 	unsigned int i = test_parman_rnd_get(test_parman);
test_parman       273 lib/test_parman.c 	while (test_parman_run_check_budgets(test_parman)) {
test_parman       275 lib/test_parman.c 		struct test_parman_item *item = &test_parman->items[item_index];
test_parman       277 lib/test_parman.c 		if (test_parman->bulk_noop)
test_parman       281 lib/test_parman.c 			err = parman_item_add(test_parman->parman,
test_parman       286 lib/test_parman.c 			test_parman->prio_array[item->parman_item.index] = item;
test_parman       287 lib/test_parman.c 			test_parman->used_items++;
test_parman       289 lib/test_parman.c 			test_parman->prio_array[item->parman_item.index] = NULL;
test_parman       290 lib/test_parman.c 			parman_item_remove(test_parman->parman,
test_parman       293 lib/test_parman.c 			test_parman->used_items--;
test_parman       300 lib/test_parman.c static int test_parman_check_array(struct test_parman *test_parman,
test_parman       308 lib/test_parman.c 	if (test_parman->prio_array_limit < TEST_PARMAN_BASE_COUNT) {
test_parman       310 lib/test_parman.c 		       test_parman->prio_array_limit, TEST_PARMAN_BASE_COUNT);
test_parman       314 lib/test_parman.c 	for (i = 0; i < test_parman->prio_array_limit; i++) {
test_parman       315 lib/test_parman.c 		struct test_parman_item *item = test_parman->prio_array[i];
test_parman       343 lib/test_parman.c 	if (used_items != test_parman->used_items) {
test_parman       345 lib/test_parman.c 		       used_items, test_parman->used_items);
test_parman       362 lib/test_parman.c 	struct test_parman *test_parman;
test_parman       365 lib/test_parman.c 	test_parman = test_parman_create(&test_parman_lsort_ops);
test_parman       366 lib/test_parman.c 	if (IS_ERR(test_parman))
test_parman       367 lib/test_parman.c 		return PTR_ERR(test_parman);
test_parman       369 lib/test_parman.c 	err = test_parman_run(test_parman);
test_parman       373 lib/test_parman.c 	err = test_parman_check_array(test_parman, false);
test_parman       377 lib/test_parman.c 	test_parman_destroy(test_parman);