diff options
| author | Ezequiel Garcia <elezegarcia@gmail.com> | 2012-09-08 16:47:53 -0400 |
|---|---|---|
| committer | Pekka Enberg <penberg@kernel.org> | 2012-09-25 03:14:18 -0400 |
| commit | f3f741019595f1e73564d985f5fe8abcbb98c769 (patch) | |
| tree | 6a46da5eb60a8bd2bf6bdaf5804e40367b91048f /include/linux | |
| parent | ff4fcd01ec86d98d15d2fd96f22f19bb1d341b88 (diff) | |
mm, slob: Add support for kmalloc_track_caller()
Currently slob falls back to regular kmalloc for this case.
With this patch kmalloc_track_caller() is correctly implemented,
thus tracing the specified caller.
This is important to trace accurately allocations performed by
krealloc, kstrdup, kmemdup, etc.
Signed-off-by: Ezequiel Garcia <elezegarcia@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/slab.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/include/linux/slab.h b/include/linux/slab.h index 0dd2dfa7beca..83d1a1454b7e 100644 --- a/include/linux/slab.h +++ b/include/linux/slab.h | |||
| @@ -321,7 +321,8 @@ static inline void *kmem_cache_alloc_node(struct kmem_cache *cachep, | |||
| 321 | * request comes from. | 321 | * request comes from. |
| 322 | */ | 322 | */ |
| 323 | #if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB) || \ | 323 | #if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB) || \ |
| 324 | (defined(CONFIG_SLAB) && defined(CONFIG_TRACING)) | 324 | (defined(CONFIG_SLAB) && defined(CONFIG_TRACING)) || \ |
| 325 | (defined(CONFIG_SLOB) && defined(CONFIG_TRACING)) | ||
| 325 | extern void *__kmalloc_track_caller(size_t, gfp_t, unsigned long); | 326 | extern void *__kmalloc_track_caller(size_t, gfp_t, unsigned long); |
| 326 | #define kmalloc_track_caller(size, flags) \ | 327 | #define kmalloc_track_caller(size, flags) \ |
| 327 | __kmalloc_track_caller(size, flags, _RET_IP_) | 328 | __kmalloc_track_caller(size, flags, _RET_IP_) |
| @@ -340,7 +341,8 @@ extern void *__kmalloc_track_caller(size_t, gfp_t, unsigned long); | |||
| 340 | * allocation request comes from. | 341 | * allocation request comes from. |
| 341 | */ | 342 | */ |
| 342 | #if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB) || \ | 343 | #if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB) || \ |
| 343 | (defined(CONFIG_SLAB) && defined(CONFIG_TRACING)) | 344 | (defined(CONFIG_SLAB) && defined(CONFIG_TRACING)) || \ |
| 345 | (defined(CONFIG_SLOB) && defined(CONFIG_TRACING)) | ||
| 344 | extern void *__kmalloc_node_track_caller(size_t, gfp_t, int, unsigned long); | 346 | extern void *__kmalloc_node_track_caller(size_t, gfp_t, int, unsigned long); |
| 345 | #define kmalloc_node_track_caller(size, flags, node) \ | 347 | #define kmalloc_node_track_caller(size, flags, node) \ |
| 346 | __kmalloc_node_track_caller(size, flags, node, \ | 348 | __kmalloc_node_track_caller(size, flags, node, \ |
