Lines Matching refs:page
74 void munmap_reserve(void *page, int size)
76 if (munmap(page, size) < 0)
78 if (mmap(page, size, PROT_NONE, MAP_PRIVATE|MAP_FIXED, 0, 0) < 0)
164 void inject_madvise(char *page)
166 if (madvise(page, PS, MADV_POISON) != 0) {
175 u64 page_to_pfn(char *page)
187 ((u64)page / PS)*sizeof(u64)) != sizeof(u64))
200 * Slightly racy with page migration because we don't mlock the page.
202 void inject_mce_inject(char *page)
204 u64 pfn = page_to_pfn(page);
227 void (*inject)(char *page) = inject_madvise;
229 void poison(char *msg, char *page, enum rmode mode)
231 expected_addr = page;
235 inject(page);
254 void recover(char *msg, char *page, enum rmode mode)
256 expected_addr = page;
263 *page = 2;
267 *page = 4;
270 printf("\treading %x\n", *(unsigned char *)page);
273 printf("\treading %x\n", *(unsigned char *)page);
279 printf("XXX: %s: page not poisoned after injection\n", msg);
290 void testmem(char *msg, char *page, enum rmode mode)
292 printf("\t%s poisoning page %p\n", msg, page);
293 poison(msg, page, mode);
294 recover(msg, page, mode);
357 char *page;
358 page = checked_mmap(NULL, PS, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_POPULATE, 0, 0);
359 testmem("dirty", page, MWRITE);
364 char *page;
365 page = checked_mmap(NULL, PS, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_POPULATE, 0, 0);
366 testmem("dirty", page, MWRITE);
367 munmap_reserve(page, PS);
372 char *page;
373 page = checked_mmap(NULL, PS, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_LOCKED, 0, 0);
374 testmem("mlocked", page, MWRITE);
379 char *page;
386 page = checked_mmap(NULL, PS, PROT_READ|PROT_WRITE, MAP_SHARED|flags,
390 testmem(name, page, MREAD_OK);
391 /* reread page from disk */
392 printf("\t reading %x\n", *(unsigned char *)page);
393 testmem(name, page, MWRITE_OK);
415 char *page;
420 page = checked_mmap(NULL, PS, PROT_READ,
422 testmem(ndesc(nbuf, name, "initial"), page, MREAD);
423 expecterr("msync expect error", msync(page, PS, MS_SYNC) < 0);
425 munmap_reserve(page, PS);
429 page = checked_mmap(NULL, PS, PROT_READ, MAP_SHARED|MAP_POPULATE|flags,
431 recover(ndesc(nbuf, name, "populated"), page, MREAD_OK);
433 munmap_reserve(page, PS);
437 page = checked_mmap(NULL, PS, PROT_READ, MAP_SHARED|flags, fd, 0);
438 recover(ndesc(nbuf, name, "fault"), page, MREAD_OK);
440 munmap_reserve(page, PS);
469 char *page;
472 page = checked_mmap(NULL, PS, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
473 *page = 1;
474 testmem("hole file dirty", page, MREAD);
477 optionalerr("hole msync expect error", msync(page, PS, MS_SYNC) < 0);
486 char *page;
496 page = checked_mmap(NULL, PS*NPAGES, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
499 if (remap_file_pages(page + i*PS, PS, 0, k, 0))
502 *page = 1;
503 testmem("rfp file dirty", page, MREAD);
505 optionalerr("rfp msync expect error", msync(page, PS, MS_SYNC) < 0);
514 * This is quite timing dependent. The sniper might hit the page
534 char *page;
544 poison(arg->msg, arg->page, arg->mode);
567 char *page;
569 page = checked_mmap(NULL, PS, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_POPULATE, fd, 0);
571 arg.page = page;
588 char *page;
592 page = checked_mmap(NULL, PS, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_POPULATE, fd, 0);
593 madvise(page, PS, MADV_DONTNEED);
595 arg.page = page;
635 * if early_kill == 0, parent access the shared page hwpoisoned by child, and
637 * This testcase checks whether if a shared page is hwpoisoned by one process,
638 * another process sharing the page will be killed expectedly.
738 recover("ipv shared page (parent)",
753 testmem("ipv shared page", shared_page, MWRITE);
793 char *page;
798 page = alloc_anonymous_hugepage(HPS, 1);
800 page[0] = 'a';
801 testmem("anonymous hugepage", page, MWRITE);
802 free_anonymous_hugepage(page, HPS);
808 char *page;
816 page = alloc_filebacked_hugepage(buf, HPS, 0, &fd);
818 page[0] = 'a';
819 testmem("file backed hugepage", page, MWRITE);
820 free_filebacked_hugepage(page, HPS, fd, buf);
826 char *page;
831 page = alloc_shm_hugepage(&tmpcount, HPS);
833 page[0] = 'a';
834 testmem("shared memory hugepage", page, MWRITE);
835 free_shm_hugepage(tmpcount, page);
904 /* don't kill me at poison time, but possibly at page fault time */