Lines Matching full:mem
163 char *mem;
170 mem = shmat(*shmid, 0, 0);
171 if (mem == (char *)-1) {
176 mem = mmap(NULL, size, PROT_READ | PROT_WRITE,
178 if (mem == MAP_FAILED)
182 return mem;
188 char *mem, *vec;
191 mem = mmap(NULL, mem_size, PROT_NONE, MAP_PRIVATE | MAP_ANON, -1, 0);
192 if (mem == MAP_FAILED)
195 wp_init(mem, mem_size);
198 mprotect(mem, mem_size/8, PROT_READ|PROT_WRITE);
199 mprotect(mem + 1 * mem_size/8, mem_size/8, PROT_READ);
200 mprotect(mem + 2 * mem_size/8, mem_size/8, PROT_READ|PROT_WRITE);
201 mprotect(mem + 3 * mem_size/8, mem_size/8, PROT_READ);
202 mprotect(mem + 4 * mem_size/8, mem_size/8, PROT_READ|PROT_WRITE);
203 mprotect(mem + 5 * mem_size/8, mem_size/8, PROT_NONE);
204 mprotect(mem + 6 * mem_size/8, mem_size/8, PROT_READ|PROT_WRITE);
205 mprotect(mem + 7 * mem_size/8, mem_size/8, PROT_READ);
207 wp_addr_range(mem + (mem_size/16), mem_size - 2 * (mem_size/8));
208 wp_addr_range(mem, mem_size);
213 written = pagemap_ioctl(mem, mem_size, vec, 1, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC,
220 wp_free(mem, mem_size);
221 munmap(mem, mem_size);
243 char *mem, *m[2];
257 mem = mmap(NULL, mem_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
258 if (mem == MAP_FAILED)
261 wp_init(mem, mem_size);
262 wp_addr_range(mem, mem_size);
265 ksft_test_result(pagemap_ioctl(mem, 0, vec, vec_size, 0,
269 ksft_test_result(pagemap_ioctl(mem, mem_size, NULL, vec_size, 0,
273 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, 0, 0,
277 ksft_test_result(pagemap_ioctl(mem, mem_size, 0, 0, 0,
281 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, -1,
285 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size,
290 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0,
294 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0,
298 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0,
302 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size,
307 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size,
314 ret = pagemap_ioctl(mem, mem_size, vec, vec_size,
321 mem[i]++;
323 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, PAGE_IS_WRITTEN, 0,
332 ret = pagemap_ioctl(mem, mem_size, vec, vec_size,
338 ret2 = pagemap_ioctl(mem, mem_size, vec, 2, 0, 0, PAGE_IS_WRITTEN, 0, 0,
343 ret3 = pagemap_ioctl(mem, mem_size, vec, vec_size,
355 mem[i]++;
356 mem[(mem_size/page_size - 1) * page_size]++;
358 ret = pagemap_ioctl(mem, mem_size, vec, vec_size,
364 ret2 = pagemap_ioctl(mem, mem_size, vec, vec_size,
376 memset(mem, -1, mem_size);
379 ret = pagemap_ioctl(mem + page_size, 2 * page_size, vec, 1,
385 ret2 = pagemap_ioctl(mem, mem_size, vec2, vec_size, 0, 0,
391 vec[0].start == (uintptr_t)(mem + page_size) &&
392 ret2 == 2 && LEN(vec2[0]) == 1 && vec2[0].start == (uintptr_t)mem &&
394 vec2[1].start == (uintptr_t)(mem + 3 * page_size),
397 wp_free(mem, mem_size);
398 munmap(mem, mem_size);
442 mem = mmap(NULL, mem_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
443 if (mem == MAP_FAILED)
446 wp_init(mem, mem_size);
447 wp_addr_range(mem, mem_size);
449 ret = pagemap_ioctl(mem, mem_size, vec, vec_size,
456 mem[i * page_size]++;
458 ret = pagemap_ioctl(mem, mem_size, vec, vec_size,
466 ret = pagemap_ioctl(mem, mem_size, vec, vec_size,
474 ret = pagemap_ioctl(mem, mem_size, vec, vec_size,
485 wp_free(mem, mem_size);
486 munmap(mem, mem_size);
497 mem = mmap(NULL, mem_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
498 if (mem == MAP_FAILED)
501 wp_init(mem, mem_size);
502 wp_addr_range(mem, mem_size);
506 walk_end = (long)mem;
510 mem[i]++;
516 ret = pagemap_ioc((void *)walk_end, mem_size-(walk_end - (long)mem), vec,
536 wp_free(mem, mem_size);
537 munmap(mem, mem_size);
547 mem = mmap(NULL, mem_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
548 if (mem == MAP_FAILED)
551 wp_init(mem, mem_size);
552 wp_addr_range(mem, mem_size);
554 memset(mem, 0, mem_size);
556 ret = pagemap_ioc(mem, 0, vec, vec_size, 0,
560 ksft_test_result(ret == 0 && walk_end == (long)mem,
563 ret = pagemap_ioc(mem, 0, vec, vec_size, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC,
567 ksft_test_result(ret == 0 && walk_end == (long)mem,
570 ret = pagemap_ioc(mem, 0, vec, 0, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC,
574 ksft_test_result(ret == 0 && walk_end == (long)mem,
577 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0,
581 ksft_test_result(ret == 1 && walk_end == (long)(mem + mem_size),
584 ret = pagemap_ioc(mem, mem_size, vec, 1, 0,
588 ksft_test_result(ret == 1 && walk_end == (long)(mem + mem_size),
591 ret = pagemap_ioc(mem, mem_size, vec, 1, 0,
595 ksft_test_result(ret == 1 && walk_end == (long)(mem + mem_size),
598 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0,
602 ksft_test_result(ret == 1 && walk_end == (long)(mem + mem_size/2),
605 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0,
609 ksft_test_result(ret == 1 && walk_end == (long)(mem + page_size),
612 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0,
616 ksft_test_result(ret == 1 && walk_end == (long)(mem + mem_size),
619 wp_addr_range(mem, mem_size);
621 mem[i]++;
623 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0,
627 ksft_test_result((unsigned long)ret == vec_size/2 && walk_end == (long)(mem + mem_size),
630 ret = pagemap_ioc(mem, mem_size, vec, 1, 0,
634 ksft_test_result(ret == 1 && walk_end == (long)(mem + page_size * 2),
637 ret = pagemap_ioc(mem, mem_size, vec, 1, 0,
641 ksft_test_result(ret == 1 && walk_end == (long)(mem + page_size * 2),
644 ret = pagemap_ioc(mem, mem_size, vec, vec_size/2, 0,
648 ksft_test_result((unsigned long)ret == vec_size/2 && walk_end == (long)(mem + mem_size),
651 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0,
655 ksft_test_result((unsigned long)ret == vec_size/2 && walk_end == (long)(mem + mem_size),
658 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0,
662 ksft_test_result((unsigned long)ret == vec_size/2 && walk_end == (long)(mem + mem_size),
665 ret = pagemap_ioc(mem, mem_size, vec, vec_size, 0,
669 ksft_test_result(ret == 1 && walk_end == (long)(mem + page_size * 2),
673 wp_free(mem, mem_size);
674 munmap(mem, mem_size);
679 int base_tests(char *prefix, char *mem, unsigned long long mem_size, int skip)
701 written = pagemap_ioctl(mem, mem_size, vec, 1, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC,
709 memset(mem, -1, mem_size);
711 written = pagemap_ioctl(mem, mem_size, vec, 1, 0, 0, PAGE_IS_WRITTEN, 0, 0,
720 written = pagemap_ioctl(mem, mem_size, vec, 1, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC,
725 memset(mem + page_size, 0, mem_size - (2 * page_size));
727 written = pagemap_ioctl(mem, mem_size, vec, 1, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC,
735 written = pagemap_ioctl(mem, mem_size, vec, 1, 0, 0,
744 written = pagemap_ioctl(mem, mem_size, vec, 1, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC,
749 mem[vec_size/2 * page_size]++;
751 written = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0, PAGE_IS_WRITTEN,
760 written = pagemap_ioctl(mem, mem_size, vec, 1, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC,
765 mem[vec_size/2 * page_size]++;
766 mem[(vec_size/2 + 1) * page_size]++;
768 written = pagemap_ioctl(&mem[vec_size/2 * page_size], 2 * page_size, vec, 1, 0,
773 ksft_test_result(written == 1 && vec[0].start == (uintptr_t)(&mem[vec_size/2 * page_size])
1056 char *mem, *fmem;
1065 mem = mmap(NULL, mem_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
1066 if (mem == MAP_FAILED || vec == MAP_FAILED)
1069 wp_init(mem, mem_size);
1070 wp_addr_range(mem, mem_size);
1072 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size,
1076 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0,
1079 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0,
1082 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0,
1085 ksft_test_result(pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0,
1089 wp_free(mem, mem_size);
1090 munmap(mem, mem_size);
1093 mem = mmap(NULL, mem_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
1094 if (mem == MAP_FAILED)
1096 wp_init(mem, mem_size);
1097 wp_addr_range(mem, mem_size);
1099 memset(mem, 0, mem_size);
1101 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0,
1103 ksft_test_result(ret >= 0 && vec[0].start == (uintptr_t)mem && LEN(vec[0]) == vec_size &&
1109 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0,
1111 ksft_test_result(ret >= 0 && vec[0].start == (uintptr_t)mem && LEN(vec[0]) == vec_size &&
1117 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0,
1119 ksft_test_result(ret >= 0 && vec[0].start == (uintptr_t)mem && LEN(vec[0]) == vec_size &&
1126 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0,
1131 ret = pagemap_ioctl(mem, mem_size, vec, vec_size, 0, 0,
1135 wp_free(mem, mem_size);
1136 munmap(mem, mem_size);
1139 mem = mmap(NULL, mem_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
1140 if (mem == MAP_FAILED)
1142 wp_init(mem, mem_size);
1143 wp_addr_range(mem, mem_size);
1145 memset(mem, 0, mem_size);
1147 ret = pagemap_ioctl(mem, mem_size, vec, vec_size,
1150 ksft_test_result(ret >= 0 && vec[0].start == (uintptr_t)mem && LEN(vec[0]) == vec_size &&
1153 wp_free(mem, mem_size);
1154 munmap(mem, mem_size);
1227 char *mem, *mem2;
1237 mem = mmap(0, 2 * page_size, PROT_READ|PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
1238 if (mem == MAP_FAILED)
1240 wp_init(mem, 2 * page_size);
1241 wp_addr_range(mem, 2 * page_size);
1244 memset(mem, 1, 2 * page_size);
1246 ret = pagemap_ioctl(mem, 2 * page_size, &vec, 1, 0, 0, PAGE_IS_WRITTEN,
1254 wp_addr_range(mem, 2 * page_size);
1256 ksft_test_result(pagemap_ioctl(mem, 2 * page_size, &vec, 1, 0, 0,
1261 mem2 = mmap(mem + page_size, page_size, PROT_READ|PROT_WRITE,
1269 mprotect(mem, page_size, PROT_NONE);
1270 mprotect(mem, 2 * page_size, PROT_READ);
1271 mprotect(mem, 2 * page_size, PROT_READ|PROT_WRITE);
1274 memset(mem, 2, 2 * page_size);
1277 mprotect(mem, page_size, PROT_NONE);
1278 mprotect(mem, page_size, PROT_READ);
1279 mprotect(mem, page_size, PROT_READ|PROT_WRITE);
1281 ret = pagemap_ioctl(mem, 2 * page_size, &vec, 1, 0, 0, PAGE_IS_WRITTEN,
1290 wp_addr_range(mem, 2 * page_size);
1292 memset(mem, 'A', 2 * page_size);
1294 ret = pagemap_ioctl(mem, 2 * page_size, &vec, 1, 0, 0, PAGE_IS_WRITTEN,
1302 wp_free(mem, 2 * page_size);
1303 munmap(mem, 2 * page_size);
1314 static ssize_t get_dirty_pages_reset(char *mem, unsigned int count,
1324 arg.start = (uintptr_t)mem;
1326 arg.end = (uintptr_t)(mem + count * page_size);
1350 void *thread_proc(void *mem)
1352 int *m = mem;
1395 char *mem;
1404 mem = mmap(NULL, 0x1000 * nthreads * pages_per_thread, PROT_READ | PROT_WRITE,
1406 if (mem == MAP_FAILED)
1409 wp_init(mem, 0x1000 * nthreads * pages_per_thread);
1410 wp_addr_range(mem, 0x1000 * nthreads * pages_per_thread);
1412 memset(mem, 0, 0x1000 * nthreads * pages_per_thread);
1414 count = get_dirty_pages_reset(mem, nthreads * pages_per_thread, 1, page_size);
1416 count = get_dirty_pages_reset(mem, nthreads * pages_per_thread, 1, page_size);
1421 pthread_create(&th, NULL, thread_proc, mem + 0x1000 * i * pages_per_thread);
1431 count = get_dirty_pages_reset(mem, nthreads * pages_per_thread, 1,
1442 c = get_dirty_pages_reset(mem, nthreads * pages_per_thread, 1, page_size);
1487 char *mem, *map, *fmem;
1511 mem = mmap(NULL, mem_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
1512 if (mem == MAP_FAILED)
1514 wp_init(mem, mem_size);
1515 wp_addr_range(mem, mem_size);
1517 base_tests("Page testing:", mem, mem_size, 0);
1519 wp_free(mem, mem_size);
1520 munmap(mem, mem_size);
1524 mem = mmap(NULL, mem_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
1525 if (mem == MAP_FAILED)
1527 wp_init(mem, mem_size);
1528 wp_addr_range(mem, mem_size);
1530 base_tests("Large Page testing:", mem, mem_size, 0);
1532 wp_free(mem, mem_size);
1533 munmap(mem, mem_size);
1549 mem = gethugetlb_mem(mem_size, &shmid);
1550 if (mem) {
1551 wp_init(mem, mem_size);
1552 wp_addr_range(mem, mem_size);
1554 base_tests("Hugetlb shmem testing:", mem, mem_size, 0);
1556 wp_free(mem, mem_size);
1563 mem = gethugetlb_mem(mem_size, NULL);
1564 if (mem) {
1565 wp_init(mem, mem_size);
1566 wp_addr_range(mem, mem_size);
1568 base_tests("Hugetlb mem testing:", mem, mem_size, 0);
1570 wp_free(mem, mem_size);
1572 base_tests("Hugetlb mem testing:", NULL, 0, 1);
1580 mem = mmap(NULL, mem_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
1581 if (mem != MAP_FAILED) {
1582 wp_init(mem, mem_size);
1583 wp_addr_range(mem, mem_size);
1585 base_tests("Hugetlb shmem testing:", mem, mem_size, 0);
1587 wp_free(mem, mem_size);