Lines Matching refs:p
439 void *p; in alloc_mapping() local
441 p = mmap(BASE_ADDR, hpage_pmd_size, PROT_READ | PROT_WRITE, in alloc_mapping()
443 if (p != BASE_ADDR) { in alloc_mapping()
448 return p; in alloc_mapping()
451 static void fill_memory(int *p, unsigned long start, unsigned long end) in fill_memory() argument
456 p[i * page_size / sizeof(*p)] = i + 0xdead0000; in fill_memory()
459 static void validate_memory(int *p, unsigned long start, unsigned long end) in validate_memory() argument
464 if (p[i * page_size / sizeof(*p)] != i + 0xdead0000) { in validate_memory()
466 i, p[i * page_size / sizeof(*p)]); in validate_memory()
473 static bool wait_for_scan(const char *msg, char *p) in wait_for_scan() argument
479 if (check_huge(p)) { in wait_for_scan()
484 madvise(p, hpage_pmd_size, MADV_HUGEPAGE); in wait_for_scan()
491 if (check_huge(p)) in wait_for_scan()
499 madvise(p, hpage_pmd_size, MADV_NOHUGEPAGE); in wait_for_scan()
507 char *p; in alloc_at_fault() local
512 p = alloc_mapping(); in alloc_at_fault()
513 *p = 1; in alloc_at_fault()
515 if (check_huge(p)) in alloc_at_fault()
522 madvise(p, page_size, MADV_DONTNEED); in alloc_at_fault()
524 if (!check_huge(p)) in alloc_at_fault()
528 munmap(p, hpage_pmd_size); in alloc_at_fault()
533 void *p; in collapse_full() local
535 p = alloc_mapping(); in collapse_full()
536 fill_memory(p, 0, hpage_pmd_size); in collapse_full()
537 if (wait_for_scan("Collapse fully populated PTE table", p)) in collapse_full()
539 else if (check_huge(p)) in collapse_full()
543 validate_memory(p, 0, hpage_pmd_size); in collapse_full()
544 munmap(p, hpage_pmd_size); in collapse_full()
549 void *p; in collapse_empty() local
551 p = alloc_mapping(); in collapse_empty()
552 if (wait_for_scan("Do not collapse empty PTE table", p)) in collapse_empty()
554 else if (check_huge(p)) in collapse_empty()
558 munmap(p, hpage_pmd_size); in collapse_empty()
563 void *p; in collapse_single_pte_entry() local
565 p = alloc_mapping(); in collapse_single_pte_entry()
566 fill_memory(p, 0, page_size); in collapse_single_pte_entry()
567 if (wait_for_scan("Collapse PTE table with single PTE entry present", p)) in collapse_single_pte_entry()
569 else if (check_huge(p)) in collapse_single_pte_entry()
573 validate_memory(p, 0, page_size); in collapse_single_pte_entry()
574 munmap(p, hpage_pmd_size); in collapse_single_pte_entry()
581 void *p; in collapse_max_ptes_none() local
586 p = alloc_mapping(); in collapse_max_ptes_none()
588 fill_memory(p, 0, (hpage_pmd_nr - max_ptes_none - 1) * page_size); in collapse_max_ptes_none()
589 if (wait_for_scan("Do not collapse with max_ptes_none exceeded", p)) in collapse_max_ptes_none()
591 else if (check_huge(p)) in collapse_max_ptes_none()
595 validate_memory(p, 0, (hpage_pmd_nr - max_ptes_none - 1) * page_size); in collapse_max_ptes_none()
597 fill_memory(p, 0, (hpage_pmd_nr - max_ptes_none) * page_size); in collapse_max_ptes_none()
598 if (wait_for_scan("Collapse with max_ptes_none PTEs empty", p)) in collapse_max_ptes_none()
600 else if (check_huge(p)) in collapse_max_ptes_none()
604 validate_memory(p, 0, (hpage_pmd_nr - max_ptes_none) * page_size); in collapse_max_ptes_none()
606 munmap(p, hpage_pmd_size); in collapse_max_ptes_none()
612 void *p; in collapse_swapin_single_pte() local
613 p = alloc_mapping(); in collapse_swapin_single_pte()
614 fill_memory(p, 0, hpage_pmd_size); in collapse_swapin_single_pte()
617 if (madvise(p, page_size, MADV_PAGEOUT)) { in collapse_swapin_single_pte()
621 if (check_swap(p, page_size)) { in collapse_swapin_single_pte()
628 if (wait_for_scan("Collapse with swapping in single PTE entry", p)) in collapse_swapin_single_pte()
630 else if (check_huge(p)) in collapse_swapin_single_pte()
634 validate_memory(p, 0, hpage_pmd_size); in collapse_swapin_single_pte()
636 munmap(p, hpage_pmd_size); in collapse_swapin_single_pte()
642 void *p; in collapse_max_ptes_swap() local
644 p = alloc_mapping(); in collapse_max_ptes_swap()
646 fill_memory(p, 0, hpage_pmd_size); in collapse_max_ptes_swap()
648 if (madvise(p, (max_ptes_swap + 1) * page_size, MADV_PAGEOUT)) { in collapse_max_ptes_swap()
652 if (check_swap(p, (max_ptes_swap + 1) * page_size)) { in collapse_max_ptes_swap()
659 if (wait_for_scan("Do not collapse with max_ptes_swap exceeded", p)) in collapse_max_ptes_swap()
661 else if (check_huge(p)) in collapse_max_ptes_swap()
665 validate_memory(p, 0, hpage_pmd_size); in collapse_max_ptes_swap()
667 fill_memory(p, 0, hpage_pmd_size); in collapse_max_ptes_swap()
669 if (madvise(p, max_ptes_swap * page_size, MADV_PAGEOUT)) { in collapse_max_ptes_swap()
673 if (check_swap(p, max_ptes_swap * page_size)) { in collapse_max_ptes_swap()
680 if (wait_for_scan("Collapse with max_ptes_swap pages swapped out", p)) in collapse_max_ptes_swap()
682 else if (check_huge(p)) in collapse_max_ptes_swap()
686 validate_memory(p, 0, hpage_pmd_size); in collapse_max_ptes_swap()
688 munmap(p, hpage_pmd_size); in collapse_max_ptes_swap()
693 void *p; in collapse_single_pte_entry_compound() local
695 p = alloc_mapping(); in collapse_single_pte_entry_compound()
698 madvise(p, hpage_pmd_size, MADV_HUGEPAGE); in collapse_single_pte_entry_compound()
699 fill_memory(p, 0, hpage_pmd_size); in collapse_single_pte_entry_compound()
700 if (check_huge(p)) in collapse_single_pte_entry_compound()
704 madvise(p, hpage_pmd_size, MADV_NOHUGEPAGE); in collapse_single_pte_entry_compound()
707 madvise(p + page_size, hpage_pmd_size - page_size, MADV_DONTNEED); in collapse_single_pte_entry_compound()
708 if (!check_huge(p)) in collapse_single_pte_entry_compound()
713 if (wait_for_scan("Collapse PTE table with single PTE mapping compound page", p)) in collapse_single_pte_entry_compound()
715 else if (check_huge(p)) in collapse_single_pte_entry_compound()
719 validate_memory(p, 0, page_size); in collapse_single_pte_entry_compound()
720 munmap(p, hpage_pmd_size); in collapse_single_pte_entry_compound()
725 void *p; in collapse_full_of_compound() local
727 p = alloc_mapping(); in collapse_full_of_compound()
730 madvise(p, hpage_pmd_size, MADV_HUGEPAGE); in collapse_full_of_compound()
731 fill_memory(p, 0, hpage_pmd_size); in collapse_full_of_compound()
732 if (check_huge(p)) in collapse_full_of_compound()
738 madvise(p, page_size, MADV_NOHUGEPAGE); in collapse_full_of_compound()
739 madvise(p, hpage_pmd_size, MADV_NOHUGEPAGE); in collapse_full_of_compound()
740 if (!check_huge(p)) in collapse_full_of_compound()
745 if (wait_for_scan("Collapse PTE table full of compound pages", p)) in collapse_full_of_compound()
747 else if (check_huge(p)) in collapse_full_of_compound()
751 validate_memory(p, 0, hpage_pmd_size); in collapse_full_of_compound()
752 munmap(p, hpage_pmd_size); in collapse_full_of_compound()
757 void *p; in collapse_compound_extreme() local
760 p = alloc_mapping(); in collapse_compound_extreme()
773 p = mremap(BASE_ADDR - i * page_size, in collapse_compound_extreme()
778 if (p == MAP_FAILED) { in collapse_compound_extreme()
783 p = mremap(BASE_ADDR + 2 * hpage_pmd_size, in collapse_compound_extreme()
788 if (p == MAP_FAILED) { in collapse_compound_extreme()
795 fill_memory(p, 0, hpage_pmd_size); in collapse_compound_extreme()
796 if (!check_huge(p)) in collapse_compound_extreme()
801 if (wait_for_scan("Collapse PTE table full of different compound pages", p)) in collapse_compound_extreme()
803 else if (check_huge(p)) in collapse_compound_extreme()
808 validate_memory(p, 0, hpage_pmd_size); in collapse_compound_extreme()
809 munmap(p, hpage_pmd_size); in collapse_compound_extreme()
815 void *p; in collapse_fork() local
817 p = alloc_mapping(); in collapse_fork()
820 fill_memory(p, 0, page_size); in collapse_fork()
821 if (!check_huge(p)) in collapse_fork()
832 if (!check_huge(p)) in collapse_fork()
837 fill_memory(p, page_size, 2 * page_size); in collapse_fork()
839 if (wait_for_scan("Collapse PTE table with single page shared with parent process", p)) in collapse_fork()
841 else if (check_huge(p)) in collapse_fork()
846 validate_memory(p, 0, page_size); in collapse_fork()
847 munmap(p, hpage_pmd_size); in collapse_fork()
855 if (!check_huge(p)) in collapse_fork()
859 validate_memory(p, 0, page_size); in collapse_fork()
860 munmap(p, hpage_pmd_size); in collapse_fork()
866 void *p; in collapse_fork_compound() local
868 p = alloc_mapping(); in collapse_fork_compound()
871 madvise(p, hpage_pmd_size, MADV_HUGEPAGE); in collapse_fork_compound()
872 fill_memory(p, 0, hpage_pmd_size); in collapse_fork_compound()
873 if (check_huge(p)) in collapse_fork_compound()
884 if (check_huge(p)) in collapse_fork_compound()
890 madvise(p, page_size, MADV_NOHUGEPAGE); in collapse_fork_compound()
891 madvise(p, hpage_pmd_size, MADV_NOHUGEPAGE); in collapse_fork_compound()
892 if (!check_huge(p)) in collapse_fork_compound()
896 fill_memory(p, 0, page_size); in collapse_fork_compound()
899 if (wait_for_scan("Collapse PTE table full of compound pages in child", p)) in collapse_fork_compound()
901 else if (check_huge(p)) in collapse_fork_compound()
908 validate_memory(p, 0, hpage_pmd_size); in collapse_fork_compound()
909 munmap(p, hpage_pmd_size); in collapse_fork_compound()
917 if (check_huge(p)) in collapse_fork_compound()
921 validate_memory(p, 0, hpage_pmd_size); in collapse_fork_compound()
922 munmap(p, hpage_pmd_size); in collapse_fork_compound()
929 void *p; in collapse_max_ptes_shared() local
931 p = alloc_mapping(); in collapse_max_ptes_shared()
934 madvise(p, hpage_pmd_size, MADV_HUGEPAGE); in collapse_max_ptes_shared()
935 fill_memory(p, 0, hpage_pmd_size); in collapse_max_ptes_shared()
936 if (check_huge(p)) in collapse_max_ptes_shared()
947 if (check_huge(p)) in collapse_max_ptes_shared()
954 fill_memory(p, 0, (hpage_pmd_nr - max_ptes_shared - 1) * page_size); in collapse_max_ptes_shared()
955 if (!check_huge(p)) in collapse_max_ptes_shared()
960 if (wait_for_scan("Do not collapse with max_ptes_shared exceeded", p)) in collapse_max_ptes_shared()
962 else if (!check_huge(p)) in collapse_max_ptes_shared()
969 fill_memory(p, 0, (hpage_pmd_nr - max_ptes_shared) * page_size); in collapse_max_ptes_shared()
970 if (!check_huge(p)) in collapse_max_ptes_shared()
976 if (wait_for_scan("Collapse with max_ptes_shared PTEs shared", p)) in collapse_max_ptes_shared()
978 else if (check_huge(p)) in collapse_max_ptes_shared()
983 validate_memory(p, 0, hpage_pmd_size); in collapse_max_ptes_shared()
984 munmap(p, hpage_pmd_size); in collapse_max_ptes_shared()
992 if (check_huge(p)) in collapse_max_ptes_shared()
996 validate_memory(p, 0, hpage_pmd_size); in collapse_max_ptes_shared()
997 munmap(p, hpage_pmd_size); in collapse_max_ptes_shared()