lkml.org 
[lkml]   [2015]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.19.y-ckt 080/102] sched, numa: do not hint for NUMA balancing on VM_MIXEDMAP mappings
    Date
    3.19.8-ckt3 -stable review patch.  If anyone has any objections, please let me know.

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

    From: Mel Gorman <mgorman@suse.de>

    commit 8e76d4eecf7afeec9328e21cd5880e281838d0d6 upstream.

    Jovi Zhangwei reported the following problem

    Below kernel vm bug can be triggered by tcpdump which mmaped a lot of pages
    with GFP_COMP flag.

    [Mon May 25 05:29:33 2015] page:ffffea0015414000 count:66 mapcount:1 mapping: (null) index:0x0
    [Mon May 25 05:29:33 2015] flags: 0x20047580004000(head)
    [Mon May 25 05:29:33 2015] page dumped because: VM_BUG_ON_PAGE(compound_order(page) && !PageTransHuge(page))
    [Mon May 25 05:29:33 2015] ------------[ cut here ]------------
    [Mon May 25 05:29:33 2015] kernel BUG at mm/migrate.c:1661!
    [Mon May 25 05:29:33 2015] invalid opcode: 0000 [#1] SMP

    In this case it was triggered by running tcpdump but it's not necessary
    reproducible on all systems.

    sudo tcpdump -i bond0.100 'tcp port 4242' -c 100000000000 -w 4242.pcap

    Compound pages cannot be migrated and it was not expected that such pages
    be marked for NUMA balancing. This did not take into account that drivers
    such as net/packet/af_packet.c may insert compound pages into userspace
    with vm_insert_page. This patch tells the NUMA balancing protection
    scanner to skip all VM_MIXEDMAP mappings which avoids the possibility that
    compound pages are marked for migration.

    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Reported-by: Jovi Zhangwei <jovi@cloudflare.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    [ kamal: backport to 3.19-stable ]
    Signed-off-by: Kamal Mostafa <kamal@canonical.com>
    ---
    kernel/sched/fair.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
    index fe331fc..44cfeb3 100644
    --- a/kernel/sched/fair.c
    +++ b/kernel/sched/fair.c
    @@ -2162,8 +2162,10 @@ void task_numa_work(struct callback_head *work)
    vma = mm->mmap;
    }
    for (; vma; vma = vma->vm_next) {
    - if (!vma_migratable(vma) || !vma_policy_mof(vma))
    + if (!vma_migratable(vma) || !vma_policy_mof(vma) ||
    + (vma->vm_flags & VM_MIXEDMAP)) {
    continue;
    + }

    /*
    * Shared library pages mapped by multiple processes are not
    --
    1.9.1


    \
     
     \ /
      Last update: 2015-07-07 21:01    [W:3.502 / U:0.628 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site