Lines Matching full:vec
43 static long pagemap_ioctl(void *start, int len, void *vec, int vec_len, int flag, in pagemap_ioctl() argument
51 arg.vec = (uintptr_t)vec; in pagemap_ioctl()
64 static long pagemap_ioc(void *start, int len, void *vec, int vec_len, int flag, in pagemap_ioc() argument
73 arg.vec = (uintptr_t)vec; in pagemap_ioc()
188 char *mem, *vec; in userfaultfd_tests() local
211 vec = malloc(sizeof(struct page_region) * vec_size); in userfaultfd_tests()
213 written = pagemap_ioctl(mem, mem_size, vec, 1, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC, in userfaultfd_tests()
222 free(vec); in userfaultfd_tests()
226 int get_reads(struct page_region *vec, int vec_size) in get_reads() argument
231 sum += LEN(vec[i]); in get_reads()
242 struct page_region *vec, *vec2; in sanity_tests_sd() local
249 vec = malloc(sizeof(struct page_region) * vec_size); in sanity_tests_sd()
250 if (!vec) in sanity_tests_sd()
265 ksft_test_result(pagemap_ioctl(mem, 0, vec, vec_size, 0, in sanity_tests_sd()
273 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, 0, 0, in sanity_tests_sd()
281 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, -1, in sanity_tests_sd()
285 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
290 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
294 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
298 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
302 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
307 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
313 /* 2. Clear area with larger vec size */ in sanity_tests_sd()
314 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
317 ksft_test_result(ret >= 0, "%s Clear area with larger vec size\n", __func__); in sanity_tests_sd()
323 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, PAGE_IS_WRITTEN, 0, in sanity_tests_sd()
332 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
338 ret2 = pagemap_ioctl(mem, mem_size, vec, 2, 0, 0, PAGE_IS_WRITTEN, 0, 0, in sanity_tests_sd()
343 ret3 = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
358 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
364 ret2 = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
379 ret = pagemap_ioctl(mem + page_size, 2 * page_size, vec, 1, in sanity_tests_sd()
390 ksft_test_result(ret == 1 && LEN(vec[0]) == 2 && in sanity_tests_sd()
391 vec[0].start == (uintptr_t)(mem + page_size) && in sanity_tests_sd()
418 ret = pagemap_ioctl(m[1], mem_size, vec, 1, 0, 0, PAGE_IS_WRITTEN, 0, 0, in sanity_tests_sd()
423 ksft_test_result(ret == 1 && LEN(vec[0]) == mem_size/page_size, in sanity_tests_sd()
431 free(vec); in sanity_tests_sd()
434 /* 8. Smaller vec */ in sanity_tests_sd()
438 vec = malloc(sizeof(struct page_region) * vec_size); in sanity_tests_sd()
439 if (!vec) in sanity_tests_sd()
449 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
458 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
466 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
474 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
484 free(vec); in sanity_tests_sd()
489 /* 9. Smaller vec */ in sanity_tests_sd()
493 vec = malloc(sizeof(struct page_region) * vec_size); in sanity_tests_sd()
494 if (!vec) in sanity_tests_sd()
516 ret = pagemap_ioc((void *)walk_end, mem_size-(walk_end - (long)mem), vec, in sanity_tests_sd()
525 reads = get_reads(vec, ret); in sanity_tests_sd()
533 ksft_test_result(count == TEST_ITERATIONS, "Smaller vec\n"); in sanity_tests_sd()
535 free(vec); in sanity_tests_sd()
543 vec = malloc(sizeof(struct page_region) * vec_size); in sanity_tests_sd()
544 if (!vec) in sanity_tests_sd()
556 ret = pagemap_ioc(mem, 0, vec, vec_size, 0, in sanity_tests_sd()
563 ret = pagemap_ioc(mem, 0, vec, vec_size, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC, in sanity_tests_sd()
570 ret = pagemap_ioc(mem, 0, vec, 0, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC, in sanity_tests_sd()
577 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
582 "Walk_end: Big vec\n"); in sanity_tests_sd()
584 ret = pagemap_ioc(mem, mem_size, vec, 1, 0, in sanity_tests_sd()
589 "Walk_end: vec of minimum length\n"); in sanity_tests_sd()
591 ret = pagemap_ioc(mem, mem_size, vec, 1, 0, in sanity_tests_sd()
598 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
605 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
612 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
623 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
628 "Walk_end sparse: Big vec\n"); in sanity_tests_sd()
630 ret = pagemap_ioc(mem, mem_size, vec, 1, 0, in sanity_tests_sd()
635 "Walk_end sparse: vec of minimum length\n"); in sanity_tests_sd()
637 ret = pagemap_ioc(mem, mem_size, vec, 1, 0, in sanity_tests_sd()
644 ret = pagemap_ioc(mem, mem_size, vec, vec_size/2, 0, in sanity_tests_sd()
651 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
658 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
665 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
672 free(vec); in sanity_tests_sd()
683 struct page_region *vec, *vec2; in base_tests() local
697 vec = malloc(sizeof(struct page_region) * vec_size); in base_tests()
701 written = pagemap_ioctl(mem, mem_size, vec, 1, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC, in base_tests()
711 written = pagemap_ioctl(mem, mem_size, vec, 1, 0, 0, PAGE_IS_WRITTEN, 0, 0, in base_tests()
716 ksft_test_result(written == 1 && LEN(vec[0]) == mem_size/page_size, in base_tests()
720 written = pagemap_ioctl(mem, mem_size, vec, 1, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC, in base_tests()
727 written = pagemap_ioctl(mem, mem_size, vec, 1, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC, in base_tests()
732 ksft_test_result(written == 1 && LEN(vec[0]) >= vec_size - 2 && LEN(vec[0]) <= vec_size, in base_tests()
735 written = pagemap_ioctl(mem, mem_size, vec, 1, 0, 0, in base_tests()
744 written = pagemap_ioctl(mem, mem_size, vec, 1, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC, in base_tests()
751 written = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, PAGE_IS_WRITTEN, in base_tests()
756 ksft_test_result(written == 1 && LEN(vec[0]) >= 1, in base_tests()
760 written = pagemap_ioctl(mem, mem_size, vec, 1, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC, in base_tests()
768 written = pagemap_ioctl(&mem[vec_size/2 * page_size], 2 * page_size, vec, 1, 0, in base_tests()
773 ksft_test_result(written == 1 && vec[0].start == (uintptr_t)(&mem[vec_size/2 * page_size]) in base_tests()
774 && LEN(vec[0]) == 2, in base_tests()
777 free(vec); in base_tests()
807 struct page_region *vec, *vec2; in hpage_unit_tests() local
809 vec = malloc(sizeof(struct page_region) * vec_size); in hpage_unit_tests()
811 if (!vec || !vec2) in hpage_unit_tests()
820 ret = pagemap_ioctl(map, map_size, vec, vec_size, in hpage_unit_tests()
830 ret = pagemap_ioctl(map, map_size, vec, vec_size, 0, 0, in hpage_unit_tests()
839 ret = pagemap_ioctl(map, map_size, vec, vec_size, in hpage_unit_tests()
845 ksft_test_result(ret == 1 && vec[0].start == (uintptr_t)map && in hpage_unit_tests()
846 LEN(vec[0]) == vec_size && vec[0].categories == PAGE_IS_WRITTEN, in hpage_unit_tests()
857 ret = pagemap_ioctl(map, map_size, vec, vec_size, 0, 0, in hpage_unit_tests()
862 ksft_test_result(ret == 1 && LEN(vec[0]) > 0, in hpage_unit_tests()
884 ret = pagemap_ioctl(map, map_size, vec, vec_size, 0, 0, in hpage_unit_tests()
889 ksft_test_result(ret == 1 && LEN(vec[0]) == vec_size/2 && in hpage_unit_tests()
890 vec[0].start == (uintptr_t)(map + map_size/2), in hpage_unit_tests()
906 ret = pagemap_ioctl(map, map_size, vec, vec_size, in hpage_unit_tests()
912 ret = pagemap_ioctl(map, map_size, vec, vec_size, 0, 0, in hpage_unit_tests()
917 ksft_test_result(ret == 1 && LEN(vec[0]) == vec_size/2 && in hpage_unit_tests()
918 vec[0].start == (uintptr_t)(map + map_size/2), in hpage_unit_tests()
936 ret = pagemap_ioctl(map + map_size/2, map_size/2, vec, vec_size, in hpage_unit_tests()
942 ret = pagemap_ioctl(map, map_size, vec, vec_size, 0, 0, in hpage_unit_tests()
947 ksft_test_result(ret == 1 && LEN(vec[0]) == vec_size/2, in hpage_unit_tests()
964 ret = pagemap_ioctl(map, map_size, vec, 1, in hpage_unit_tests()
971 ksft_test_result(ret == 1 && LEN(vec[0]) == hpage_size/(2*page_size), in hpage_unit_tests()
974 ret2 = pagemap_ioctl(map, map_size, vec, vec_size, 0, 0, in hpage_unit_tests()
979 ksft_test_result(ret2 == 1 && LEN(vec[0]) == (map_size - hpage_size/2)/page_size, in hpage_unit_tests()
989 free(vec); in hpage_unit_tests()
999 struct page_region *vec = malloc(sizeof(struct page_region) * vec_size); in unmapped_region_tests() local
1002 written = pagemap_ioctl(start, len, vec, vec_size, 0, 0, in unmapped_region_tests()
1009 free(vec); in unmapped_region_tests()
1017 struct page_region vec; in test_simple() local
1027 if (pagemap_ioctl(map, page_size, &vec, 1, 0, 0, in test_simple()
1037 if (pagemap_ioctl(map, page_size, &vec, 1, 0, 0, in test_simple()
1055 struct page_region *vec; in sanity_tests() local
1064 vec = malloc(sizeof(struct page_region) * vec_size); in sanity_tests()
1066 if (mem == MAP_FAILED || vec == MAP_FAILED) in sanity_tests()
1072 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests()
1076 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, in sanity_tests()
1079 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, in sanity_tests()
1082 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, in sanity_tests()
1085 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, in sanity_tests()
1101 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, in sanity_tests()
1103 ksft_test_result(ret >= 0 && vec[0].start == (uintptr_t)mem && LEN(vec[0]) == vec_size && in sanity_tests()
1104 (vec[0].categories & (PAGE_IS_WRITTEN | PAGE_IS_PRESENT)) == in sanity_tests()
1109 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, in sanity_tests()
1111 ksft_test_result(ret >= 0 && vec[0].start == (uintptr_t)mem && LEN(vec[0]) == vec_size && in sanity_tests()
1112 (vec[0].categories & (PAGE_IS_WRITTEN | PAGE_IS_PRESENT)) == in sanity_tests()
1117 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, in sanity_tests()
1119 ksft_test_result(ret >= 0 && vec[0].start == (uintptr_t)mem && LEN(vec[0]) == vec_size && in sanity_tests()
1120 (vec[0].categories & (PAGE_IS_WRITTEN | PAGE_IS_PRESENT)) == in sanity_tests()
1126 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, in sanity_tests()
1131 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, in sanity_tests()
1147 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests()
1150 ksft_test_result(ret >= 0 && vec[0].start == (uintptr_t)mem && LEN(vec[0]) == vec_size && in sanity_tests()
1151 vec[0].categories == PAGE_IS_WRITTEN, in sanity_tests()
1172 ret = pagemap_ioctl(fmem, sbuf.st_size, vec, vec_size, 0, 0, in sanity_tests()
1175 ksft_test_result(ret >= 0 && vec[0].start == (uintptr_t)fmem && in sanity_tests()
1176 LEN(vec[0]) == ceilf((float)sbuf.st_size/page_size) && in sanity_tests()
1177 (vec[0].categories & PAGE_IS_FILE), in sanity_tests()
1207 ret = pagemap_ioctl(fmem, buf_size, vec, vec_size, 0, 0, in sanity_tests()
1211 ksft_test_result(ret >= 0 && vec[0].start == (uintptr_t)fmem && in sanity_tests()
1212 LEN(vec[0]) == (buf_size/page_size) && in sanity_tests()
1213 (vec[0].categories & PAGE_IS_WRITTEN), in sanity_tests()
1220 free(vec); in sanity_tests()
1228 struct page_region vec; in mprotect_tests() local
1246 ret = pagemap_ioctl(mem, 2 * page_size, &vec, 1, 0, 0, PAGE_IS_WRITTEN, in mprotect_tests()
1251 ksft_test_result(ret == 1 && LEN(vec) == 2, "%s Both pages written\n", __func__); in mprotect_tests()
1256 ksft_test_result(pagemap_ioctl(mem, 2 * page_size, &vec, 1, 0, 0, in mprotect_tests()
1281 ret = pagemap_ioctl(mem, 2 * page_size, &vec, 1, 0, 0, PAGE_IS_WRITTEN, in mprotect_tests()
1286 ksft_test_result(ret == 1 && LEN(vec) == 2, in mprotect_tests()
1294 ret = pagemap_ioctl(mem, 2 * page_size, &vec, 1, 0, 0, PAGE_IS_WRITTEN, in mprotect_tests()
1299 ksft_test_result(ret == 1 && LEN(vec) == 2, in mprotect_tests()
1327 arg.vec = (uintptr_t)rgns; in get_dirty_pages_reset()