• Home
  • Raw
  • Download

Lines Matching refs:buffer

126 			   struct hmm_buffer *buffer,  in hmm_dmirror_cmd()  argument
133 cmd.addr = (__u64)buffer->ptr; in hmm_dmirror_cmd()
134 cmd.ptr = (__u64)buffer->mirror; in hmm_dmirror_cmd()
145 buffer->cpages = cmd.cpages; in hmm_dmirror_cmd()
146 buffer->faults = cmd.faults; in hmm_dmirror_cmd()
151 static void hmm_buffer_free(struct hmm_buffer *buffer) in hmm_buffer_free() argument
153 if (buffer == NULL) in hmm_buffer_free()
156 if (buffer->ptr) in hmm_buffer_free()
157 munmap(buffer->ptr, buffer->size); in hmm_buffer_free()
158 free(buffer->mirror); in hmm_buffer_free()
159 free(buffer); in hmm_buffer_free()
226 struct hmm_buffer *buffer; in TEST_F() local
238 buffer = malloc(sizeof(*buffer)); in TEST_F()
239 ASSERT_NE(buffer, NULL); in TEST_F()
241 buffer->fd = -1; in TEST_F()
242 buffer->size = size; in TEST_F()
243 buffer->mirror = malloc(size); in TEST_F()
244 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
246 buffer->ptr = mmap(NULL, size, in TEST_F()
249 buffer->fd, 0); in TEST_F()
250 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
257 for (ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
261 ret = mprotect(buffer->ptr, size, PROT_READ); in TEST_F()
265 val = *(int *)(buffer->ptr + self->page_size); in TEST_F()
269 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_READ, buffer, npages); in TEST_F()
271 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
272 ASSERT_EQ(buffer->faults, 1); in TEST_F()
275 ptr = buffer->mirror; in TEST_F()
281 hmm_buffer_free(buffer); in TEST_F()
290 struct hmm_buffer *buffer; in TEST_F() local
301 buffer = malloc(sizeof(*buffer)); in TEST_F()
302 ASSERT_NE(buffer, NULL); in TEST_F()
304 buffer->fd = -1; in TEST_F()
305 buffer->size = size; in TEST_F()
306 buffer->mirror = malloc(size); in TEST_F()
307 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
309 buffer->ptr = mmap(NULL, size, in TEST_F()
312 buffer->fd, 0); in TEST_F()
313 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
316 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
320 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
324 ret = mprotect(buffer->ptr, size, PROT_NONE); in TEST_F()
328 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_READ, buffer, npages); in TEST_F()
332 ret = mprotect(buffer->ptr, size, PROT_READ); in TEST_F()
334 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
338 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
341 hmm_buffer_free(buffer); in TEST_F()
349 struct hmm_buffer *buffer; in TEST_F() local
360 buffer = malloc(sizeof(*buffer)); in TEST_F()
361 ASSERT_NE(buffer, NULL); in TEST_F()
363 buffer->fd = -1; in TEST_F()
364 buffer->size = size; in TEST_F()
365 buffer->mirror = malloc(size); in TEST_F()
366 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
368 buffer->ptr = mmap(NULL, size, in TEST_F()
371 buffer->fd, 0); in TEST_F()
372 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
375 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
379 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_WRITE, buffer, npages); in TEST_F()
381 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
382 ASSERT_EQ(buffer->faults, 1); in TEST_F()
385 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
388 hmm_buffer_free(buffer); in TEST_F()
397 struct hmm_buffer *buffer; in TEST_F() local
408 buffer = malloc(sizeof(*buffer)); in TEST_F()
409 ASSERT_NE(buffer, NULL); in TEST_F()
411 buffer->fd = -1; in TEST_F()
412 buffer->size = size; in TEST_F()
413 buffer->mirror = malloc(size); in TEST_F()
414 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
416 buffer->ptr = mmap(NULL, size, in TEST_F()
419 buffer->fd, 0); in TEST_F()
420 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
423 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_READ, buffer, 1); in TEST_F()
425 ASSERT_EQ(buffer->cpages, 1); in TEST_F()
426 ASSERT_EQ(buffer->faults, 1); in TEST_F()
429 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
433 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_WRITE, buffer, npages); in TEST_F()
437 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
441 ret = mprotect(buffer->ptr, size, PROT_WRITE | PROT_READ); in TEST_F()
445 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_WRITE, buffer, npages); in TEST_F()
447 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
448 ASSERT_EQ(buffer->faults, 1); in TEST_F()
451 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
454 hmm_buffer_free(buffer); in TEST_F()
463 struct hmm_buffer *buffer; in TEST_F() local
476 buffer = malloc(sizeof(*buffer)); in TEST_F()
477 ASSERT_NE(buffer, NULL); in TEST_F()
479 buffer->fd = -1; in TEST_F()
480 buffer->size = size; in TEST_F()
481 buffer->mirror = malloc(size); in TEST_F()
482 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
484 buffer->ptr = mmap(NULL, size, in TEST_F()
487 buffer->fd, 0); in TEST_F()
488 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
491 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
495 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
506 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
512 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
514 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
522 ret = hmm_dmirror_cmd(child_fd, HMM_DMIRROR_WRITE, buffer, npages); in TEST_F()
524 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
525 ASSERT_EQ(buffer->faults, 1); in TEST_F()
528 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
541 struct hmm_buffer *buffer; in TEST_F() local
554 buffer = malloc(sizeof(*buffer)); in TEST_F()
555 ASSERT_NE(buffer, NULL); in TEST_F()
557 buffer->fd = -1; in TEST_F()
558 buffer->size = size; in TEST_F()
559 buffer->mirror = malloc(size); in TEST_F()
560 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
562 buffer->ptr = mmap(NULL, size, in TEST_F()
565 buffer->fd, 0); in TEST_F()
566 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
569 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
573 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
584 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
590 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
592 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
600 ret = hmm_dmirror_cmd(child_fd, HMM_DMIRROR_WRITE, buffer, npages); in TEST_F()
602 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
603 ASSERT_EQ(buffer->faults, 1); in TEST_F()
606 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
618 struct hmm_buffer *buffer; in TEST_F() local
629 buffer = malloc(sizeof(*buffer)); in TEST_F()
630 ASSERT_NE(buffer, NULL); in TEST_F()
632 buffer->fd = -1; in TEST_F()
633 buffer->size = size; in TEST_F()
634 buffer->mirror = malloc(size); in TEST_F()
635 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
637 buffer->ptr = mmap(NULL, size, in TEST_F()
640 buffer->fd, 0); in TEST_F()
641 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
645 map = (void *)ALIGN((uintptr_t)buffer->ptr, size); in TEST_F()
648 old_ptr = buffer->ptr; in TEST_F()
649 buffer->ptr = map; in TEST_F()
652 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
656 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_WRITE, buffer, npages); in TEST_F()
658 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
659 ASSERT_EQ(buffer->faults, 1); in TEST_F()
662 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
665 buffer->ptr = old_ptr; in TEST_F()
666 hmm_buffer_free(buffer); in TEST_F()
675 struct hmm_buffer *buffer; in TEST_F() local
696 buffer = malloc(sizeof(*buffer)); in TEST_F()
697 ASSERT_NE(buffer, NULL); in TEST_F()
699 buffer->ptr = get_hugepage_region(size, GHR_STRICT); in TEST_F()
700 if (buffer->ptr == NULL) { in TEST_F()
701 free(buffer); in TEST_F()
705 buffer->fd = -1; in TEST_F()
706 buffer->size = size; in TEST_F()
707 buffer->mirror = malloc(size); in TEST_F()
708 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
711 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
715 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_WRITE, buffer, npages); in TEST_F()
717 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
718 ASSERT_EQ(buffer->faults, 1); in TEST_F()
721 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
724 free_hugepage_region(buffer->ptr); in TEST_F()
725 buffer->ptr = NULL; in TEST_F()
726 hmm_buffer_free(buffer); in TEST_F()
735 struct hmm_buffer *buffer; in TEST_F() local
751 buffer = malloc(sizeof(*buffer)); in TEST_F()
752 ASSERT_NE(buffer, NULL); in TEST_F()
754 buffer->fd = fd; in TEST_F()
755 buffer->size = size; in TEST_F()
756 buffer->mirror = malloc(size); in TEST_F()
757 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
760 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
762 len = pwrite(fd, buffer->mirror, size, 0); in TEST_F()
764 memset(buffer->mirror, 0, size); in TEST_F()
766 buffer->ptr = mmap(NULL, size, in TEST_F()
769 buffer->fd, 0); in TEST_F()
770 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
773 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_READ, buffer, npages); in TEST_F()
775 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
776 ASSERT_EQ(buffer->faults, 1); in TEST_F()
779 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
782 hmm_buffer_free(buffer); in TEST_F()
790 struct hmm_buffer *buffer; in TEST_F() local
806 buffer = malloc(sizeof(*buffer)); in TEST_F()
807 ASSERT_NE(buffer, NULL); in TEST_F()
809 buffer->fd = fd; in TEST_F()
810 buffer->size = size; in TEST_F()
811 buffer->mirror = malloc(size); in TEST_F()
812 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
814 buffer->ptr = mmap(NULL, size, in TEST_F()
817 buffer->fd, 0); in TEST_F()
818 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
821 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
825 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_WRITE, buffer, npages); in TEST_F()
827 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
828 ASSERT_EQ(buffer->faults, 1); in TEST_F()
831 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
835 len = pread(fd, buffer->mirror, size, 0); in TEST_F()
837 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
840 hmm_buffer_free(buffer); in TEST_F()
848 struct hmm_buffer *buffer; in TEST_F() local
859 buffer = malloc(sizeof(*buffer)); in TEST_F()
860 ASSERT_NE(buffer, NULL); in TEST_F()
862 buffer->fd = -1; in TEST_F()
863 buffer->size = size; in TEST_F()
864 buffer->mirror = malloc(size); in TEST_F()
865 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
867 buffer->ptr = mmap(NULL, size, in TEST_F()
870 buffer->fd, 0); in TEST_F()
871 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
874 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
878 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_MIGRATE, buffer, npages); in TEST_F()
880 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
883 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
886 hmm_buffer_free(buffer); in TEST_F()
896 struct hmm_buffer *buffer; in TEST_F() local
907 buffer = malloc(sizeof(*buffer)); in TEST_F()
908 ASSERT_NE(buffer, NULL); in TEST_F()
910 buffer->fd = -1; in TEST_F()
911 buffer->size = size; in TEST_F()
912 buffer->mirror = malloc(size); in TEST_F()
913 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
915 buffer->ptr = mmap(NULL, size, in TEST_F()
918 buffer->fd, 0); in TEST_F()
919 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
922 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
926 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_MIGRATE, buffer, npages); in TEST_F()
928 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
931 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
935 for (i = 0, ptr = buffer->ptr; i < size / (2 * sizeof(*ptr)); ++i) in TEST_F()
939 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_MIGRATE, buffer, npages); in TEST_F()
941 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
944 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
947 hmm_buffer_free(buffer); in TEST_F()
955 struct hmm_buffer *buffer; in TEST_F() local
964 buffer = malloc(sizeof(*buffer)); in TEST_F()
965 ASSERT_NE(buffer, NULL); in TEST_F()
967 buffer->fd = -1; in TEST_F()
968 buffer->size = size; in TEST_F()
969 buffer->mirror = malloc(size); in TEST_F()
970 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
972 buffer->ptr = mmap(NULL, size, in TEST_F()
975 buffer->fd, 0); in TEST_F()
976 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
979 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_MIGRATE, buffer, npages); in TEST_F()
982 hmm_buffer_free(buffer); in TEST_F()
990 struct hmm_buffer *buffer; in TEST_F() local
1001 buffer = malloc(sizeof(*buffer)); in TEST_F()
1002 ASSERT_NE(buffer, NULL); in TEST_F()
1004 buffer->fd = -1; in TEST_F()
1005 buffer->size = size; in TEST_F()
1006 buffer->mirror = malloc(size); in TEST_F()
1007 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
1010 buffer->ptr = mmap(NULL, size, in TEST_F()
1013 buffer->fd, 0); in TEST_F()
1014 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
1015 p = buffer->ptr; in TEST_F()
1018 ret = hmm_dmirror_cmd(self->fd1, HMM_DMIRROR_MIGRATE, buffer, npages); in TEST_F()
1022 ret = munmap(buffer->ptr + self->page_size, self->page_size); in TEST_F()
1026 ret = hmm_dmirror_cmd(self->fd1, HMM_DMIRROR_MIGRATE, buffer, 3); in TEST_F()
1030 ret = mprotect(buffer->ptr + 2 * self->page_size, self->page_size, in TEST_F()
1033 ptr = (int *)(buffer->ptr + 2 * self->page_size); in TEST_F()
1038 ret = mprotect(buffer->ptr + 3 * self->page_size, self->page_size, in TEST_F()
1041 ptr = (int *)(buffer->ptr + 3 * self->page_size); in TEST_F()
1043 ret = mprotect(buffer->ptr + 3 * self->page_size, self->page_size, in TEST_F()
1048 ret = mprotect(buffer->ptr + 4 * self->page_size, 2 * self->page_size, in TEST_F()
1051 ptr = (int *)(buffer->ptr + 4 * self->page_size); in TEST_F()
1053 ptr = (int *)(buffer->ptr + 5 * self->page_size); in TEST_F()
1057 buffer->ptr = p + 2 * self->page_size; in TEST_F()
1058 ret = hmm_dmirror_cmd(self->fd1, HMM_DMIRROR_MIGRATE, buffer, 4); in TEST_F()
1060 ASSERT_EQ(buffer->cpages, 4); in TEST_F()
1063 buffer->ptr = p + 5 * self->page_size; in TEST_F()
1064 ret = hmm_dmirror_cmd(self->fd0, HMM_DMIRROR_MIGRATE, buffer, 1); in TEST_F()
1066 buffer->ptr = p; in TEST_F()
1068 buffer->ptr = p; in TEST_F()
1069 hmm_buffer_free(buffer); in TEST_F()
1078 struct hmm_buffer *buffer; in TEST_F() local
1091 buffer = malloc(sizeof(*buffer)); in TEST_F()
1092 ASSERT_NE(buffer, NULL); in TEST_F()
1094 buffer->fd = -1; in TEST_F()
1095 buffer->size = size; in TEST_F()
1096 buffer->mirror = malloc(size); in TEST_F()
1097 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
1099 buffer->ptr = mmap(NULL, size, in TEST_F()
1102 buffer->fd, 0); in TEST_F()
1103 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
1106 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
1110 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_MIGRATE, buffer, in TEST_F()
1113 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
1116 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
1120 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
1123 hmm_buffer_free(buffer); in TEST_F()
1132 struct hmm_buffer *buffer; in TEST_F() local
1145 buffer = malloc(sizeof(*buffer)); in TEST_F()
1146 ASSERT_NE(buffer, NULL); in TEST_F()
1148 buffer->fd = -1; in TEST_F()
1149 buffer->size = size; in TEST_F()
1150 buffer->mirror = malloc(size); in TEST_F()
1151 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
1153 buffer->ptr = mmap(NULL, size, in TEST_F()
1156 buffer->fd, 0); in TEST_F()
1157 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
1160 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
1164 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_READ, buffer, in TEST_F()
1167 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
1168 ASSERT_EQ(buffer->faults, 1); in TEST_F()
1171 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
1174 hmm_buffer_free(buffer); in TEST_F()
1180 struct hmm_buffer *buffer = p; in unmap_buffer() local
1184 munmap(buffer->ptr + buffer->size / 2, buffer->size / 2); in unmap_buffer()
1185 buffer->ptr = NULL; in unmap_buffer()
1206 struct hmm_buffer *buffer; in TEST_F() local
1211 buffer = malloc(sizeof(*buffer)); in TEST_F()
1212 ASSERT_NE(buffer, NULL); in TEST_F()
1214 buffer->fd = -1; in TEST_F()
1215 buffer->size = size; in TEST_F()
1216 buffer->mirror = malloc(size); in TEST_F()
1217 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
1219 buffer->ptr = mmap(NULL, size, in TEST_F()
1222 buffer->fd, 0); in TEST_F()
1223 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
1226 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
1229 rc = pthread_create(&thread, NULL, unmap_buffer, buffer); in TEST_F()
1233 rc = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_READ, buffer, in TEST_F()
1236 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
1237 ASSERT_EQ(buffer->faults, 1); in TEST_F()
1240 for (i = 0, ptr = buffer->mirror; in TEST_F()
1247 hmm_buffer_free(buffer); in TEST_F()
1256 struct hmm_buffer *buffer; in TEST_F() local
1265 buffer = malloc(sizeof(*buffer)); in TEST_F()
1266 ASSERT_NE(buffer, NULL); in TEST_F()
1268 buffer->fd = -1; in TEST_F()
1269 buffer->size = size; in TEST_F()
1270 buffer->mirror = malloc(npages); in TEST_F()
1271 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
1275 buffer->ptr = mmap(NULL, size, in TEST_F()
1279 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
1282 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_SNAPSHOT, buffer, npages); in TEST_F()
1284 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
1287 m = buffer->mirror; in TEST_F()
1290 hmm_buffer_free(buffer); in TEST_F()
1298 struct hmm_buffer *buffer; in TEST_F() local
1310 buffer = malloc(sizeof(*buffer)); in TEST_F()
1311 ASSERT_NE(buffer, NULL); in TEST_F()
1313 buffer->fd = -1; in TEST_F()
1314 buffer->size = size; in TEST_F()
1315 buffer->mirror = malloc(npages); in TEST_F()
1316 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
1319 buffer->ptr = mmap(NULL, size, in TEST_F()
1322 buffer->fd, 0); in TEST_F()
1323 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
1324 p = buffer->ptr; in TEST_F()
1327 ret = munmap(buffer->ptr + self->page_size, self->page_size); in TEST_F()
1331 ret = mprotect(buffer->ptr + 2 * self->page_size, self->page_size, in TEST_F()
1334 ptr = (int *)(buffer->ptr + 2 * self->page_size); in TEST_F()
1339 ret = mprotect(buffer->ptr + 3 * self->page_size, self->page_size, in TEST_F()
1342 ptr = (int *)(buffer->ptr + 3 * self->page_size); in TEST_F()
1344 ret = mprotect(buffer->ptr + 3 * self->page_size, self->page_size, in TEST_F()
1349 ret = mprotect(buffer->ptr + 4 * self->page_size, 3 * self->page_size, in TEST_F()
1352 ptr = (int *)(buffer->ptr + 4 * self->page_size); in TEST_F()
1356 buffer->ptr = p + 5 * self->page_size; in TEST_F()
1357 ret = hmm_dmirror_cmd(self->fd0, HMM_DMIRROR_MIGRATE, buffer, 1); in TEST_F()
1359 ASSERT_EQ(buffer->cpages, 1); in TEST_F()
1362 buffer->ptr = p + 6 * self->page_size; in TEST_F()
1363 ret = hmm_dmirror_cmd(self->fd1, HMM_DMIRROR_MIGRATE, buffer, 1); in TEST_F()
1365 ASSERT_EQ(buffer->cpages, 1); in TEST_F()
1368 buffer->ptr = p; in TEST_F()
1369 ret = hmm_dmirror_cmd(self->fd0, HMM_DMIRROR_SNAPSHOT, buffer, npages); in TEST_F()
1371 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
1374 m = buffer->mirror; in TEST_F()
1384 hmm_buffer_free(buffer); in TEST_F()
1394 struct hmm_buffer *buffer; in TEST_F() local
1416 buffer = malloc(sizeof(*buffer)); in TEST_F()
1417 ASSERT_NE(buffer, NULL); in TEST_F()
1419 buffer->ptr = get_hugepage_region(size, GHR_STRICT); in TEST_F()
1420 if (buffer->ptr == NULL) { in TEST_F()
1421 free(buffer); in TEST_F()
1425 buffer->size = size; in TEST_F()
1426 buffer->mirror = malloc(npages); in TEST_F()
1427 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
1430 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
1434 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_SNAPSHOT, buffer, npages); in TEST_F()
1436 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
1439 m = buffer->mirror; in TEST_F()
1445 ret = mprotect(buffer->ptr, size, PROT_READ); in TEST_F()
1449 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_SNAPSHOT, buffer, npages); in TEST_F()
1451 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
1454 m = buffer->mirror; in TEST_F()
1459 free_hugepage_region(buffer->ptr); in TEST_F()
1460 buffer->ptr = NULL; in TEST_F()
1461 hmm_buffer_free(buffer); in TEST_F()
1470 struct hmm_buffer *buffer; in TEST_F() local
1480 buffer = malloc(sizeof(*buffer)); in TEST_F()
1481 ASSERT_NE(buffer, NULL); in TEST_F()
1483 buffer->fd = -1; in TEST_F()
1484 buffer->size = size; in TEST_F()
1485 buffer->mirror = malloc(npages); in TEST_F()
1486 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
1489 buffer->ptr = mmap(NULL, size, in TEST_F()
1492 buffer->fd, 0); in TEST_F()
1493 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
1496 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
1500 ret = mprotect(buffer->ptr, size, PROT_READ); in TEST_F()
1504 ret = hmm_dmirror_cmd(self->fd0, HMM_DMIRROR_READ, buffer, npages); in TEST_F()
1506 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
1507 ASSERT_EQ(buffer->faults, 1); in TEST_F()
1510 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
1514 ret = hmm_dmirror_cmd(self->fd1, HMM_DMIRROR_READ, buffer, npages); in TEST_F()
1516 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
1517 ASSERT_EQ(buffer->faults, 1); in TEST_F()
1520 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
1524 ret = munmap(buffer->ptr + self->page_size, self->page_size); in TEST_F()
1527 hmm_buffer_free(buffer); in TEST_F()
1535 struct hmm_buffer *buffer; in TEST_F() local
1546 buffer = malloc(sizeof(*buffer)); in TEST_F()
1547 ASSERT_NE(buffer, NULL); in TEST_F()
1549 buffer->fd = -1; in TEST_F()
1550 buffer->size = size; in TEST_F()
1551 buffer->mirror = malloc(size); in TEST_F()
1552 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
1554 buffer->ptr = mmap(NULL, size, in TEST_F()
1557 buffer->fd, 0); in TEST_F()
1558 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
1561 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
1565 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_EXCLUSIVE, buffer, npages); in TEST_F()
1567 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
1570 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
1574 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
1577 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
1581 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_CHECK_EXCLUSIVE, buffer, npages); in TEST_F()
1584 hmm_buffer_free(buffer); in TEST_F()
1589 struct hmm_buffer *buffer; in TEST_F() local
1600 buffer = malloc(sizeof(*buffer)); in TEST_F()
1601 ASSERT_NE(buffer, NULL); in TEST_F()
1603 buffer->fd = -1; in TEST_F()
1604 buffer->size = size; in TEST_F()
1605 buffer->mirror = malloc(size); in TEST_F()
1606 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
1608 buffer->ptr = mmap(NULL, size, in TEST_F()
1611 buffer->fd, 0); in TEST_F()
1612 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
1615 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
1619 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_EXCLUSIVE, buffer, npages); in TEST_F()
1621 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
1624 for (i = 0, ptr = buffer->mirror; i < size / sizeof(*ptr); ++i) in TEST_F()
1627 ret = mprotect(buffer->ptr, size, PROT_READ); in TEST_F()
1631 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_WRITE, buffer, npages); in TEST_F()
1634 hmm_buffer_free(buffer); in TEST_F()
1642 struct hmm_buffer *buffer; in TEST_F() local
1653 buffer = malloc(sizeof(*buffer)); in TEST_F()
1654 ASSERT_NE(buffer, NULL); in TEST_F()
1656 buffer->fd = -1; in TEST_F()
1657 buffer->size = size; in TEST_F()
1658 buffer->mirror = malloc(size); in TEST_F()
1659 ASSERT_NE(buffer->mirror, NULL); in TEST_F()
1661 buffer->ptr = mmap(NULL, size, in TEST_F()
1664 buffer->fd, 0); in TEST_F()
1665 ASSERT_NE(buffer->ptr, MAP_FAILED); in TEST_F()
1668 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
1672 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_EXCLUSIVE, buffer, npages); in TEST_F()
1674 ASSERT_EQ(buffer->cpages, npages); in TEST_F()
1679 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
1682 for (i = 0, ptr = buffer->ptr; i < size / sizeof(*ptr); ++i) in TEST_F()
1685 hmm_buffer_free(buffer); in TEST_F()