Re: [PATCH BACKPORT TO 3.18 ] sched, numa: do not hint for NUMA balancing on VM_MIXEDMAP mappings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jun 16, 2015 at 4:10 PM, Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
>
> On Tue, Jun 16, 2015 at 03:12:01PM -0700, Jovi Zhangwei wrote:
> > 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@xxxxxxx>
> > [jovi: Backported to 3.18: adjust context]
> > Signed-off-by: Jovi Zhangwei <jovi@xxxxxxxxxxxxxx>
> > Reported-by: Jovi Zhangwei <jovi@xxxxxxxxxxxxxx>
> > Cc: Ingo Molnar <mingo@xxxxxxx>
> > Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
> > Cc: <stable@xxxxxxxxxxxxxxx>
> > Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> > Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> > ---
> >  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 ef2b104..2246a36 100644
> > --- a/kernel/sched/fair.c
> > +++ b/kernel/sched/fair.c
> > @@ -1979,8 +1979,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) ||
> > +    is_vm_hugetlb_page(vma) || (vma->vm_flags & VM_MIXEDMAP)) {
> >   continue;
> > + }
>
> Patch is corrupted :(

Sorry for this, I will send it again by git-sendmail.
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]