• Chinwen Chang's avatar
    mm: proc: smaps_rollup: do not stall write attempts on mmap_lock · ff9f47f6
    Chinwen Chang authored
    smaps_rollup will try to grab mmap_lock and go through the whole vma list
    until it finishes the iterating.  When encountering large processes, the
    mmap_lock will be held for a longer time, which may block other write
    requests like mmap and munmap from progressing smoothly.
    
    There are upcoming mmap_lock optimizations like range-based locks, but the
    lock applied to smaps_rollup would be the coarse type, which doesn't avoid
    the occurrence of unpleasant contention.
    
    To solve aforementioned issue, we add a check which detects whether anyone
    wants to grab mmap_lock for write attempts.
    Signed-off-by: default avatarChinwen Chang <chinwen.chang@mediatek.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Cc: Steven Price <steven.price@arm.com>
    Cc: Michel Lespinasse <walken@google.com>
    Cc: Matthias Brugger <matthias.bgg@gmail.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Daniel Jordan <daniel.m.jordan@oracle.com>
    Cc: Davidlohr Bueso <dbueso@suse.de>
    Cc: Chinwen Chang <chinwen.chang@mediatek.com>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>
    Cc: Jason Gunthorpe <jgg@ziepe.ca>
    Cc: Song Liu <songliubraving@fb.com>
    Cc: Jimmy Assarsson <jimmyassarsson@gmail.com>
    Cc: Huang Ying <ying.huang@intel.com>
    Cc: Daniel Kiss <daniel.kiss@arm.com>
    Cc: Laurent Dufour <ldufour@linux.ibm.com>
    Link: http://lkml.kernel.org/r/1597715898-3854-4-git-send-email-chinwen.chang@mediatek.comSigned-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    ff9f47f6
task_mmu.c 47.2 KB