projects
/
users
/
jedix
/
linux-maple.git
/ commitdiff
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
836d96b
)
mm/oom_kill: Use maple tree iterators instead of vma linked list
author
Liam R. Howlett <Liam.Howlett@Oracle.com>
Mon, 4 Jan 2021 20:06:25 +0000
(15:06 -0500)
committer
Liam R. Howlett <Liam.Howlett@oracle.com>
Wed, 20 Oct 2021 19:22:36 +0000
(15:22 -0400)
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
mm/oom_kill.c
patch
|
blob
|
history
diff --git
a/mm/oom_kill.c
b/mm/oom_kill.c
index 831340e7ad8b4721a066c7d7d850e9b841ab38ff..e0334667d36ad302afdc076f046b27915529bb25 100644
(file)
--- a/
mm/oom_kill.c
+++ b/
mm/oom_kill.c
@@
-516,6
+516,7
@@
bool __oom_reap_task_mm(struct mm_struct *mm)
{
struct vm_area_struct *vma;
bool ret = true;
+ MA_STATE(mas, &mm->mm_mt, 0, 0);
/*
* Tell all users of get_user/copy_from_user etc... that the content
@@
-525,7
+526,8
@@
bool __oom_reap_task_mm(struct mm_struct *mm)
*/
set_bit(MMF_UNSTABLE, &mm->flags);
- for (vma = mm->mmap ; vma; vma = vma->vm_next) {
+ rcu_read_lock();
+ mas_for_each(&mas, vma, ULONG_MAX) {
if (!can_madv_lru_vma(vma))
continue;
@@
-557,6
+559,7
@@
bool __oom_reap_task_mm(struct mm_struct *mm)
tlb_finish_mmu(&tlb);
}
}
+ rcu_read_unlock();
return ret;
}