mm: perproc-reclaim: Adapt to use new mm_walk_ops API

commit: pagewalk: separate function pointers from iterator data
allows us to add operations inside mm_walk_ops structure so refactor the code
to use it instead of mm_walk structure.

Change-Id: I2d09bffe41f7fc8d683a15ae545042c02d41c9b1
Signed-off-by: UtsavBalar1231 <utsavbalar1231@gmail.com>
This commit is contained in:
UtsavBalar1231 2022-07-17 12:24:42 +05:30 committed by spakkkk
parent 84ebfc164d
commit db8a6e105e

View File

@ -1921,11 +1921,6 @@ static ssize_t reclaim_write(struct file *file, const char __user *buf,
mm = get_task_mm(task);
if (mm) {
struct mm_walk reclaim_walk = {
.pmd_entry = reclaim_pte_range,
.mm = mm,
};
down_read(&mm->mmap_sem);
for (vma = mm->mmap; vma; vma = vma->vm_next) {
if (is_vm_hugetlb_page(vma))
@ -1940,6 +1935,10 @@ static ssize_t reclaim_write(struct file *file, const char __user *buf,
continue;
if (vma_is_anonymous(vma)) {
const struct mm_walk_ops reclaim_walk_ops = {
.pmd_entry = reclaim_pte_range,
};
if (get_nr_swap_pages() <= 0 ||
get_mm_counter(mm, MM_ANONPAGES) == 0) {
if (type == RECLAIM_ALL)
@ -1947,13 +1946,15 @@ static ssize_t reclaim_write(struct file *file, const char __user *buf,
else
break;
}
reclaim_walk.pmd_entry = reclaim_pte_range;
walk_page_range(mm, vma->vm_start, vma->vm_end,
&reclaim_walk_ops, vma);
} else {
reclaim_walk.pmd_entry = deactivate_pte_range;
const struct mm_walk_ops reclaim_walk_ops = {
.pmd_entry = deactivate_pte_range,
};
walk_page_range(mm, vma->vm_start, vma->vm_end,
&reclaim_walk_ops, vma);
}
walk_page_range(vma->vm_start, vma->vm_end,
&reclaim_walk);
}
flush_tlb_mm(mm);
up_read(&mm->mmap_sem);