Lines Matching full:vec

44 static long pagemap_ioctl(void *start, int len, void *vec, int vec_len, int flag,  in pagemap_ioctl()  argument
52 arg.vec = (uintptr_t)vec; in pagemap_ioctl()
65 static long pagemap_ioc(void *start, int len, void *vec, int vec_len, int flag, in pagemap_ioc() argument
74 arg.vec = (uintptr_t)vec; in pagemap_ioc()
189 char *mem, *vec; in userfaultfd_tests() local
212 vec = calloc(vec_size, sizeof(struct page_region)); in userfaultfd_tests()
214 written = pagemap_ioctl(mem, mem_size, vec, 1, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC, in userfaultfd_tests()
223 free(vec); in userfaultfd_tests()
227 int get_reads(struct page_region *vec, int vec_size) in get_reads() argument
232 sum += LEN(vec[i]); in get_reads()
243 struct page_region *vec, *vec2; in sanity_tests_sd() local
250 vec = calloc(vec_size, sizeof(struct page_region)); in sanity_tests_sd()
251 if (!vec) in sanity_tests_sd()
266 ksft_test_result(pagemap_ioctl(mem, 0, vec, vec_size, 0, in sanity_tests_sd()
274 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, 0, 0, in sanity_tests_sd()
282 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, -1, in sanity_tests_sd()
286 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
291 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
295 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
299 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
303 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
308 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
314 /* 2. Clear area with larger vec size */ in sanity_tests_sd()
315 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
318 ksft_test_result(ret >= 0, "%s Clear area with larger vec size\n", __func__); in sanity_tests_sd()
324 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, PAGE_IS_WRITTEN, 0, in sanity_tests_sd()
333 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
339 ret2 = pagemap_ioctl(mem, mem_size, vec, 2, 0, 0, PAGE_IS_WRITTEN, 0, 0, in sanity_tests_sd()
344 ret3 = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
359 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
365 ret2 = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
380 ret = pagemap_ioctl(mem + page_size, 2 * page_size, vec, 1, in sanity_tests_sd()
391 ksft_test_result(ret == 1 && LEN(vec[0]) == 2 && in sanity_tests_sd()
392 vec[0].start == (uintptr_t)(mem + page_size) && in sanity_tests_sd()
419 ret = pagemap_ioctl(m[1], mem_size, vec, 1, 0, 0, PAGE_IS_WRITTEN, 0, 0, in sanity_tests_sd()
424 ksft_test_result(ret == 1 && LEN(vec[0]) == mem_size/page_size, in sanity_tests_sd()
432 free(vec); in sanity_tests_sd()
435 /* 8. Smaller vec */ in sanity_tests_sd()
439 vec = calloc(vec_size, sizeof(struct page_region)); in sanity_tests_sd()
440 if (!vec) in sanity_tests_sd()
450 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
459 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
467 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
475 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests_sd()
485 free(vec); in sanity_tests_sd()
490 /* 9. Smaller vec */ in sanity_tests_sd()
494 vec = calloc(vec_size, sizeof(struct page_region)); in sanity_tests_sd()
495 if (!vec) in sanity_tests_sd()
517 ret = pagemap_ioc((void *)walk_end, mem_size-(walk_end - (long)mem), vec, in sanity_tests_sd()
526 reads = get_reads(vec, ret); in sanity_tests_sd()
534 ksft_test_result(count == TEST_ITERATIONS, "Smaller vec\n"); in sanity_tests_sd()
536 free(vec); in sanity_tests_sd()
544 vec = calloc(vec_size, sizeof(struct page_region)); in sanity_tests_sd()
545 if (!vec) in sanity_tests_sd()
557 ret = pagemap_ioc(mem, 0, vec, vec_size, 0, in sanity_tests_sd()
564 ret = pagemap_ioc(mem, 0, vec, vec_size, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC, in sanity_tests_sd()
571 ret = pagemap_ioc(mem, 0, vec, 0, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC, in sanity_tests_sd()
578 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
583 "Walk_end: Big vec\n"); in sanity_tests_sd()
585 ret = pagemap_ioc(mem, mem_size, vec, 1, 0, in sanity_tests_sd()
590 "Walk_end: vec of minimum length\n"); in sanity_tests_sd()
592 ret = pagemap_ioc(mem, mem_size, vec, 1, 0, in sanity_tests_sd()
599 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
606 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
613 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
624 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
629 "Walk_end sparse: Big vec\n"); in sanity_tests_sd()
631 ret = pagemap_ioc(mem, mem_size, vec, 1, 0, in sanity_tests_sd()
636 "Walk_end sparse: vec of minimum length\n"); in sanity_tests_sd()
638 ret = pagemap_ioc(mem, mem_size, vec, 1, 0, in sanity_tests_sd()
645 ret = pagemap_ioc(mem, mem_size, vec, vec_size/2, 0, in sanity_tests_sd()
652 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
659 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
666 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0, in sanity_tests_sd()
673 free(vec); in sanity_tests_sd()
684 struct page_region *vec, *vec2; in base_tests() local
698 vec = calloc(vec_size, sizeof(struct page_region)); in base_tests()
702 written = pagemap_ioctl(mem, mem_size, vec, 1, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC, in base_tests()
712 written = pagemap_ioctl(mem, mem_size, vec, 1, 0, 0, PAGE_IS_WRITTEN, 0, 0, in base_tests()
717 ksft_test_result(written == 1 && LEN(vec[0]) == mem_size/page_size, in base_tests()
721 written = pagemap_ioctl(mem, mem_size, vec, 1, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC, in base_tests()
728 written = pagemap_ioctl(mem, mem_size, vec, 1, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC, in base_tests()
733 ksft_test_result(written == 1 && LEN(vec[0]) >= vec_size - 2 && LEN(vec[0]) <= vec_size, in base_tests()
736 written = pagemap_ioctl(mem, mem_size, vec, 1, 0, 0, in base_tests()
745 written = pagemap_ioctl(mem, mem_size, vec, 1, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC, in base_tests()
752 written = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, PAGE_IS_WRITTEN, in base_tests()
757 ksft_test_result(written == 1 && LEN(vec[0]) >= 1, in base_tests()
761 written = pagemap_ioctl(mem, mem_size, vec, 1, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC, in base_tests()
769 written = pagemap_ioctl(&mem[vec_size/2 * page_size], 2 * page_size, vec, 1, 0, in base_tests()
774 ksft_test_result(written == 1 && vec[0].start == (uintptr_t)(&mem[vec_size/2 * page_size]) in base_tests()
775 && LEN(vec[0]) == 2, in base_tests()
778 free(vec); in base_tests()
808 struct page_region *vec, *vec2; in hpage_unit_tests() local
810 vec = calloc(vec_size, sizeof(struct page_region)); in hpage_unit_tests()
812 if (!vec || !vec2) in hpage_unit_tests()
821 ret = pagemap_ioctl(map, map_size, vec, vec_size, in hpage_unit_tests()
831 ret = pagemap_ioctl(map, map_size, vec, vec_size, 0, 0, in hpage_unit_tests()
840 ret = pagemap_ioctl(map, map_size, vec, vec_size, in hpage_unit_tests()
846 ksft_test_result(ret == 1 && vec[0].start == (uintptr_t)map && in hpage_unit_tests()
847 LEN(vec[0]) == vec_size && vec[0].categories == PAGE_IS_WRITTEN, in hpage_unit_tests()
858 ret = pagemap_ioctl(map, map_size, vec, vec_size, 0, 0, in hpage_unit_tests()
863 ksft_test_result(ret == 1 && LEN(vec[0]) > 0, in hpage_unit_tests()
885 ret = pagemap_ioctl(map, map_size, vec, vec_size, 0, 0, in hpage_unit_tests()
890 ksft_test_result(ret == 1 && LEN(vec[0]) == vec_size/2 && in hpage_unit_tests()
891 vec[0].start == (uintptr_t)(map + map_size/2), in hpage_unit_tests()
907 ret = pagemap_ioctl(map, map_size, vec, vec_size, in hpage_unit_tests()
913 ret = pagemap_ioctl(map, map_size, vec, vec_size, 0, 0, in hpage_unit_tests()
918 ksft_test_result(ret == 1 && LEN(vec[0]) == vec_size/2 && in hpage_unit_tests()
919 vec[0].start == (uintptr_t)(map + map_size/2), in hpage_unit_tests()
937 ret = pagemap_ioctl(map + map_size/2, map_size/2, vec, vec_size, in hpage_unit_tests()
943 ret = pagemap_ioctl(map, map_size, vec, vec_size, 0, 0, in hpage_unit_tests()
948 ksft_test_result(ret == 1 && LEN(vec[0]) == vec_size/2, in hpage_unit_tests()
965 ret = pagemap_ioctl(map, map_size, vec, 1, in hpage_unit_tests()
972 ksft_test_result(ret == 1 && LEN(vec[0]) == hpage_size/(2*page_size), in hpage_unit_tests()
975 ret2 = pagemap_ioctl(map, map_size, vec, vec_size, 0, 0, in hpage_unit_tests()
980 ksft_test_result(ret2 == 1 && LEN(vec[0]) == (map_size - hpage_size/2)/page_size, in hpage_unit_tests()
990 free(vec); in hpage_unit_tests()
1000 struct page_region *vec = calloc(vec_size, sizeof(struct page_region)); in unmapped_region_tests() local
1003 written = pagemap_ioctl(start, len, vec, vec_size, 0, 0, in unmapped_region_tests()
1010 free(vec); in unmapped_region_tests()
1018 struct page_region vec; in test_simple() local
1028 if (pagemap_ioctl(map, page_size, &vec, 1, 0, 0, in test_simple()
1038 if (pagemap_ioctl(map, page_size, &vec, 1, 0, 0, in test_simple()
1056 struct page_region *vec; in sanity_tests() local
1065 vec = calloc(vec_size, sizeof(struct page_region)); in sanity_tests()
1067 if (mem == MAP_FAILED || vec == MAP_FAILED) in sanity_tests()
1073 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests()
1077 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, in sanity_tests()
1080 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, in sanity_tests()
1083 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, in sanity_tests()
1086 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, in sanity_tests()
1102 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, in sanity_tests()
1104 ksft_test_result(ret >= 0 && vec[0].start == (uintptr_t)mem && LEN(vec[0]) == vec_size && in sanity_tests()
1105 (vec[0].categories & (PAGE_IS_WRITTEN | PAGE_IS_PRESENT)) == in sanity_tests()
1110 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, in sanity_tests()
1112 ksft_test_result(ret >= 0 && vec[0].start == (uintptr_t)mem && LEN(vec[0]) == vec_size && in sanity_tests()
1113 (vec[0].categories & (PAGE_IS_WRITTEN | PAGE_IS_PRESENT)) == in sanity_tests()
1118 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, in sanity_tests()
1120 ksft_test_result(ret >= 0 && vec[0].start == (uintptr_t)mem && LEN(vec[0]) == vec_size && in sanity_tests()
1121 (vec[0].categories & (PAGE_IS_WRITTEN | PAGE_IS_PRESENT)) == in sanity_tests()
1127 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, in sanity_tests()
1132 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, in sanity_tests()
1148 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, in sanity_tests()
1151 ksft_test_result(ret >= 0 && vec[0].start == (uintptr_t)mem && LEN(vec[0]) == vec_size && in sanity_tests()
1152 vec[0].categories == PAGE_IS_WRITTEN, in sanity_tests()
1173 ret = pagemap_ioctl(fmem, sbuf.st_size, vec, vec_size, 0, 0, in sanity_tests()
1176 ksft_test_result(ret >= 0 && vec[0].start == (uintptr_t)fmem && in sanity_tests()
1177 LEN(vec[0]) == ceilf((float)sbuf.st_size/page_size) && in sanity_tests()
1178 (vec[0].categories & PAGE_IS_FILE), in sanity_tests()
1208 ret = pagemap_ioctl(fmem, buf_size, vec, vec_size, 0, 0, in sanity_tests()
1212 ksft_test_result(ret >= 0 && vec[0].start == (uintptr_t)fmem && in sanity_tests()
1213 LEN(vec[0]) == (buf_size/page_size) && in sanity_tests()
1214 (vec[0].categories & PAGE_IS_WRITTEN), in sanity_tests()
1221 free(vec); in sanity_tests()
1229 struct page_region vec; in mprotect_tests() local
1247 ret = pagemap_ioctl(mem, 2 * page_size, &vec, 1, 0, 0, PAGE_IS_WRITTEN, in mprotect_tests()
1252 ksft_test_result(ret == 1 && LEN(vec) == 2, "%s Both pages written\n", __func__); in mprotect_tests()
1257 ksft_test_result(pagemap_ioctl(mem, 2 * page_size, &vec, 1, 0, 0, in mprotect_tests()
1282 ret = pagemap_ioctl(mem, 2 * page_size, &vec, 1, 0, 0, PAGE_IS_WRITTEN, in mprotect_tests()
1287 ksft_test_result(ret == 1 && LEN(vec) == 2, in mprotect_tests()
1295 ret = pagemap_ioctl(mem, 2 * page_size, &vec, 1, 0, 0, PAGE_IS_WRITTEN, in mprotect_tests()
1300 ksft_test_result(ret == 1 && LEN(vec) == 2, in mprotect_tests()
1328 arg.vec = (uintptr_t)rgns; in get_dirty_pages_reset()
1487 struct page_region vec; in zeropfn_tests() local
1501 ret = pagemap_ioctl(mem, mem_size, &vec, 1, 0, in zeropfn_tests()
1506 ksft_test_result(ret == 1 && LEN(vec) == (mem_size / page_size), in zeropfn_tests()
1530 ret = pagemap_ioctl(mem, hpage_size, &vec, 1, 0, in zeropfn_tests()
1535 ksft_test_result(ret == 1 && LEN(vec) == (hpage_size / page_size), in zeropfn_tests()