Lines Matching full:behavior

56 static int madvise_need_mmap_write(int behavior)  in madvise_need_mmap_write()  argument
58 switch (behavior) { in madvise_need_mmap_write()
866 int behavior) in madvise_dontneed_free_valid_vma() argument
871 if (behavior != MADV_DONTNEED_LOCKED) in madvise_dontneed_free_valid_vma()
877 if (behavior != MADV_DONTNEED && behavior != MADV_DONTNEED_LOCKED) in madvise_dontneed_free_valid_vma()
896 int behavior) in madvise_dontneed_free() argument
901 if (!madvise_dontneed_free_valid_vma(vma, start, &end, behavior)) in madvise_dontneed_free()
919 behavior)) in madvise_dontneed_free()
948 if (behavior == MADV_DONTNEED || behavior == MADV_DONTNEED_LOCKED) in madvise_dontneed_free()
950 else if (behavior == MADV_FREE) in madvise_dontneed_free()
957 unsigned long end, int behavior) in madvise_populate() argument
959 const bool write = behavior == MADV_POPULATE_WRITE; in madvise_populate()
1245 * Apply an madvise behavior to a region of a vma. madvise_update_vma
1247 * behavior.
1252 unsigned long behavior) in madvise_vma_behavior() argument
1258 if (unlikely(!can_modify_vma_madv(vma, behavior))) in madvise_vma_behavior()
1261 switch (behavior) { in madvise_vma_behavior()
1273 return madvise_dontneed_free(vma, prev, start, end, behavior); in madvise_vma_behavior()
1313 error = ksm_madvise(vma, start, end, behavior, &new_flags); in madvise_vma_behavior()
1319 error = hugepage_madvise(vma, &new_flags, behavior); in madvise_vma_behavior()
1351 static int madvise_inject_error(int behavior, in madvise_inject_error() argument
1377 if (behavior == MADV_SOFT_OFFLINE) { in madvise_inject_error()
1396 static bool is_memory_failure(int behavior) in is_memory_failure() argument
1398 switch (behavior) { in is_memory_failure()
1409 static int madvise_inject_error(int behavior, in madvise_inject_error() argument
1415 static bool is_memory_failure(int behavior) in is_memory_failure() argument
1423 madvise_behavior_valid(int behavior) in madvise_behavior_valid() argument
1425 switch (behavior) { in madvise_behavior_valid()
1466 /* Can we invoke process_madvise() on a remote mm for the specified behavior? */
1467 static bool process_madvise_remote_valid(int behavior) in process_madvise_remote_valid() argument
1469 switch (behavior) { in process_madvise_remote_valid()
1597 static int madvise_lock(struct mm_struct *mm, int behavior) in madvise_lock() argument
1599 if (is_memory_failure(behavior)) in madvise_lock()
1602 if (madvise_need_mmap_write(behavior)) { in madvise_lock()
1611 static void madvise_unlock(struct mm_struct *mm, int behavior) in madvise_unlock() argument
1613 if (is_memory_failure(behavior)) in madvise_unlock()
1616 if (madvise_need_mmap_write(behavior)) in madvise_unlock()
1622 static bool is_valid_madvise(unsigned long start, size_t len_in, int behavior) in is_valid_madvise() argument
1626 if (!madvise_behavior_valid(behavior)) in is_valid_madvise()
1647 * @behavior: Requested madvise behavor.
1655 int behavior, int *err) in madvise_should_skip() argument
1657 if (!is_valid_madvise(start, len_in, behavior)) { in madvise_should_skip()
1668 static bool is_madvise_populate(int behavior) in is_madvise_populate() argument
1670 switch (behavior) { in is_madvise_populate()
1680 unsigned long start, size_t len_in, int behavior) in madvise_do_behavior() argument
1686 if (is_memory_failure(behavior)) in madvise_do_behavior()
1687 return madvise_inject_error(behavior, start, start + len_in); in madvise_do_behavior()
1692 if (is_madvise_populate(behavior)) in madvise_do_behavior()
1693 error = madvise_populate(mm, start, end, behavior); in madvise_do_behavior()
1695 error = madvise_walk_vmas(mm, start, end, behavior, in madvise_do_behavior()
1710 * behavior values:
1711 * MADV_NORMAL - the default behavior is to read clusters. This
1762 * "behavior" is not a valid value, or application
1773 int do_madvise(struct mm_struct *mm, unsigned long start, size_t len_in, int behavior) in do_madvise() argument
1777 if (madvise_should_skip(start, len_in, behavior, &error)) in do_madvise()
1779 error = madvise_lock(mm, behavior); in do_madvise()
1782 error = madvise_do_behavior(mm, start, len_in, behavior); in do_madvise()
1783 madvise_unlock(mm, behavior); in do_madvise()
1788 SYSCALL_DEFINE3(madvise, unsigned long, start, size_t, len_in, int, behavior) in SYSCALL_DEFINE3() argument
1790 return do_madvise(current->mm, start, len_in, behavior); in SYSCALL_DEFINE3()
1795 int behavior) in vector_madvise() argument
1802 ret = madvise_lock(mm, behavior); in vector_madvise()
1811 if (madvise_should_skip(start, len_in, behavior, &error)) in vector_madvise()
1814 ret = madvise_do_behavior(mm, start, len_in, behavior); in vector_madvise()
1832 madvise_unlock(mm, behavior); in vector_madvise()
1833 madvise_lock(mm, behavior); in vector_madvise()
1840 madvise_unlock(mm, behavior); in vector_madvise()
1848 size_t, vlen, int, behavior, unsigned int, flags) in SYSCALL_DEFINE5() argument
1884 if (mm != current->mm && !process_madvise_remote_valid(behavior)) { in SYSCALL_DEFINE5()
1899 ret = vector_madvise(mm, &iter, behavior); in SYSCALL_DEFINE5()