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);