lkml.org 
[lkml]   [2018]   [Jul]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.17 36/67] fs/proc/task_mmu.c: fix Locked field in /proc/pid/smaps*
    Date
    4.17-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Vlastimil Babka <vbabka@suse.cz>

    commit e70cc2bd579e8a9d6d153762f0fe294d0e652ff0 upstream.

    Thomas reports:
    "While looking around in /proc on my v4.14.52 system I noticed that all
    processes got a lot of "Locked" memory in /proc/*/smaps. A lot more
    memory than a regular user can usually lock with mlock().

    Commit 493b0e9d945f (in v4.14-rc1) seems to have changed the behavior
    of "Locked".

    Before that commit the code was like this. Notice the VM_LOCKED check.

    (vma->vm_flags & VM_LOCKED) ?
    (unsigned long)(mss.pss >> (10 + PSS_SHIFT)) : 0);

    After that commit Locked is now the same as Pss:

    (unsigned long)(mss->pss >> (10 + PSS_SHIFT)));

    This looks like a mistake."

    Indeed, the commit has added mss->pss_locked with the correct value that
    depends on VM_LOCKED, but forgot to actually use it. Fix it.

    Link: http://lkml.kernel.org/r/ebf6c7fb-fec3-6a26-544f-710ed193c154@suse.cz
    Fixes: 493b0e9d945f ("mm: add /proc/pid/smaps_rollup")
    Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
    Reported-by: Thomas Lindroth <thomas.lindroth@gmail.com>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Cc: Daniel Colascione <dancol@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    fs/proc/task_mmu.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    --- a/fs/proc/task_mmu.c
    +++ b/fs/proc/task_mmu.c
    @@ -831,7 +831,8 @@ static int show_smap(struct seq_file *m,
    SEQ_PUT_DEC(" kB\nSwap: ", mss->swap);
    SEQ_PUT_DEC(" kB\nSwapPss: ",
    mss->swap_pss >> PSS_SHIFT);
    - SEQ_PUT_DEC(" kB\nLocked: ", mss->pss >> PSS_SHIFT);
    + SEQ_PUT_DEC(" kB\nLocked: ",
    + mss->pss_locked >> PSS_SHIFT);
    seq_puts(m, " kB\n");
    }
    if (!rollup_mode) {

    \
     
     \ /
      Last update: 2018-07-16 09:57    [W:4.052 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site