lkml.org 
[lkml]   [2020]   [Jan]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 3/5] mm/madvise: employ mmget_still_valid for write lock
    Date
    From: Oleksandr Natalenko <oleksandr@redhat.com>

    Do the very same trick as we already do since 04f5866e41fb. KSM hints
    will require locking mmap_sem for write since they modify vm_flags, so
    for remote KSM hinting this additional check is needed.

    Signed-off-by: Oleksandr Natalenko <oleksandr@redhat.com>
    Signed-off-by: Minchan Kim <minchan@kernel.org>
    ---
    mm/madvise.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/mm/madvise.c b/mm/madvise.c
    index 00ffa7e92f79..bc0a72dbf80e 100644
    --- a/mm/madvise.c
    +++ b/mm/madvise.c
    @@ -1061,6 +1061,8 @@ static int madvise_common(struct task_struct *task, struct mm_struct *mm,
    if (write) {
    if (down_write_killable(&mm->mmap_sem))
    return -EINTR;
    + if (current->mm != mm && !mmget_still_valid(mm))
    + goto skip_mm;
    } else {
    down_read(&mm->mmap_sem);
    }
    @@ -1111,6 +1113,7 @@ static int madvise_common(struct task_struct *task, struct mm_struct *mm,
    }
    out:
    blk_finish_plug(&plug);
    +skip_mm:
    if (write)
    up_write(&mm->mmap_sem);
    else
    --
    2.25.0.341.g760bfbb309-goog
    \
     
     \ /
      Last update: 2020-01-28 01:17    [W:2.084 / U:0.176 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site