| /tools/testing/selftests/kvm/lib/ |
| A D | userfaultfd_util.c | 29 int uffd = reader_args->uffd; in uffd_handler_thread_fn() local 73 r = read(uffd, &msg, sizeof(msg)); in uffd_handler_thread_fn() 109 int uffd; in uffd_setup_demand_paging() local 154 uffd_desc->uffd = uffd; in uffd_setup_demand_paging() 165 uffd_desc->reader_args[i].uffd = uffd; in uffd_setup_demand_paging() 193 close(uffd->uffd); in uffd_stop_demand_paging() 196 close(uffd->pipefds[i]); in uffd_stop_demand_paging() 200 free(uffd->pipefds); in uffd_stop_demand_paging() 201 free(uffd->readers); in uffd_stop_demand_paging() 202 free(uffd->reader_args); in uffd_stop_demand_paging() [all …]
|
| /tools/testing/selftests/bpf/prog_tests/ |
| A D | bpf_mod_race.c | 67 int uffd; in test_setup_uffd() local 70 if (uffd < 0) in test_setup_uffd() 76 close(uffd); in test_setup_uffd() 84 close(uffd); in test_setup_uffd() 87 return uffd; in test_setup_uffd() 97 int uffd, ret; in test_bpf_mod_race_config() local 156 close(uffd); in test_bpf_mod_race_config() 157 uffd = -1; in test_bpf_mod_race_config() 168 close(uffd); in test_bpf_mod_race_config() 169 uffd = -1; in test_bpf_mod_race_config() [all …]
|
| /tools/testing/selftests/powerpc/tm/ |
| A D | tm-signal-pagefault.c | 86 long uffd; /* userfaultfd file descriptor */ in fault_handler_thread() local 91 uffd = (long) arg; in fault_handler_thread() 94 pollfd.fd = uffd; in fault_handler_thread() 101 nread = read(uffd, &msg, sizeof(msg)); in fault_handler_thread() 130 if (ioctl(uffd, UFFDIO_COPY, &uffdio_copy) == -1) { in fault_handler_thread() 139 long uffd; /* userfaultfd file descriptor */ in setup_uf_mem() local 148 uffd = syscall(__NR_userfaultfd, O_CLOEXEC | O_NONBLOCK); in setup_uf_mem() 149 if (uffd == -1) { in setup_uf_mem() 155 if (ioctl(uffd, UFFDIO_API, &uffdio_api) == -1) { in setup_uf_mem() 180 if (ioctl(uffd, UFFDIO_REGISTER, &uffdio_register) == -1) { in setup_uf_mem() [all …]
|
| /tools/testing/selftests/mm/ |
| A D | uffd-unit-tests.c | 132 int uffd; in test_uffd_api() local 138 uffd = uffd_open_dev(UFFD_FLAGS); in test_uffd_api() 140 uffd = uffd_open_sys(UFFD_FLAGS); in test_uffd_api() 141 if (uffd < 0) { in test_uffd_api() 179 close(uffd); in test_uffd_api() 716 if (copy_page(uffd, offset, wp)) in faulting_process() 721 wp_range(uffd, in faulting_process() 1025 copy_page(uffd, offset, false); in uffd_poison_handle_fault() 1027 do_uffdio_poison(uffd, offset); in uffd_poison_handle_fault() 1112 if (move_page(uffd, offset, len)) in uffd_move_handle_fault_common() [all …]
|
| A D | uffd-common.c | 242 if (uffd < 0) in userfaultfd_open() 285 if (uffd != -1) { in uffd_test_ctx_clear() 286 if (close(uffd)) in uffd_test_ctx_clear() 288 uffd = -1; in uffd_test_ctx_clear() 517 pollfd[0].fd = uffd; in uffd_poll_thread() 550 close(uffd); in uffd_poll_thread() 552 pollfd[0].fd = uffd; in uffd_poll_thread() 663 int fd, uffd; in uffd_open_dev() local 671 return uffd; in uffd_open_dev() 687 if (uffd < 0) in uffd_open() [all …]
|
| A D | uffd-stress.c | 140 if (uffd_read_msg(uffd, &msg)) in uffd_read_thread() 159 copy_page_retry(uffd, page_nr * page_size); in background_thread() 175 copy_page_retry(uffd, page_nr * page_size); in background_thread() 287 fcntl(uffd, F_SETFL, uffd_flags | O_NONBLOCK); in userfaultfd_stress() 289 fcntl(uffd, F_SETFL, uffd_flags & ~O_NONBLOCK); in userfaultfd_stress() 292 if (uffd_register(uffd, area_dst, mem_size, in userfaultfd_stress() 297 if (uffd_register(uffd, area_dst_alias, mem_size, in userfaultfd_stress() 338 wp_range(uffd, (unsigned long)area_dst, in userfaultfd_stress() 342 if (uffd_unregister(uffd, area_dst, mem_size)) in userfaultfd_stress() 424 close(uffd); in parse_test_type_arg() [all …]
|
| A D | hugepage-mremap.c | 64 long uffd; /* userfaultfd file descriptor */ in register_region_with_uffd() local 69 uffd = syscall(__NR_userfaultfd, O_CLOEXEC | O_NONBLOCK); in register_region_with_uffd() 70 if (uffd == -1) in register_region_with_uffd() 75 if (ioctl(uffd, UFFDIO_API, &uffdio_api) == -1) in register_region_with_uffd() 95 if (uffd_register(uffd, addr, len, true, false, false)) in register_region_with_uffd()
|
| A D | .gitignore | 30 uffd-stress 31 uffd-unit-tests 32 uffd-wp-mremap
|
| A D | Makefile | 91 TEST_GEN_FILES += uffd-stress 92 TEST_GEN_FILES += uffd-unit-tests 93 TEST_GEN_FILES += uffd-wp-mremap 163 $(OUTPUT)/uffd-stress: uffd-common.c 164 $(OUTPUT)/uffd-unit-tests: uffd-common.c 165 $(OUTPUT)/uffd-wp-mremap: uffd-common.c
|
| A D | mkdirty.c | 275 int uffd; in test_uffdio_copy() local 288 uffd = syscall(__NR_userfaultfd, O_CLOEXEC | O_NONBLOCK); in test_uffdio_copy() 289 if (uffd < 0) { in test_uffdio_copy() 296 if (ioctl(uffd, UFFDIO_API, &uffdio_api) < 0) { in test_uffdio_copy() 304 if (ioctl(uffd, UFFDIO_REGISTER, &uffdio_register)) { in test_uffdio_copy() 314 if (ioctl(uffd, UFFDIO_COPY, &uffdio_copy)) { in test_uffdio_copy() 321 close(uffd); in test_uffdio_copy()
|
| A D | ksm_functional_tests.c | 379 int uffd; in test_unmerge_uffd_wp() local 388 uffd = syscall(__NR_userfaultfd, O_CLOEXEC | O_NONBLOCK); in test_unmerge_uffd_wp() 389 if (uffd < 0) { in test_unmerge_uffd_wp() 397 if (ioctl(uffd, UFFDIO_API, &uffdio_api) < 0) { in test_unmerge_uffd_wp() 415 close(uffd); in test_unmerge_uffd_wp() 416 uffd = syscall(__NR_userfaultfd, O_CLOEXEC | O_NONBLOCK); in test_unmerge_uffd_wp() 417 if (uffd < 0) { in test_unmerge_uffd_wp() 425 if (ioctl(uffd, UFFDIO_API, &uffdio_api) < 0) { in test_unmerge_uffd_wp() 431 if (uffd_register(uffd, map, size, false, true, false)) { in test_unmerge_uffd_wp() 440 if (ioctl(uffd, UFFDIO_WRITEPROTECT, &uffd_writeprotect)) { in test_unmerge_uffd_wp() [all …]
|
| A D | vm_util.h | 89 int uffd_register(int uffd, void *addr, uint64_t len, 91 int uffd_unregister(int uffd, void *addr, uint64_t len); 92 int uffd_register_with_ioctls(int uffd, void *addr, uint64_t len,
|
| A D | uffd-wp-mremap.c | 191 if (uffd_register(uffd, mem, size, false, true, false)) { in test_one_folio() 198 if (ioctl(uffd, UFFDIO_WRITEPROTECT, &wp_prms)) { in test_one_folio() 245 if (uffd >= 0) { in test_one_folio() 246 close(uffd); in test_one_folio() 247 uffd = -1; in test_one_folio()
|
| A D | vm_util.c | 342 int uffd_register_with_ioctls(int uffd, void *addr, uint64_t len, in uffd_register_with_ioctls() argument 360 if (ioctl(uffd, UFFDIO_REGISTER, &uffdio_register) == -1) in uffd_register_with_ioctls() 368 int uffd_register(int uffd, void *addr, uint64_t len, in uffd_register() argument 371 return uffd_register_with_ioctls(uffd, addr, len, in uffd_register() 375 int uffd_unregister(int uffd, void *addr, uint64_t len) in uffd_unregister() argument 380 if (ioctl(uffd, UFFDIO_UNREGISTER, &range) == -1) in uffd_unregister()
|
| A D | uffd-common.h | 103 extern int uffd, uffd_flags, finished, *pipefd, test_type;
|
| A D | run_vmtests.sh | 322 CATEGORY="userfaultfd" run_test ./uffd-unit-tests 323 uffd_stress_bin=./uffd-stress 349 CATEGORY="userfaultfd" run_test ./uffd-wp-mremap
|
| A D | guard-regions.c | 1431 TEST_F(guard_regions, uffd) in TEST_F() argument 1434 int uffd; in TEST_F() local 1448 uffd = userfaultfd(0); in TEST_F() 1449 if (uffd == -1) { in TEST_F() 1464 ASSERT_NE(uffd, -1); in TEST_F() 1466 ASSERT_EQ(ioctl(uffd, UFFDIO_API, &api), 0); in TEST_F() 1478 ASSERT_EQ(ioctl(uffd, UFFDIO_REGISTER, ®), 0); in TEST_F() 1491 ASSERT_EQ(ioctl(uffd, UFFDIO_UNREGISTER, &range), 0); in TEST_F() 1492 close(uffd); in TEST_F()
|
| A D | pagemap_ioctl.c | 37 int uffd; variable 97 uffd = syscall(__NR_userfaultfd, O_CLOEXEC | O_NONBLOCK | UFFD_USER_MODE_ONLY); in init_uffd() 98 if (uffd == -1) in init_uffd() 99 return uffd; in init_uffd() 104 if (ioctl(uffd, UFFDIO_API, &uffdio_api)) in init_uffd() 124 if (ioctl(uffd, UFFDIO_REGISTER, &uffdio_register)) in wp_init() 134 if (ioctl(uffd, UFFDIO_WRITEPROTECT, &wp)) in wp_init() 147 if (ioctl(uffd, UFFDIO_UNREGISTER, &uffdio_register.range)) in wp_free()
|
| /tools/testing/selftests/kvm/include/ |
| A D | userfaultfd_util.h | 15 typedef int (*uffd_handler_t)(int uffd_mode, int uffd, struct uffd_msg *msg); 19 int uffd; member 27 int uffd; member 40 void uffd_stop_demand_paging(struct uffd_desc *uffd);
|
| /tools/testing/selftests/x86/ |
| A D | test_shadow_stack.c | 458 int uffd = *(int *)arg; in uffd_thread() local 463 ret = read(uffd, &msg, sizeof(msg)); in uffd_thread() 476 if (ioctl(uffd, UFFDIO_COPY, &req)) in uffd_thread() 489 int uffd; in test_userfaultfd() local 496 uffd = syscall(__NR_userfaultfd, O_CLOEXEC | O_NONBLOCK); in test_userfaultfd() 497 if (uffd < 0) { in test_userfaultfd() 506 if (ioctl(uffd, UFFDIO_API, &uffdio_api)) in test_userfaultfd() 512 if (ioctl(uffd, UFFDIO_REGISTER, &uffdio_register)) in test_userfaultfd() 515 if (pthread_create(&thread, NULL, &uffd_thread, &uffd)) in test_userfaultfd() 536 close(uffd); in test_userfaultfd()
|
| /tools/testing/selftests/kvm/ |
| A D | demand_paging_test.c | 57 static int handle_uffd_page_request(int uffd_mode, int uffd, in handle_uffd_page_request() argument 76 r = ioctl(uffd, UFFDIO_COPY, ©); in handle_uffd_page_request() 100 r = ioctl(uffd, UFFDIO_CONTINUE, &cont); in handle_uffd_page_request()
|
| /tools/testing/selftests/kvm/arm64/ |
| A D | page_fault_test.c | 309 static int uffd_generic_handler(int uffd_mode, int uffd, struct uffd_msg *msg, in uffd_generic_handler() argument 329 ret = ioctl(uffd, UFFDIO_COPY, ©); in uffd_generic_handler() 342 static int uffd_pt_handler(int mode, int uffd, struct uffd_msg *msg) in uffd_pt_handler() argument 344 return uffd_generic_handler(mode, uffd, msg, &pt_args); in uffd_pt_handler() 347 static int uffd_data_handler(int mode, int uffd, struct uffd_msg *msg) in uffd_data_handler() argument 349 return uffd_generic_handler(mode, uffd, msg, &data_args); in uffd_data_handler() 399 static int uffd_no_handler(int mode, int uffd, struct uffd_msg *msg) in uffd_no_handler() argument 789 .name = SCAT4(uffd, _access, _with_af, #_mark_cmd), \
|