• Mel Gorman's avatar
    mm: compaction: move fatal signal check out of compact_checklock_irqsave · 3cc668f4
    Mel Gorman authored
    Commit c67fe375 ("mm: compaction: Abort async compaction if locks
    are contended or taking too long") addressed a lock contention problem
    in compaction by introducing compact_checklock_irqsave() that effecively
    aborting async compaction in the event of compaction.
    
    To preserve existing behaviour it also moved a fatal_signal_pending()
    check into compact_checklock_irqsave() but that is very misleading.  It
    "hides" the check within a locking function but has nothing to do with
    locking as such.  It just happens to work in a desirable fashion.
    
    This patch moves the fatal_signal_pending() check to
    isolate_migratepages_range() where it belongs.  Arguably the same check
    should also happen when isolating pages for freeing but it's overkill.
    Signed-off-by: default avatarMel Gorman <mgorman@suse.de>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: Shaohua Li <shli@kernel.org>
    Cc: Minchan Kim <minchan@kernel.org>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    3cc668f4
compaction.c 29.3 KB