Lines Matching refs:test_dev

97  * @test_dev: test device test is being performed under
109 struct kmod_test_device *test_dev;
179 static void kmod_test_done_check(struct kmod_test_device *test_dev,
182 struct test_config *config = &test_dev->config;
184 test_dev->done++;
185 dev_dbg(test_dev->dev, "Done thread count: %u\n", test_dev->done);
187 if (test_dev->done == config->num_threads) {
188 dev_info(test_dev->dev, "Done: %u threads have all run now\n",
189 test_dev->done);
190 dev_info(test_dev->dev, "Last thread to run: %u\n", idx);
191 complete(&test_dev->kthreads_done);
197 struct kmod_test_device *test_dev = info->test_dev;
198 struct test_config *config = &test_dev->config;
220 struct kmod_test_device *test_dev = info->test_dev;
221 struct test_config *config = &test_dev->config;
237 dev_dbg(test_dev->dev, "Ran thread %u\n", info->thread_idx);
241 mutex_lock(&test_dev->thread_mutex);
243 kmod_test_done_check(test_dev, info->thread_idx);
244 mutex_unlock(&test_dev->thread_mutex);
251 struct kmod_test_device *test_dev = info->test_dev;
252 struct test_config *config = &test_dev->config;
263 dev_info(test_dev->dev,
271 dev_info(test_dev->dev, "Sync thread %u fs: %s\n",
291 static void tally_up_work(struct kmod_test_device *test_dev)
293 struct test_config *config = &test_dev->config;
299 mutex_lock(&test_dev->thread_mutex);
301 dev_info(test_dev->dev, "Results:\n");
304 info = &test_dev->info[idx];
316 mutex_unlock(&test_dev->thread_mutex);
319 static int try_one_request(struct kmod_test_device *test_dev, unsigned int idx)
321 struct kmod_test_device_info *info = &test_dev->info[idx];
324 mutex_lock(&test_dev->thread_mutex);
327 info->test_dev = test_dev;
332 test_dev->test_is_oom = true;
333 dev_err(test_dev->dev, "Setting up thread %u failed\n", idx);
337 dev_dbg(test_dev->dev, "Kicked off thread %u\n", idx);
339 mutex_unlock(&test_dev->thread_mutex);
345 mutex_unlock(&test_dev->thread_mutex);
350 static void test_dev_kmod_stop_tests(struct kmod_test_device *test_dev)
352 struct test_config *config = &test_dev->config;
356 dev_info(test_dev->dev, "Ending request_module() tests\n");
358 mutex_lock(&test_dev->thread_mutex);
361 info = &test_dev->info[i];
363 dev_info(test_dev->dev,
379 mutex_unlock(&test_dev->thread_mutex);
388 static int try_requests(struct kmod_test_device *test_dev)
390 struct test_config *config = &test_dev->config;
396 if (test_dev->test_is_oom) {
401 ret = try_one_request(test_dev, idx);
409 test_dev->test_is_oom = false;
410 dev_info(test_dev->dev,
412 wait_for_completion(&test_dev->kthreads_done);
413 tally_up_work(test_dev);
415 test_dev->test_is_oom = true;
416 dev_info(test_dev->dev,
418 test_dev_kmod_stop_tests(test_dev);
425 static int run_test_driver(struct kmod_test_device *test_dev)
427 struct test_config *config = &test_dev->config;
429 dev_info(test_dev->dev, "Test case: %s (%u)\n",
432 dev_info(test_dev->dev, "Test driver to load: %s\n",
434 dev_info(test_dev->dev, "Number of threads to run: %u\n",
436 dev_info(test_dev->dev, "Thread IDs will range from 0 - %u\n",
439 return try_requests(test_dev);
442 static int run_test_fs_type(struct kmod_test_device *test_dev)
444 struct test_config *config = &test_dev->config;
446 dev_info(test_dev->dev, "Test case: %s (%u)\n",
449 dev_info(test_dev->dev, "Test filesystem to load: %s\n",
451 dev_info(test_dev->dev, "Number of threads to run: %u\n",
453 dev_info(test_dev->dev, "Thread IDs will range from 0 - %u\n",
456 return try_requests(test_dev);
463 struct kmod_test_device *test_dev = dev_to_test_dev(dev);
464 struct test_config *config = &test_dev->config;
467 mutex_lock(&test_dev->config_mutex);
498 mutex_unlock(&test_dev->config_mutex);
508 static int __trigger_config_run(struct kmod_test_device *test_dev)
510 struct test_config *config = &test_dev->config;
512 test_dev->done = 0;
516 return run_test_driver(test_dev);
518 return run_test_fs_type(test_dev);
520 dev_warn(test_dev->dev,
527 static int trigger_config_run(struct kmod_test_device *test_dev)
529 struct test_config *config = &test_dev->config;
532 mutex_lock(&test_dev->trigger_mutex);
533 mutex_lock(&test_dev->config_mutex);
535 ret = __trigger_config_run(test_dev);
538 dev_info(test_dev->dev, "General test result: %d\n",
557 mutex_unlock(&test_dev->config_mutex);
558 mutex_unlock(&test_dev->trigger_mutex);
568 struct kmod_test_device *test_dev = dev_to_test_dev(dev);
571 if (test_dev->test_is_oom)
580 ret = trigger_config_run(test_dev);
638 static void kmod_config_free(struct kmod_test_device *test_dev)
642 if (!test_dev)
645 config = &test_dev->config;
647 mutex_lock(&test_dev->config_mutex);
649 mutex_unlock(&test_dev->config_mutex);
656 struct kmod_test_device *test_dev = dev_to_test_dev(dev);
657 struct test_config *config = &test_dev->config;
660 mutex_lock(&test_dev->config_mutex);
666 mutex_unlock(&test_dev->config_mutex);
691 struct kmod_test_device *test_dev = dev_to_test_dev(dev);
692 struct test_config *config = &test_dev->config;
694 return config_test_show_str(&test_dev->config_mutex, buf,
703 struct kmod_test_device *test_dev = dev_to_test_dev(dev);
704 struct test_config *config = &test_dev->config;
707 mutex_lock(&test_dev->config_mutex);
713 mutex_unlock(&test_dev->config_mutex);
722 struct kmod_test_device *test_dev = dev_to_test_dev(dev);
723 struct test_config *config = &test_dev->config;
725 return config_test_show_str(&test_dev->config_mutex, buf,
730 static int trigger_config_run_type(struct kmod_test_device *test_dev,
735 struct test_config *config = &test_dev->config;
737 mutex_lock(&test_dev->config_mutex);
753 mutex_unlock(&test_dev->config_mutex);
759 mutex_unlock(&test_dev->config_mutex);
762 test_dev->test_is_oom = true;
766 test_dev->test_is_oom = false;
768 return trigger_config_run(test_dev);
771 static void free_test_dev_info(struct kmod_test_device *test_dev)
773 vfree(test_dev->info);
774 test_dev->info = NULL;
777 static int kmod_config_sync_info(struct kmod_test_device *test_dev)
779 struct test_config *config = &test_dev->config;
781 free_test_dev_info(test_dev);
782 test_dev->info =
785 if (!test_dev->info)
807 static int __kmod_config_init(struct kmod_test_device *test_dev)
809 struct test_config *config = &test_dev->config;
828 ret = kmod_config_sync_info(test_dev);
832 test_dev->test_is_oom = false;
837 test_dev->test_is_oom = true;
838 WARN_ON(test_dev->test_is_oom);
849 struct kmod_test_device *test_dev = dev_to_test_dev(dev);
852 mutex_lock(&test_dev->trigger_mutex);
853 mutex_lock(&test_dev->config_mutex);
855 ret = __kmod_config_init(test_dev);
867 mutex_unlock(&test_dev->config_mutex);
868 mutex_unlock(&test_dev->trigger_mutex);
874 static int test_dev_config_update_uint_sync(struct kmod_test_device *test_dev,
877 int (*test_sync)(struct kmod_test_device *test_dev))
887 mutex_lock(&test_dev->config_mutex);
892 ret = test_sync(test_dev);
896 ret = test_sync(test_dev);
899 mutex_unlock(&test_dev->config_mutex);
903 mutex_unlock(&test_dev->config_mutex);
908 static int test_dev_config_update_uint_range(struct kmod_test_device *test_dev,
924 mutex_lock(&test_dev->config_mutex);
926 mutex_unlock(&test_dev->config_mutex);
932 static int test_dev_config_update_int(struct kmod_test_device *test_dev,
943 mutex_lock(&test_dev->config_mutex);
945 mutex_unlock(&test_dev->config_mutex);
950 static ssize_t test_dev_config_show_int(struct kmod_test_device *test_dev,
956 mutex_lock(&test_dev->config_mutex);
958 mutex_unlock(&test_dev->config_mutex);
963 static ssize_t test_dev_config_show_uint(struct kmod_test_device *test_dev,
969 mutex_lock(&test_dev->config_mutex);
971 mutex_unlock(&test_dev->config_mutex);
980 struct kmod_test_device *test_dev = dev_to_test_dev(dev);
981 struct test_config *config = &test_dev->config;
983 return test_dev_config_update_int(test_dev, buf, count,
991 struct kmod_test_device *test_dev = dev_to_test_dev(dev);
992 struct test_config *config = &test_dev->config;
994 return test_dev_config_update_uint_sync(test_dev, buf, count,
1003 struct kmod_test_device *test_dev = dev_to_test_dev(dev);
1004 struct test_config *config = &test_dev->config;
1006 return test_dev_config_show_int(test_dev, buf, config->num_threads);
1014 struct kmod_test_device *test_dev = dev_to_test_dev(dev);
1015 struct test_config *config = &test_dev->config;
1017 return test_dev_config_update_uint_range(test_dev, buf, count,
1027 struct kmod_test_device *test_dev = dev_to_test_dev(dev);
1028 struct test_config *config = &test_dev->config;
1030 return test_dev_config_show_uint(test_dev, buf, config->test_case);
1038 struct kmod_test_device *test_dev = dev_to_test_dev(dev);
1039 struct test_config *config = &test_dev->config;
1041 return test_dev_config_show_int(test_dev, buf, config->test_result);
1061 ATTRIBUTE_GROUPS(test_dev);
1063 static int kmod_config_init(struct kmod_test_device *test_dev)
1067 mutex_lock(&test_dev->config_mutex);
1068 ret = __kmod_config_init(test_dev);
1069 mutex_unlock(&test_dev->config_mutex);
1077 struct kmod_test_device *test_dev;
1080 test_dev = vzalloc(sizeof(struct kmod_test_device));
1081 if (!test_dev)
1084 mutex_init(&test_dev->config_mutex);
1085 mutex_init(&test_dev->trigger_mutex);
1086 mutex_init(&test_dev->thread_mutex);
1088 init_completion(&test_dev->kthreads_done);
1090 ret = kmod_config_init(test_dev);
1096 test_dev->dev_idx = idx;
1097 misc_dev = &test_dev->misc_dev;
1107 return test_dev;
1110 free_test_dev_info(test_dev);
1111 kmod_config_free(test_dev);
1113 vfree(test_dev);
1114 test_dev = NULL;
1119 static void free_test_dev_kmod(struct kmod_test_device *test_dev)
1121 if (test_dev) {
1122 kfree_const(test_dev->misc_dev.name);
1123 test_dev->misc_dev.name = NULL;
1124 free_test_dev_info(test_dev);
1125 kmod_config_free(test_dev);
1126 vfree(test_dev);
1127 test_dev = NULL;
1133 struct kmod_test_device *test_dev = NULL;
1144 test_dev = alloc_test_dev_kmod(num_test_devs);
1145 if (!test_dev)
1148 ret = misc_register(&test_dev->misc_dev);
1151 free_test_dev_kmod(test_dev);
1152 test_dev = NULL;
1156 test_dev->dev = test_dev->misc_dev.this_device;
1157 list_add_tail(&test_dev->list, &reg_test_devs);
1158 dev_info(test_dev->dev, "interface ready\n");
1165 return test_dev;
1171 struct kmod_test_device *test_dev;
1174 test_dev = register_test_dev_kmod();
1175 if (!test_dev) {
1188 ret = trigger_config_run_type(test_dev,
1192 ret = trigger_config_run_type(test_dev,
1203 void unregister_test_dev_kmod(struct kmod_test_device *test_dev)
1205 mutex_lock(&test_dev->trigger_mutex);
1206 mutex_lock(&test_dev->config_mutex);
1208 test_dev_kmod_stop_tests(test_dev);
1210 dev_info(test_dev->dev, "removing interface\n");
1211 misc_deregister(&test_dev->misc_dev);
1213 mutex_unlock(&test_dev->config_mutex);
1214 mutex_unlock(&test_dev->trigger_mutex);
1216 free_test_dev_kmod(test_dev);
1221 struct kmod_test_device *test_dev, *tmp;
1224 list_for_each_entry_safe(test_dev, tmp, &reg_test_devs, list) {
1225 list_del(&test_dev->list);
1226 unregister_test_dev_kmod(test_dev);