• Suren Baghdasaryan's avatar
    mm: drop oom code from exit_mmap · bf3980c8
    Suren Baghdasaryan authored
    The primary reason to invoke the oom reaper from the exit_mmap path used
    to be a prevention of an excessive oom killing if the oom victim exit
    races with the oom reaper (see [1] for more details).  The invocation has
    moved around since then because of the interaction with the munlock logic
    but the underlying reason has remained the same (see [2]).
    
    Munlock code is no longer a problem since [3] and there shouldn't be any
    blocking operation before the memory is unmapped by exit_mmap so the oom
    reaper invocation can be dropped.  The unmapping part can be done with the
    non-exclusive mmap_sem and the exclusive one is only required when page
    tables are freed.
    
    Remove the oom_reaper from exit_mmap which will make the code easier to
    read.  This is really unlikely to make any observable difference although
    some microbenchmarks could benefit from one less branch that needs to be
    evaluated even though it almost never is true.
    
    [1] 21292580 ("mm: oom: let oom_reap_task and exit_mmap run concurrently")
    [2] 27ae357f ("mm, oom: fix concurrent munlock and oom reaper unmap, v3")
    [3] a213e5cf ("mm/munlock: delete munlock_vma_pages_all(), allow oomreap")
    
    [akpm@linux-foundation.org: restore Suren's mmap_read_lock() optimization]
    Link: https://lkml.kernel.org/r/20220531223100.510392-1-surenb@google.com
    
    Signed-off-by: default avatarSuren Baghdasaryan <surenb@google.com>
    Acked-by: default avatarMichal Hocko <mhocko@suse.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Christian Brauner (Microsoft) <brauner@kernel.org>
    Cc: Christoph Hellwig <hch@infradead.org>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Jann Horn <jannh@google.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: John Hubbard <jhubbard@nvidia.com>
    Cc: "Kirill A . Shutemov" <kirill@shutemov.name>
    Cc: Liam Howlett <liam.howlett@oracle.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Minchan Kim <minchan@kernel.org>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Peter Xu <peterx@redhat.com>
    Cc: Roman Gushchin <guro@fb.com>
    Cc: Shakeel Butt <shakeelb@google.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    bf3980c8
oom_kill.c 33.5 KB