mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Catalin Marinas <catalin.marinas@arm.com>
To: Mel Gorman <mel@csn.ul.ie>
Cc: Ingo Molnar <mingo@elte.hu>,
	Andrew Morton <akpm@linux-foundation.org>,
	torvalds@linux-foundation.org, fengguang.wu@intel.com,
	Pekka Enberg <penberg@cs.helsinki.fi>,
	linux-kernel@vger.kernel.org
Subject: [PATCH] kmemleak: Only use GFP_KERNEL|GFP_ATOMIC for the internal allocations
Date: Wed, 17 Jun 2009 13:52:10 +0100	[thread overview]
Message-ID: <1245243130.11889.27.camel@pc1117.cambridge.arm.com> (raw)
In-Reply-To: <20090617124034.GE28529@csn.ul.ie>

Kmemleak allocates memory for pointer tracking and it tries to avoid
using GFP_ATOMIC if the caller doesn't require it. However other gfp
flags may be passed by the caller which aren't required by kmemleak.
This patch filters the gfp flags so that only GFP_KERNEL | GFP_ATOMIC
are used.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
---
 mm/kmemleak.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/mm/kmemleak.c b/mm/kmemleak.c
index 58ec86c..25e2034 100644
--- a/mm/kmemleak.c
+++ b/mm/kmemleak.c
@@ -109,6 +109,9 @@
 
 #define BYTES_PER_POINTER	sizeof(void *)
 
+/* GFP bitmask for kmemleak internal allocations */
+#define GFP_KMEMLEAK_MASK	(GFP_KERNEL | GFP_ATOMIC)
+
 /* scanning area inside a memory block */
 struct kmemleak_scan_area {
 	struct hlist_node node;
@@ -462,7 +465,7 @@ static void create_object(unsigned long ptr, size_t size, int min_count,
 	struct prio_tree_node *node;
 	struct stack_trace trace;
 
-	object = kmem_cache_alloc(object_cache, gfp & ~GFP_SLAB_BUG_MASK);
+	object = kmem_cache_alloc(object_cache, gfp & GFP_KMEMLEAK_MASK);
 	if (!object) {
 		kmemleak_panic("kmemleak: Cannot allocate a kmemleak_object "
 			       "structure\n");
@@ -636,7 +639,7 @@ static void add_scan_area(unsigned long ptr, unsigned long offset,
 		return;
 	}
 
-	area = kmem_cache_alloc(scan_area_cache, gfp & ~GFP_SLAB_BUG_MASK);
+	area = kmem_cache_alloc(scan_area_cache, gfp & GFP_KMEMLEAK_MASK);
 	if (!area) {
 		kmemleak_warn("kmemleak: Cannot allocate a scan area\n");
 		goto out;



  reply	other threads:[~2009-06-17 12:52 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200906162232.n5GMWRZe026963@imap1.linux-foundation.org>
     [not found] ` <20090616223649.719ea378.akpm@linux-foundation.org>
2009-06-17 11:18   ` [PATCH] pagemap: add page-types tool, fix build Ingo Molnar
2009-06-17 11:31     ` WARNING: at mm/page_alloc.c:1159 get_page_from_freelist+0x325/0x655() Ingo Molnar
2009-06-17 11:35       ` Ingo Molnar
2009-06-17 12:19         ` [PATCH] profile: Suppress warning about large allocations when profile=1 is specified Mel Gorman
2009-06-20 10:09           ` Heinz Diehl
2009-06-20 19:50             ` Mel Gorman
2009-06-20 21:48               ` Heinz Diehl
2009-06-22 11:31                 ` Mel Gorman
2009-06-22 13:50                   ` Heinz Diehl
2009-06-22 19:58                     ` Mel Gorman
2009-06-22 17:00                   ` Arnaldo Carvalho de Melo
2009-06-17 11:41       ` WARNING: at mm/page_alloc.c:1159 get_page_from_freelist+0x325/0x655() Mel Gorman
2009-06-17 12:11       ` Catalin Marinas
2009-06-17 12:28         ` Mel Gorman
2009-06-17 12:36           ` Catalin Marinas
2009-06-17 12:40             ` Mel Gorman
2009-06-17 12:52               ` Catalin Marinas [this message]
2009-06-17 13:01                 ` [PATCH] kmemleak: Only use GFP_KERNEL|GFP_ATOMIC for the internal allocations Pekka Enberg
2009-06-17 13:23                   ` Catalin Marinas
2009-06-17 13:30                     ` Pekka Enberg
2009-06-17 15:36                       ` [PATCH] kmemleak: Rename kmemleak_panic to kmemleak_stop Catalin Marinas
2009-06-17 15:37                         ` Pekka Enberg
2009-06-17 17:14                         ` Daniel Walker
2009-06-17 17:27                           ` Catalin Marinas
2009-06-17 16:39       ` WARNING: at mm/page_alloc.c:1159 get_page_from_freelist+0x325/0x655() Linus Torvalds
2009-06-17 16:52         ` Ingo Molnar

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=1245243130.11889.27.camel@pc1117.cambridge.arm.com \
    --to=catalin.marinas@arm.com \
    --cc=akpm@linux-foundation.org \
    --cc=fengguang.wu@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mel@csn.ul.ie \
    --cc=mingo@elte.hu \
    --cc=penberg@cs.helsinki.fi \
    --cc=torvalds@linux-foundation.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome