From: <yee.lee@mediatek.com>
To: <linux-kernel@vger.kernel.org>
Cc: <catalin.marinas@arm.com>, Yee Lee <yee.lee@mediatek.com>,
"Alexander Potapenko" <glider@google.com>,
Marco Elver <elver@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: [PATCH v2 1/1] mm: kfence: apply kmemleak_ignore_phys on early allocated pool
Date: Tue, 28 Jun 2022 19:37:11 +0800 [thread overview]
Message-ID: <20220628113714.7792-2-yee.lee@mediatek.com> (raw)
In-Reply-To: <20220628113714.7792-1-yee.lee@mediatek.com>
From: Yee Lee <yee.lee@mediatek.com>
This patch solves two issues.
(1) The pool allocated by memblock needs to unregister from
kmemleak scanning. Apply kmemleak_ignore_phys to replace the
original kmemleak_free as its address now is stored in the phys tree.
(2) The pool late allocated by page-alloc doesn't need to unregister.
Move out the freeing operation from its call path.
Suggested-by: Catalin Marinas <catalin.marinas@arm.com>
Suggested-by: Marco Elver <elver@google.com>
Signed-off-by: Yee Lee <yee.lee@mediatek.com>
---
mm/kfence/core.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/mm/kfence/core.c b/mm/kfence/core.c
index 4e7cd4c8e687..32a4a75e820c 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);
-
return 0;
}
@@ -620,8 +612,16 @@ static bool __init kfence_init_pool_early(void)
addr = kfence_init_pool();
- if (!addr)
+ if (!addr) {
+ /*
+ * The pool is live and will never be deallocated from this point on.
+ * Ignore the pool object from the kmemleak phys 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_ignore_phys(__pa(__kfence_pool));
return true;
+ }
/*
* Only release unprotected pages, and do not try to go back and change
--
2.18.0
WARNING: multiple messages have this Message-ID (diff)
From: <yee.lee@mediatek.com>
To: <linux-kernel@vger.kernel.org>
Cc: <catalin.marinas@arm.com>, Yee Lee <yee.lee@mediatek.com>,
"Alexander Potapenko" <glider@google.com>,
Marco Elver <elver@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: [PATCH v2 1/1] mm: kfence: apply kmemleak_ignore_phys on early allocated pool
Date: Tue, 28 Jun 2022 19:37:11 +0800 [thread overview]
Message-ID: <20220628113714.7792-2-yee.lee@mediatek.com> (raw)
In-Reply-To: <20220628113714.7792-1-yee.lee@mediatek.com>
From: Yee Lee <yee.lee@mediatek.com>
This patch solves two issues.
(1) The pool allocated by memblock needs to unregister from
kmemleak scanning. Apply kmemleak_ignore_phys to replace the
original kmemleak_free as its address now is stored in the phys tree.
(2) The pool late allocated by page-alloc doesn't need to unregister.
Move out the freeing operation from its call path.
Suggested-by: Catalin Marinas <catalin.marinas@arm.com>
Suggested-by: Marco Elver <elver@google.com>
Signed-off-by: Yee Lee <yee.lee@mediatek.com>
---
mm/kfence/core.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/mm/kfence/core.c b/mm/kfence/core.c
index 4e7cd4c8e687..32a4a75e820c 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);
-
return 0;
}
@@ -620,8 +612,16 @@ static bool __init kfence_init_pool_early(void)
addr = kfence_init_pool();
- if (!addr)
+ if (!addr) {
+ /*
+ * The pool is live and will never be deallocated from this point on.
+ * Ignore the pool object from the kmemleak phys 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_ignore_phys(__pa(__kfence_pool));
return true;
+ }
/*
* Only release unprotected pages, and do not try to go back and change
--
2.18.0
_______________________________________________
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-28 12:18 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-28 11:37 [PATCH v2 0/1] mm: kfence: fix unexpected leak scan on kfence pool yee.lee
2022-06-28 11:37 ` yee.lee
2022-06-28 11:37 ` yee.lee [this message]
2022-06-28 11:37 ` [PATCH v2 1/1] mm: kfence: apply kmemleak_ignore_phys on early allocated pool yee.lee
2022-06-28 12:10 ` Marco Elver
2022-06-28 12:10 ` Marco Elver
2022-06-29 21:39 ` Catalin Marinas
2022-06-29 21:39 ` Catalin Marinas
2022-07-15 8:17 ` Geert Uytterhoeven
2022-07-15 8:17 ` Geert Uytterhoeven
2022-07-15 23:33 ` Andrew Morton
2022-07-15 23:33 ` Andrew Morton
2022-07-16 18:43 ` Geert Uytterhoeven
2022-07-16 18:43 ` Geert Uytterhoeven
2022-07-18 14:26 ` Marco Elver
2022-07-18 14:26 ` Marco Elver
2022-07-19 23:13 ` Andrew Morton
2022-07-19 23:13 ` Andrew Morton
2022-07-19 23:22 ` Dave Hansen
2022-07-19 23:22 ` Dave Hansen
2022-08-01 14:05 ` Marco Elver
2022-08-01 14:05 ` Marco Elver
2022-07-19 11:50 ` Catalin Marinas
2022-07-19 11:50 ` Catalin Marinas
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=20220628113714.7792-2-yee.lee@mediatek.com \
--to=yee.lee@mediatek.com \
--cc=akpm@linux-foundation.org \
--cc=catalin.marinas@arm.com \
--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.