Lines Matching full:range

74 	 * The range over which the behaviour is currently being applied. If
77 struct madvise_behavior_range range; member
156 struct madvise_behavior_range *range = &madv_behavior->range; in madvise_update_vma() local
159 VMA_ITERATOR(vmi, madv_behavior->mm, range->start); in madvise_update_vma()
167 range->start, range->end, anon_name); in madvise_update_vma()
170 range->start, range->end, new_flags); in madvise_update_vma()
288 unsigned long start = madv_behavior->range.start; in madvise_willneed()
289 unsigned long end = madv_behavior->range.end; in madvise_willneed()
485 * fully mapped within the range we are operating on. Otherwise in madvise_cold_or_pageout_pte_range()
488 * next pte in the range. in madvise_cold_or_pageout_pte_range()
581 struct madvise_behavior_range *range = &madv_behavior->range; in madvise_cold_page_range() local
588 walk_page_range_vma(vma, range->start, range->end, &cold_walk_ops, in madvise_cold_page_range()
616 struct madvise_behavior_range *range) in madvise_pageout_page_range() argument
624 walk_page_range_vma(vma, range->start, range->end, &cold_walk_ops, in madvise_pageout_page_range()
649 madvise_pageout_page_range(&tlb, vma, &madv_behavior->range); in madvise_pageout()
715 * fully mapped within the range we are operating on. Otherwise in madvise_free_pte_range()
718 * next pte in the range. in madvise_free_pte_range()
807 unsigned long start_addr = madv_behavior->range.start; in madvise_free_single_vma()
808 unsigned long end_addr = madv_behavior->range.end; in madvise_free_single_vma()
809 struct mmu_notifier_range range; in madvise_free_single_vma() local
819 range.start = max(vma->vm_start, start_addr); in madvise_free_single_vma()
820 if (range.start >= vma->vm_end) in madvise_free_single_vma()
822 range.end = min(vma->vm_end, end_addr); in madvise_free_single_vma()
823 if (range.end <= vma->vm_start) in madvise_free_single_vma()
825 mmu_notifier_range_init(&range, MMU_NOTIFY_CLEAR, 0, mm, in madvise_free_single_vma()
826 range.start, range.end); in madvise_free_single_vma()
831 mmu_notifier_invalidate_range_start(&range); in madvise_free_single_vma()
834 walk_page_range_vma(vma, range.start, range.end, in madvise_free_single_vma()
837 mmu_notifier_invalidate_range_end(&range); in madvise_free_single_vma()
863 struct madvise_behavior_range *range = &madv_behavior->range; in madvise_dontneed_single_vma() local
870 madv_behavior->tlb, madv_behavior->vma, range->start, in madvise_dontneed_single_vma()
871 range->end - range->start, &details); in madvise_dontneed_single_vma()
880 struct madvise_behavior_range *range = &madv_behavior->range; in madvise_dontneed_free_valid_vma() local
893 if (range->start & ~huge_page_mask(hstate_vma(vma))) in madvise_dontneed_free_valid_vma()
902 range->end = ALIGN_DOWN(range->end, huge_page_size(hstate_vma(vma))); in madvise_dontneed_free_valid_vma()
910 struct madvise_behavior_range *range = &madv_behavior->range; in madvise_dontneed_free() local
916 if (range->start == range->end) in madvise_dontneed_free()
919 if (!userfaultfd_remove(madv_behavior->vma, range->start, range->end)) { in madvise_dontneed_free()
924 madv_behavior->vma = vma = vma_lookup(mm, range->start); in madvise_dontneed_free()
933 if (range->end > vma->vm_end) { in madvise_dontneed_free()
943 * end-vma->vm_end range, but the manager can in madvise_dontneed_free()
946 range->end = vma->vm_end; in madvise_dontneed_free()
955 if (range->start == range->end) in madvise_dontneed_free()
957 VM_WARN_ON(range->start > range->end); in madvise_dontneed_free()
973 unsigned long start = madv_behavior->range.start; in madvise_populate()
974 unsigned long end = madv_behavior->range.end; in madvise_populate()
1018 unsigned long start = madv_behavior->range.start; in madvise_remove()
1019 unsigned long end = madv_behavior->range.end; in madvise_remove()
1062 * A user could lock after setting a guard range but that's fine, as in is_valid_guard_vma()
1136 struct madvise_behavior_range *range = &madv_behavior->range; in madvise_guard_install() local
1144 * If we install guard markers, then the range is no longer in madvise_guard_install()
1156 * non-guard pages are encountered, give up and zap the range before in madvise_guard_install()
1170 err = walk_page_range_mm(vma->vm_mm, range->start, range->end, in madvise_guard_install()
1177 PHYS_PFN(range->end - range->start); in madvise_guard_install()
1184 * OK some of the range have non-guard pages mapped, zap in madvise_guard_install()
1187 zap_page_range_single(vma, range->start, in madvise_guard_install()
1188 range->end - range->start, NULL); in madvise_guard_install()
1247 struct madvise_behavior_range *range = &madv_behavior->range; in madvise_guard_remove() local
1256 return walk_page_range_vma(vma, range->start, range->end, in madvise_guard_remove()
1338 struct madvise_behavior_range *range = &madv_behavior->range; in madvise_vma_behavior() local
1358 return madvise_collapse(vma, range->start, range->end, in madvise_vma_behavior()
1406 error = ksm_madvise(vma, range->start, range->end, in madvise_vma_behavior()
1445 unsigned long start = madv_behavior->range.start; in madvise_inject_error()
1446 unsigned long end = madv_behavior->range.end; in madvise_inject_error()
1573 * We only support this lock over a single VMA, which the input range must
1588 vma = lock_vma_under_rcu(mm, madv_behavior->range.start); in try_vma_read_lock()
1595 if (madv_behavior->range.end > vma->vm_end || current->mm != mm || in try_vma_read_lock()
1610 * Walk the vmas in range [start,end), and call the madvise_vma_behavior
1612 * cover the overlap between the current vma and the original range. Any
1613 * unmapped regions in the original range will result in this function returning
1615 * existing vmas in the range. Must be called with the mmap_lock held for
1622 struct madvise_behavior_range *range = &madv_behavior->range; in madvise_walk_vmas() local
1623 /* range is updated to span each VMA, so store end of entire range. */ in madvise_walk_vmas()
1624 unsigned long last_end = range->end; in madvise_walk_vmas()
1640 vma = find_vma_prev(mm, range->start, &prev); in madvise_walk_vmas()
1641 if (vma && range->start > vma->vm_start) in madvise_walk_vmas()
1650 if (range->start < vma->vm_start) { in madvise_walk_vmas()
1653 * range. This does not cause the operation to abort, in madvise_walk_vmas()
1658 range->start = vma->vm_start; in madvise_walk_vmas()
1659 if (range->start >= last_end) in madvise_walk_vmas()
1663 /* Here vma->vm_start <= range->start < (last_end|vma->vm_end) */ in madvise_walk_vmas()
1664 range->end = min(vma->vm_end, last_end); in madvise_walk_vmas()
1666 /* Here vma->vm_start <= range->start < range->end <= (last_end|vma->vm_end). */ in madvise_walk_vmas()
1682 if (vma && range->end < vma->vm_end) in madvise_walk_vmas()
1683 range->end = vma->vm_end; in madvise_walk_vmas()
1684 if (range->end >= last_end) in madvise_walk_vmas()
1687 vma = find_vma(mm, vma ? vma->vm_end : range->end); in madvise_walk_vmas()
1688 range->start = range->end; in madvise_walk_vmas()
1816 * @start: Start address of madvise-requested address range.
1817 * @len_in: Length of madvise-requested address range.
1870 struct madvise_behavior_range *range = &madv_behavior->range; in madvise_do_behavior() local
1873 range->start = start; in madvise_do_behavior()
1874 range->end = start + len_in; in madvise_do_behavior()
1878 range->start = get_untagged_addr(madv_behavior->mm, start); in madvise_do_behavior()
1879 range->end = range->start + PAGE_ALIGN(len_in); in madvise_do_behavior()
1905 * MADV_SEQUENTIAL - pages in the given range will probably be accessed
1910 * MADV_DONTNEED - the application is finished with the given range,
1912 * MADV_FREE - the application marks pages in the given range as lazy free,
1914 * MADV_REMOVE - the application wants to free up the given range of
1920 * range after a fork.
1922 * MADV_HWPOISON - trigger memory error handler as if the given memory range
1924 * MADV_SOFT_OFFLINE - try to soft-offline the given range of memory.
1928 * MADV_HUGEPAGE - the application wants to back the given range by transparent
1931 * MADV_NOHUGEPAGE - mark the given range as not worth being backed by
1935 * MADV_DONTDUMP - the application wants to prevent pages in the given range
1939 * deactivate pages in this range so that they can be reclaimed
1942 * page out the pages in this range immediately.
1953 * or the specified address range includes file, Huge TLB,
1954 * MAP_SHARED or VMPFNMAP range.
1955 * -ENOMEM - addresses in the specified range are not currently
2160 madv_behavior.range.start = start; in madvise_set_anon_name()
2161 madv_behavior.range.end = end; in madvise_set_anon_name()