diff options
author | Li Zefan <lizf@cn.fujitsu.com> | 2009-12-11 02:45:30 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-12-11 03:17:02 -0500 |
commit | 0f24f1287a86b198c1e4bd4ce45e8565e40ff804 (patch) | |
tree | 7d13bfec87c7b67ffc701271484dc8d96080643c | |
parent | 125580380f418000b1a06d9a54700f1191b6e561 (diff) |
tracing, slab: Define kmem_cache_alloc_notrace ifdef CONFIG_TRACING
Define kmem_trace_alloc_{,node}_notrace() if CONFIG_TRACING is
enabled, otherwise perf-kmem will show wrong stats ifndef
CONFIG_KMEM_TRACE, because a kmalloc() memory allocation may
be traced by both trace_kmalloc() and trace_kmem_cache_alloc().
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Reviewed-by: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: Christoph Lameter <cl@linux-foundation.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: linux-mm@kvack.org <linux-mm@kvack.org>
Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
LKML-Reference: <4B21F89A.7000801@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | include/linux/slab_def.h | 4 | ||||
-rw-r--r-- | include/linux/slub_def.h | 4 | ||||
-rw-r--r-- | mm/slab.c | 6 | ||||
-rw-r--r-- | mm/slub.c | 4 |
4 files changed, 9 insertions, 9 deletions
diff --git a/include/linux/slab_def.h b/include/linux/slab_def.h index 850d057500de..ca6b2b317991 100644 --- a/include/linux/slab_def.h +++ b/include/linux/slab_def.h | |||
@@ -110,7 +110,7 @@ extern struct cache_sizes malloc_sizes[]; | |||
110 | void *kmem_cache_alloc(struct kmem_cache *, gfp_t); | 110 | void *kmem_cache_alloc(struct kmem_cache *, gfp_t); |
111 | void *__kmalloc(size_t size, gfp_t flags); | 111 | void *__kmalloc(size_t size, gfp_t flags); |
112 | 112 | ||
113 | #ifdef CONFIG_KMEMTRACE | 113 | #ifdef CONFIG_TRACING |
114 | extern void *kmem_cache_alloc_notrace(struct kmem_cache *cachep, gfp_t flags); | 114 | extern void *kmem_cache_alloc_notrace(struct kmem_cache *cachep, gfp_t flags); |
115 | extern size_t slab_buffer_size(struct kmem_cache *cachep); | 115 | extern size_t slab_buffer_size(struct kmem_cache *cachep); |
116 | #else | 116 | #else |
@@ -166,7 +166,7 @@ found: | |||
166 | extern void *__kmalloc_node(size_t size, gfp_t flags, int node); | 166 | extern void *__kmalloc_node(size_t size, gfp_t flags, int node); |
167 | extern void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node); | 167 | extern void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node); |
168 | 168 | ||
169 | #ifdef CONFIG_KMEMTRACE | 169 | #ifdef CONFIG_TRACING |
170 | extern void *kmem_cache_alloc_node_notrace(struct kmem_cache *cachep, | 170 | extern void *kmem_cache_alloc_node_notrace(struct kmem_cache *cachep, |
171 | gfp_t flags, | 171 | gfp_t flags, |
172 | int nodeid); | 172 | int nodeid); |
diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h index 5ad70a60fd74..1e14beb23f9b 100644 --- a/include/linux/slub_def.h +++ b/include/linux/slub_def.h | |||
@@ -217,7 +217,7 @@ static __always_inline struct kmem_cache *kmalloc_slab(size_t size) | |||
217 | void *kmem_cache_alloc(struct kmem_cache *, gfp_t); | 217 | void *kmem_cache_alloc(struct kmem_cache *, gfp_t); |
218 | void *__kmalloc(size_t size, gfp_t flags); | 218 | void *__kmalloc(size_t size, gfp_t flags); |
219 | 219 | ||
220 | #ifdef CONFIG_KMEMTRACE | 220 | #ifdef CONFIG_TRACING |
221 | extern void *kmem_cache_alloc_notrace(struct kmem_cache *s, gfp_t gfpflags); | 221 | extern void *kmem_cache_alloc_notrace(struct kmem_cache *s, gfp_t gfpflags); |
222 | #else | 222 | #else |
223 | static __always_inline void * | 223 | static __always_inline void * |
@@ -266,7 +266,7 @@ static __always_inline void *kmalloc(size_t size, gfp_t flags) | |||
266 | void *__kmalloc_node(size_t size, gfp_t flags, int node); | 266 | void *__kmalloc_node(size_t size, gfp_t flags, int node); |
267 | void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node); | 267 | void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node); |
268 | 268 | ||
269 | #ifdef CONFIG_KMEMTRACE | 269 | #ifdef CONFIG_TRACING |
270 | extern void *kmem_cache_alloc_node_notrace(struct kmem_cache *s, | 270 | extern void *kmem_cache_alloc_node_notrace(struct kmem_cache *s, |
271 | gfp_t gfpflags, | 271 | gfp_t gfpflags, |
272 | int node); | 272 | int node); |
@@ -490,7 +490,7 @@ static void **dbg_userword(struct kmem_cache *cachep, void *objp) | |||
490 | 490 | ||
491 | #endif | 491 | #endif |
492 | 492 | ||
493 | #ifdef CONFIG_KMEMTRACE | 493 | #ifdef CONFIG_TRACING |
494 | size_t slab_buffer_size(struct kmem_cache *cachep) | 494 | size_t slab_buffer_size(struct kmem_cache *cachep) |
495 | { | 495 | { |
496 | return cachep->buffer_size; | 496 | return cachep->buffer_size; |
@@ -3558,7 +3558,7 @@ void *kmem_cache_alloc(struct kmem_cache *cachep, gfp_t flags) | |||
3558 | } | 3558 | } |
3559 | EXPORT_SYMBOL(kmem_cache_alloc); | 3559 | EXPORT_SYMBOL(kmem_cache_alloc); |
3560 | 3560 | ||
3561 | #ifdef CONFIG_KMEMTRACE | 3561 | #ifdef CONFIG_TRACING |
3562 | void *kmem_cache_alloc_notrace(struct kmem_cache *cachep, gfp_t flags) | 3562 | void *kmem_cache_alloc_notrace(struct kmem_cache *cachep, gfp_t flags) |
3563 | { | 3563 | { |
3564 | return __cache_alloc(cachep, flags, __builtin_return_address(0)); | 3564 | return __cache_alloc(cachep, flags, __builtin_return_address(0)); |
@@ -3621,7 +3621,7 @@ void *kmem_cache_alloc_node(struct kmem_cache *cachep, gfp_t flags, int nodeid) | |||
3621 | } | 3621 | } |
3622 | EXPORT_SYMBOL(kmem_cache_alloc_node); | 3622 | EXPORT_SYMBOL(kmem_cache_alloc_node); |
3623 | 3623 | ||
3624 | #ifdef CONFIG_KMEMTRACE | 3624 | #ifdef CONFIG_TRACING |
3625 | void *kmem_cache_alloc_node_notrace(struct kmem_cache *cachep, | 3625 | void *kmem_cache_alloc_node_notrace(struct kmem_cache *cachep, |
3626 | gfp_t flags, | 3626 | gfp_t flags, |
3627 | int nodeid) | 3627 | int nodeid) |
@@ -1754,7 +1754,7 @@ void *kmem_cache_alloc(struct kmem_cache *s, gfp_t gfpflags) | |||
1754 | } | 1754 | } |
1755 | EXPORT_SYMBOL(kmem_cache_alloc); | 1755 | EXPORT_SYMBOL(kmem_cache_alloc); |
1756 | 1756 | ||
1757 | #ifdef CONFIG_KMEMTRACE | 1757 | #ifdef CONFIG_TRACING |
1758 | void *kmem_cache_alloc_notrace(struct kmem_cache *s, gfp_t gfpflags) | 1758 | void *kmem_cache_alloc_notrace(struct kmem_cache *s, gfp_t gfpflags) |
1759 | { | 1759 | { |
1760 | return slab_alloc(s, gfpflags, -1, _RET_IP_); | 1760 | return slab_alloc(s, gfpflags, -1, _RET_IP_); |
@@ -1775,7 +1775,7 @@ void *kmem_cache_alloc_node(struct kmem_cache *s, gfp_t gfpflags, int node) | |||
1775 | EXPORT_SYMBOL(kmem_cache_alloc_node); | 1775 | EXPORT_SYMBOL(kmem_cache_alloc_node); |
1776 | #endif | 1776 | #endif |
1777 | 1777 | ||
1778 | #ifdef CONFIG_KMEMTRACE | 1778 | #ifdef CONFIG_TRACING |
1779 | void *kmem_cache_alloc_node_notrace(struct kmem_cache *s, | 1779 | void *kmem_cache_alloc_node_notrace(struct kmem_cache *s, |
1780 | gfp_t gfpflags, | 1780 | gfp_t gfpflags, |
1781 | int node) | 1781 | int node) |