]> git.baikalelectronics.ru Git - kernel.git/commit
mm/munlock: delete munlock_vma_pages_all(), allow oomreap
authorHugh Dickins <hughd@google.com>
Tue, 15 Feb 2022 02:23:29 +0000 (18:23 -0800)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Thu, 17 Feb 2022 16:56:44 +0000 (11:56 -0500)
commit2d24a70cf7d8bbee9e7977f901f89bf663a014b4
tree09867e2d12bb2bb6942d2dfd855517550e4d85c3
parentd5eda1d04bb846657f938aa56f63ca788cf984f7
mm/munlock: delete munlock_vma_pages_all(), allow oomreap

munlock_vma_pages_range() will still be required, when munlocking but
not munmapping a set of pages; but when unmapping a pte, the mlock count
will be maintained in much the same way as it will be maintained when
mapping in the pte.  Which removes the need for munlock_vma_pages_all()
on mlocked vmas when munmapping or exiting: eliminating the catastrophic
contention on i_mmap_rwsem, and the need for page lock on the pages.

There is still a need to update locked_vm accounting according to the
munmapped vmas when munmapping: do that in detach_vmas_to_be_unmapped().
exit_mmap() does not need locked_vm updates, so delete unlock_range().

And wasn't I the one who forbade the OOM reaper to attack mlocked vmas,
because of the uncertainty in blocking on all those page locks?
No fear of that now, so permit the OOM reaper on mlocked vmas.

Signed-off-by: Hugh Dickins <hughd@google.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
mm/internal.h
mm/madvise.c
mm/mlock.c
mm/mmap.c
mm/oom_kill.c