From: Yee Lee <yee.lee@mediatek.com>
To: Marco Elver <elver@google.com>
Cc: <linux-kernel@vger.kernel.org>,
Alexander Potapenko <glider@google.com>,
Dmitry Vyukov <dvyukov@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
"open list:KFENCE" <kasan-dev@googlegroups.com>,
"open list:MEMORY MANAGEMENT" <linux-mm@kvack.org>,
"moderated list:ARM/Mediatek SoC support"
<linux-arm-kernel@lists.infradead.org>,
"moderated list:ARM/Mediatek SoC support"
<linux-mediatek@lists.infradead.org>
Subject: Re: [PATCH 1/1] mm: kfence: skip kmemleak alloc in kfence_pool
Date: Fri, 24 Jun 2022 16:20:20 +0800 [thread overview]
Message-ID: <bdfd039fbde06113071f773ae6d5635ff4664e2c.camel@mediatek.com> (raw)
In-Reply-To: <CANpmjNN-jsZoVmJWD2Dz6O3_YVjy0av6e0iD-+OYXpik1LbLvg@mail.gmail.com>
On Thu, 2022-06-23 at 13:59 +0200, Marco Elver wrote:
> On Thu, 23 Jun 2022 at 13:20, yee.lee via kasan-dev
> <kasan-dev@googlegroups.com> wrote:
> >
> > From: Yee Lee <yee.lee@mediatek.com>
> >
> > Use MEMBLOCK_ALLOC_NOLEAKTRACE to skip kmemleak registration when
> > the kfence pool is allocated from memblock. And the kmemleak_free
> > later can be removed too.
>
> Is this purely meant to be a cleanup and non-functional change?
>
> > Signed-off-by: Yee Lee <yee.lee@mediatek.com>
> >
> > ---
> > mm/kfence/core.c | 18 ++++++++----------
> > 1 file changed, 8 insertions(+), 10 deletions(-)
> >
> > diff --git a/mm/kfence/core.c b/mm/kfence/core.c
> > index 4e7cd4c8e687..0d33d83f5244 100644
> > --- a/mm/kfence/core.c
> > +++ b/mm/kfence/core.c
> > @@ -600,14 +600,6 @@ static unsigned long kfence_init_pool(void)
> > addr += 2 * PAGE_SIZE;
> > }
> >
> > - /*
> > - * The pool is live and will never be deallocated from this
> > point on.
> > - * Remove the pool object from the kmemleak object tree, as
> > it would
> > - * otherwise overlap with allocations returned by
> > kfence_alloc(), which
> > - * are registered with kmemleak through the slab post-alloc
> > hook.
> > - */
> > - kmemleak_free(__kfence_pool);
>
> This appears to only be a non-functional change if the pool is
> allocated early. If the pool is allocated late using page-alloc, then
> there'll not be a kmemleak_free() on that memory and we'll have the
> same problem.
Do you mean the kzalloc(slab_is_available) in memblock_allc()? That
implies that MEMBLOCK_ALLOC_NOLEAKTRACE has no guarantee skipping
kmemleak_alloc from this. (Maybe add it?)
If so, we cannot identify later the block is stored in the phys
tree(memblock) or the virt tree(page_alloc).
WARNING: multiple messages have this Message-ID (diff)
From: Yee Lee <yee.lee@mediatek.com>
To: Marco Elver <elver@google.com>
Cc: <linux-kernel@vger.kernel.org>,
Alexander Potapenko <glider@google.com>,
Dmitry Vyukov <dvyukov@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
"open list:KFENCE" <kasan-dev@googlegroups.com>,
"open list:MEMORY MANAGEMENT" <linux-mm@kvack.org>,
"moderated list:ARM/Mediatek SoC support"
<linux-arm-kernel@lists.infradead.org>,
"moderated list:ARM/Mediatek SoC support"
<linux-mediatek@lists.infradead.org>
Subject: Re: [PATCH 1/1] mm: kfence: skip kmemleak alloc in kfence_pool
Date: Fri, 24 Jun 2022 16:20:20 +0800 [thread overview]
Message-ID: <bdfd039fbde06113071f773ae6d5635ff4664e2c.camel@mediatek.com> (raw)
In-Reply-To: <CANpmjNN-jsZoVmJWD2Dz6O3_YVjy0av6e0iD-+OYXpik1LbLvg@mail.gmail.com>
On Thu, 2022-06-23 at 13:59 +0200, Marco Elver wrote:
> On Thu, 23 Jun 2022 at 13:20, yee.lee via kasan-dev
> <kasan-dev@googlegroups.com> wrote:
> >
> > From: Yee Lee <yee.lee@mediatek.com>
> >
> > Use MEMBLOCK_ALLOC_NOLEAKTRACE to skip kmemleak registration when
> > the kfence pool is allocated from memblock. And the kmemleak_free
> > later can be removed too.
>
> Is this purely meant to be a cleanup and non-functional change?
>
> > Signed-off-by: Yee Lee <yee.lee@mediatek.com>
> >
> > ---
> > mm/kfence/core.c | 18 ++++++++----------
> > 1 file changed, 8 insertions(+), 10 deletions(-)
> >
> > diff --git a/mm/kfence/core.c b/mm/kfence/core.c
> > index 4e7cd4c8e687..0d33d83f5244 100644
> > --- a/mm/kfence/core.c
> > +++ b/mm/kfence/core.c
> > @@ -600,14 +600,6 @@ static unsigned long kfence_init_pool(void)
> > addr += 2 * PAGE_SIZE;
> > }
> >
> > - /*
> > - * The pool is live and will never be deallocated from this
> > point on.
> > - * Remove the pool object from the kmemleak object tree, as
> > it would
> > - * otherwise overlap with allocations returned by
> > kfence_alloc(), which
> > - * are registered with kmemleak through the slab post-alloc
> > hook.
> > - */
> > - kmemleak_free(__kfence_pool);
>
> This appears to only be a non-functional change if the pool is
> allocated early. If the pool is allocated late using page-alloc, then
> there'll not be a kmemleak_free() on that memory and we'll have the
> same problem.
Do you mean the kzalloc(slab_is_available) in memblock_allc()? That
implies that MEMBLOCK_ALLOC_NOLEAKTRACE has no guarantee skipping
kmemleak_alloc from this. (Maybe add it?)
If so, we cannot identify later the block is stored in the phys
tree(memblock) or the virt tree(page_alloc).
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-06-24 8:30 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-23 11:19 [PATCH 0/1] mm: kfence: remove kfence_pool from leak trace yee.lee
2022-06-23 11:19 ` yee.lee
2022-06-23 11:19 ` [PATCH 1/1] mm: kfence: skip kmemleak alloc in kfence_pool yee.lee
2022-06-23 11:19 ` yee.lee
2022-06-23 11:59 ` Marco Elver
2022-06-23 11:59 ` Marco Elver
2022-06-24 8:20 ` Yee Lee [this message]
2022-06-24 8:20 ` Yee Lee
2022-06-24 8:28 ` Marco Elver
2022-06-24 8:28 ` Marco Elver
2022-06-28 6:40 ` Yee Lee
2022-06-28 7:25 ` Marco Elver
2022-06-28 7:25 ` Marco Elver
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bdfd039fbde06113071f773ae6d5635ff4664e2c.camel@mediatek.com \
--to=yee.lee@mediatek.com \
--cc=akpm@linux-foundation.org \
--cc=dvyukov@google.com \
--cc=elver@google.com \
--cc=glider@google.com \
--cc=kasan-dev@googlegroups.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-mm@kvack.org \
--cc=matthias.bgg@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.