Home
last modified time | relevance | path

Searched refs:uffd (Results 1 – 22 of 22) sorted by relevance

/linux/tools/testing/selftests/kvm/lib/
A Duserfaultfd_util.c29 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 …]
/linux/tools/testing/selftests/bpf/prog_tests/
A Dbpf_mod_race.c67 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 …]
/linux/tools/testing/selftests/mm/
A Duffd-unit-tests.c129 int uffd; in test_uffd_api() local
135 uffd = uffd_open_dev(UFFD_FLAGS); in test_uffd_api()
137 uffd = uffd_open_sys(UFFD_FLAGS); in test_uffd_api()
138 if (uffd < 0) { in test_uffd_api()
162 if (ioctl(uffd, UFFDIO_API, &uffdio_api)) { in test_uffd_api()
176 close(uffd); in test_uffd_api()
712 if (copy_page(uffd, offset, wp)) in faulting_process()
717 wp_range(uffd, in faulting_process()
1021 copy_page(uffd, offset, false); in uffd_poison_handle_fault()
1023 do_uffdio_poison(uffd, offset); in uffd_poison_handle_fault()
[all …]
A Duffd-common.c242 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()
683 if (uffd < 0) in uffd_open()
[all …]
A Duffd-stress.c139 if (uffd_read_msg(uffd, &msg)) in uffd_read_thread()
158 copy_page_retry(uffd, page_nr * page_size); in background_thread()
174 copy_page_retry(uffd, page_nr * page_size); in background_thread()
286 fcntl(uffd, F_SETFL, uffd_flags | O_NONBLOCK); in userfaultfd_stress()
288 fcntl(uffd, F_SETFL, uffd_flags & ~O_NONBLOCK); in userfaultfd_stress()
291 if (uffd_register(uffd, area_dst, mem_size, in userfaultfd_stress()
296 if (uffd_register(uffd, area_dst_alias, mem_size, in userfaultfd_stress()
337 wp_range(uffd, (unsigned long)area_dst, in userfaultfd_stress()
341 if (uffd_unregister(uffd, area_dst, mem_size)) in userfaultfd_stress()
423 close(uffd); in parse_test_type_arg()
[all …]
A Dhugepage-mremap.c64 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 Dmkdirty.c274 int uffd; in test_uffdio_copy() local
286 uffd = syscall(__NR_userfaultfd, O_CLOEXEC | O_NONBLOCK); in test_uffdio_copy()
287 if (uffd < 0) { in test_uffdio_copy()
294 if (ioctl(uffd, UFFDIO_API, &uffdio_api) < 0) { in test_uffdio_copy()
302 if (ioctl(uffd, UFFDIO_REGISTER, &uffdio_register)) { in test_uffdio_copy()
312 if (ioctl(uffd, UFFDIO_COPY, &uffdio_copy)) { in test_uffdio_copy()
319 close(uffd); in test_uffdio_copy()
A DMakefile72 TEST_GEN_FILES += uffd-stress
73 TEST_GEN_FILES += uffd-unit-tests
138 $(OUTPUT)/uffd-stress: uffd-common.c
139 $(OUTPUT)/uffd-unit-tests: uffd-common.c
A Dvm_util.h50 int uffd_register(int uffd, void *addr, uint64_t len,
52 int uffd_unregister(int uffd, void *addr, uint64_t len);
53 int uffd_register_with_ioctls(int uffd, void *addr, uint64_t len,
A Dvm_util.c325 int uffd_register_with_ioctls(int uffd, void *addr, uint64_t len, in uffd_register_with_ioctls() argument
343 if (ioctl(uffd, UFFDIO_REGISTER, &uffdio_register) == -1) in uffd_register_with_ioctls()
351 int uffd_register(int uffd, void *addr, uint64_t len, in uffd_register() argument
354 return uffd_register_with_ioctls(uffd, addr, len, in uffd_register()
358 int uffd_unregister(int uffd, void *addr, uint64_t len) in uffd_unregister() argument
363 if (ioctl(uffd, UFFDIO_UNREGISTER, &range) == -1) in uffd_unregister()
A Dksm_functional_tests.c378 int uffd; in test_unmerge_uffd_wp() local
387 uffd = syscall(__NR_userfaultfd, O_CLOEXEC | O_NONBLOCK); in test_unmerge_uffd_wp()
388 if (uffd < 0) { in test_unmerge_uffd_wp()
396 if (ioctl(uffd, UFFDIO_API, &uffdio_api) < 0) { in test_unmerge_uffd_wp()
406 if (uffd_register(uffd, map, size, false, true, false)) { in test_unmerge_uffd_wp()
415 if (ioctl(uffd, UFFDIO_WRITEPROTECT, &uffd_writeprotect)) { in test_unmerge_uffd_wp()
428 close(uffd); in test_unmerge_uffd_wp()
A D.gitignore28 uffd-stress
29 uffd-unit-tests
A Duffd-common.h103 extern int uffd, uffd_flags, finished, *pipefd, test_type;
A Dpagemap_ioctl.c36 int uffd; variable
96 uffd = syscall(__NR_userfaultfd, O_CLOEXEC | O_NONBLOCK | UFFD_USER_MODE_ONLY); in init_uffd()
97 if (uffd == -1) in init_uffd()
98 return uffd; in init_uffd()
103 if (ioctl(uffd, UFFDIO_API, &uffdio_api)) in init_uffd()
123 if (ioctl(uffd, UFFDIO_REGISTER, &uffdio_register)) in wp_init()
133 if (ioctl(uffd, UFFDIO_WRITEPROTECT, &wp)) in wp_init()
146 if (ioctl(uffd, UFFDIO_UNREGISTER, &uffdio_register.range)) in wp_free()
A Drun_vmtests.sh298 CATEGORY="userfaultfd" run_test ./uffd-unit-tests
299 uffd_stress_bin=./uffd-stress
/linux/tools/testing/selftests/powerpc/tm/
A Dtm-signal-pagefault.c86 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 …]
/linux/tools/testing/selftests/kvm/include/
A Duserfaultfd_util.h15 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);
/linux/tools/testing/selftests/x86/
A Dtest_shadow_stack.c458 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()
/linux/tools/testing/selftests/kvm/
A Ddemand_paging_test.c57 static int handle_uffd_page_request(int uffd_mode, int uffd, in handle_uffd_page_request() argument
76 r = ioctl(uffd, UFFDIO_COPY, &copy); in handle_uffd_page_request()
100 r = ioctl(uffd, UFFDIO_CONTINUE, &cont); in handle_uffd_page_request()
/linux/tools/testing/selftests/kvm/aarch64/
A Dpage_fault_test.c309 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, &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), \
/linux/Documentation/admin-guide/mm/
A Duserfaultfd.rst187 uffd. You can supply as many pages as you want with these IOCTLs.
203 ``ioctl(uffd, UFFDIO_WRITEPROTECT, struct *uffdio_writeprotect)``
208 Then, in the thread reading from uffd the struct will have
210 ``ioctl(uffd, UFFDIO_WRITEPROTECT, struct *uffdio_writeprotect)``
213 allows you to do the bookkeeping about the write in the uffd reading
268 - Due to a reverted meaning of soft-dirty (page clean when uffd-wp bit
269 set; dirty when uffd-wp bit cleared), it has different semantics on
272 dirtying of memory by dropping uffd-wp bit during the procedure.
275 uffd-wp bit for the pages being interested in /proc/pagemap.
277 The page will not be under track of uffd-wp async mode until the page is
A Dpagemap.rst22 * Bit 57 pte is uffd-wp write-protected (since 5.13) (see
284 "PAGE_IS_WRITTEN" category is used with uffd write protect-enabled ranges to

Completed in 40 milliseconds