Re: [PATCH v7 00/70] Introducing the Maple Tree

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

 



* Yu Zhao <yuzhao@xxxxxxxxxx> [220419 19:23]:
> On Tue, Apr 19, 2022 at 5:18 PM Liam Howlett <liam.howlett@xxxxxxxxxx> wrote:
> >
> > * Yu Zhao <yuzhao@xxxxxxxxxx> [220419 17:59]:
> > > On Tue, Apr 19, 2022 at 9:51 AM Liam Howlett <liam.howlett@xxxxxxxxxx> wrote:
> > > >
> > > > * Yu Zhao <yuzhao@xxxxxxxxxx> [220416 15:30]:
> > > > > On Sat, Apr 16, 2022 at 9:19 AM Liam Howlett <liam.howlett@xxxxxxxxxx> wrote:
> > > > > >
> > > > >
> > > > > <snipped>
> > > > >
> > > > > > How did you hit this issue?  Just on boot?
> > > > >
> > > > > I was hoping this is known to you or you have something I can verify for you.
> > > >
> > > >
> > > > Thanks, yes.  I believe that both crashes are the same root cause.  The
> > > > cause is that I was not cleaning up after the kmem bulk allocation
> > > > failure on my side.  Please test with this patch.
> > >
> > > Thanks. I applied this patch and hit a LOCKDEP and then a BUG_ON:
> > >
> > >   lib/maple_tree.c:847 suspicious rcu_dereference_protected() usage!
> > >   Call Trace:
> > >    <TASK>
> > >    dump_stack_lvl+0x6c/0x9a
> > >    dump_stack+0x10/0x12
> > >    lockdep_rcu_suspicious+0x12c/0x140
> > >    __mt_destroy+0x96/0xd0
> > >    exit_mmap+0x2a0/0x360
> > >    __mmput+0x34/0x100
> > >    mmput+0x2f/0x40
> > >    free_bprm+0x64/0xe0
> > >    kernel_execve+0x129/0x330
> > >    call_usermodehelper_exec_async+0xd8/0x130
> > >    ? proc_cap_handler+0x210/0x210
> > >    ret_from_fork+0x1f/0x30
> > >    </TASK>
> >
> > Thanks - I'm not sure how this got through, but this should fix it.
> >
> > This should be added to 4236a642ad185 to avoid the LOCKDEP issue.
> >
> > --- a/mm/mmap.c
> > +++ b/mm/mmap.c
> > @@ -3163,9 +3163,9 @@ void exit_mmap(struct mm_struct *mm)
> >
> >         BUG_ON(count != mm->map_count);
> >
> > -       mmap_write_unlock(mm);
> >         trace_exit_mmap(mm);
> >         __mt_destroy(&mm->mm_mt);
> > +       mmap_write_unlock(mm);
> >         vm_unacct_memory(nr_accounted);
> >  }
> 
> Will try this.


Andrew,

Please add this fix to the commit 4236a642ad185 "mm: start tracking VMAs
with maple tree"

I've attached the patch for your convenience.

Thanks,
Liam
From ee4b1fc24f30cff25257b2a77b6f44aad1db6e19 Mon Sep 17 00:00:00 2001
From: "Liam R. Howlett" <Liam.Howlett@xxxxxxxxxx>
Date: Wed, 20 Apr 2022 09:37:50 -0400
Subject: [PATCH] mm: Fix commit "mm: start tracking VMAs with maple tree"

Hold the lock for the destruction of the maple tree to avoid lockdep
issues - and potentially process_mrelease.

Signed-off-by: Liam R. Howlett <Liam.Howlett@xxxxxxxxxx>
---
 mm/mmap.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/mmap.c b/mm/mmap.c
index f172f3aba90f..dbfd3576b6d0 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -3163,9 +3163,9 @@ void exit_mmap(struct mm_struct *mm)
 
 	BUG_ON(count != mm->map_count);
 
-	mmap_write_unlock(mm);
 	trace_exit_mmap(mm);
 	__mt_destroy(&mm->mm_mt);
+	mmap_write_unlock(mm);
 	vm_unacct_memory(nr_accounted);
 }
 
-- 
2.34.1


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux