Lines Matching defs:args
183 uffd_setup_environment(uffd_test_args_t *args, uffd_test_case_t *test,
199 args->mem_type = mem_type;
237 fork_event_args *args = data;
241 while (uffd_read_msg(args->parent_uffd, &msg));
247 args->child_uffd = msg.arg.fork.ufd;
262 static int pin_pages(pin_args *args, void *buffer, size_t size)
271 if (args->pinned)
274 args->gup_fd = open("/sys/kernel/debug/gup_test", O_RDWR);
275 if (args->gup_fd < 0)
278 if (ioctl(args->gup_fd, PIN_LONGTERM_TEST_START, &test)) {
280 close(args->gup_fd);
283 args->pinned = true;
287 static void unpin_pages(pin_args *args)
289 if (!args->pinned)
291 if (ioctl(args->gup_fd, PIN_LONGTERM_TEST_STOP))
293 close(args->gup_fd);
294 args->pinned = false;
299 fork_event_args args = { .parent_uffd = uffd, .child_uffd = -1 };
307 if (pthread_create(&thread, NULL, fork_event_consumer, &args))
314 pin_args args = {};
318 if (test_pin && pin_pages(&args, area_dst, page_size))
334 unpin_pages(&args);
343 if (args.child_uffd < 0)
345 close(args.child_uffd);
351 static void uffd_wp_unpopulated_test(uffd_test_args_t *args)
397 static void uffd_wp_fork_test_common(uffd_test_args_t *args,
431 if (args->mem_type->shared) {
467 static void uffd_wp_fork_test(uffd_test_args_t *args)
469 uffd_wp_fork_test_common(args, false);
472 static void uffd_wp_fork_with_event_test(uffd_test_args_t *args)
474 uffd_wp_fork_test_common(args, true);
477 static void uffd_wp_fork_pin_test_common(uffd_test_args_t *args,
529 static void uffd_wp_fork_pin_test(uffd_test_args_t *args)
531 uffd_wp_fork_pin_test_common(args, false);
534 static void uffd_wp_fork_pin_with_event_test(uffd_test_args_t *args)
536 uffd_wp_fork_pin_test_common(args, true);
559 struct uffd_args args = { 0 };
580 args.apply_wp = test_wp;
581 if (pthread_create(&uffd_mon, NULL, uffd_poll_thread, &args))
615 if (args.missing_faults != 0 || args.minor_faults != nr_pages)
621 void uffd_minor_test(uffd_test_args_t *args)
626 void uffd_minor_wp_test(uffd_test_args_t *args)
631 void uffd_minor_collapse_test(uffd_test_args_t *args)
771 struct uffd_args args = { 0 };
784 args.apply_wp = wp;
785 if (pthread_create(&uffd_mon, NULL, uffd_poll_thread, &args))
809 static void uffd_sigbus_test(uffd_test_args_t *args)
814 static void uffd_sigbus_wp_test(uffd_test_args_t *args)
825 struct uffd_args args = { 0 };
832 args.apply_wp = wp;
833 if (pthread_create(&uffd_mon, NULL, uffd_poll_thread, &args))
851 if (args.missing_faults != nr_pages)
857 static void uffd_events_test(uffd_test_args_t *args)
862 static void uffd_events_wp_test(uffd_test_args_t *args)
930 static void uffd_zeropage_test(uffd_test_args_t *args)
986 struct uffd_msg *msg, struct uffd_args *args)
1011 struct uffd_args args = { 0 };
1021 args.handle_fault = uffd_poison_handle_fault;
1022 if (pthread_create(&uffd_mon, NULL, uffd_poll_thread, &args))
1070 do_register_ioctls_test(uffd_test_args_t *args, bool miss, bool wp, bool minor)
1073 mem_type_t *mem_type = args->mem_type;
1111 static void uffd_register_ioctls_test(uffd_test_args_t *args)
1118 do_register_ioctls_test(args, miss, wp, minor);
1267 uffd_test_args_t args;
1322 if (uffd_setup_environment(&args, test, mem_type,
1327 test->uffd_fn(&args);