diff options
Diffstat (limited to 'mm/slub.c')
| -rw-r--r-- | mm/slub.c | 32 |
1 files changed, 13 insertions, 19 deletions
| @@ -1621,8 +1621,7 @@ void *kmem_cache_alloc(struct kmem_cache *s, gfp_t gfpflags) | |||
| 1621 | { | 1621 | { |
| 1622 | void *ret = slab_alloc(s, gfpflags, -1, _RET_IP_); | 1622 | void *ret = slab_alloc(s, gfpflags, -1, _RET_IP_); |
| 1623 | 1623 | ||
| 1624 | kmemtrace_mark_alloc(KMEMTRACE_TYPE_CACHE, _RET_IP_, ret, | 1624 | trace_kmem_cache_alloc(_RET_IP_, ret, s->objsize, s->size, gfpflags); |
| 1625 | s->objsize, s->size, gfpflags); | ||
| 1626 | 1625 | ||
| 1627 | return ret; | 1626 | return ret; |
| 1628 | } | 1627 | } |
| @@ -1641,8 +1640,8 @@ void *kmem_cache_alloc_node(struct kmem_cache *s, gfp_t gfpflags, int node) | |||
| 1641 | { | 1640 | { |
| 1642 | void *ret = slab_alloc(s, gfpflags, node, _RET_IP_); | 1641 | void *ret = slab_alloc(s, gfpflags, node, _RET_IP_); |
| 1643 | 1642 | ||
| 1644 | kmemtrace_mark_alloc_node(KMEMTRACE_TYPE_CACHE, _RET_IP_, ret, | 1643 | trace_kmem_cache_alloc_node(_RET_IP_, ret, |
| 1645 | s->objsize, s->size, gfpflags, node); | 1644 | s->objsize, s->size, gfpflags, node); |
| 1646 | 1645 | ||
| 1647 | return ret; | 1646 | return ret; |
| 1648 | } | 1647 | } |
| @@ -1767,7 +1766,7 @@ void kmem_cache_free(struct kmem_cache *s, void *x) | |||
| 1767 | 1766 | ||
| 1768 | slab_free(s, page, x, _RET_IP_); | 1767 | slab_free(s, page, x, _RET_IP_); |
| 1769 | 1768 | ||
| 1770 | kmemtrace_mark_free(KMEMTRACE_TYPE_CACHE, _RET_IP_, x); | 1769 | trace_kmem_cache_free(_RET_IP_, x); |
| 1771 | } | 1770 | } |
| 1772 | EXPORT_SYMBOL(kmem_cache_free); | 1771 | EXPORT_SYMBOL(kmem_cache_free); |
| 1773 | 1772 | ||
| @@ -2702,8 +2701,7 @@ void *__kmalloc(size_t size, gfp_t flags) | |||
| 2702 | 2701 | ||
| 2703 | ret = slab_alloc(s, flags, -1, _RET_IP_); | 2702 | ret = slab_alloc(s, flags, -1, _RET_IP_); |
| 2704 | 2703 | ||
| 2705 | kmemtrace_mark_alloc(KMEMTRACE_TYPE_KMALLOC, _RET_IP_, ret, | 2704 | trace_kmalloc(_RET_IP_, ret, size, s->size, flags); |
| 2706 | size, s->size, flags); | ||
| 2707 | 2705 | ||
| 2708 | return ret; | 2706 | return ret; |
| 2709 | } | 2707 | } |
| @@ -2729,10 +2727,9 @@ void *__kmalloc_node(size_t size, gfp_t flags, int node) | |||
| 2729 | if (unlikely(size > SLUB_MAX_SIZE)) { | 2727 | if (unlikely(size > SLUB_MAX_SIZE)) { |
| 2730 | ret = kmalloc_large_node(size, flags, node); | 2728 | ret = kmalloc_large_node(size, flags, node); |
| 2731 | 2729 | ||
| 2732 | kmemtrace_mark_alloc_node(KMEMTRACE_TYPE_KMALLOC, | 2730 | trace_kmalloc_node(_RET_IP_, ret, |
| 2733 | _RET_IP_, ret, | 2731 | size, PAGE_SIZE << get_order(size), |
| 2734 | size, PAGE_SIZE << get_order(size), | 2732 | flags, node); |
| 2735 | flags, node); | ||
| 2736 | 2733 | ||
| 2737 | return ret; | 2734 | return ret; |
| 2738 | } | 2735 | } |
| @@ -2744,8 +2741,7 @@ void *__kmalloc_node(size_t size, gfp_t flags, int node) | |||
| 2744 | 2741 | ||
| 2745 | ret = slab_alloc(s, flags, node, _RET_IP_); | 2742 | ret = slab_alloc(s, flags, node, _RET_IP_); |
| 2746 | 2743 | ||
| 2747 | kmemtrace_mark_alloc_node(KMEMTRACE_TYPE_KMALLOC, _RET_IP_, ret, | 2744 | trace_kmalloc_node(_RET_IP_, ret, size, s->size, flags, node); |
| 2748 | size, s->size, flags, node); | ||
| 2749 | 2745 | ||
| 2750 | return ret; | 2746 | return ret; |
| 2751 | } | 2747 | } |
| @@ -2796,6 +2792,8 @@ void kfree(const void *x) | |||
| 2796 | struct page *page; | 2792 | struct page *page; |
| 2797 | void *object = (void *)x; | 2793 | void *object = (void *)x; |
| 2798 | 2794 | ||
| 2795 | trace_kfree(_RET_IP_, x); | ||
| 2796 | |||
| 2799 | if (unlikely(ZERO_OR_NULL_PTR(x))) | 2797 | if (unlikely(ZERO_OR_NULL_PTR(x))) |
| 2800 | return; | 2798 | return; |
| 2801 | 2799 | ||
| @@ -2806,8 +2804,6 @@ void kfree(const void *x) | |||
| 2806 | return; | 2804 | return; |
| 2807 | } | 2805 | } |
| 2808 | slab_free(page->slab, page, object, _RET_IP_); | 2806 | slab_free(page->slab, page, object, _RET_IP_); |
| 2809 | |||
| 2810 | kmemtrace_mark_free(KMEMTRACE_TYPE_KMALLOC, _RET_IP_, x); | ||
| 2811 | } | 2807 | } |
| 2812 | EXPORT_SYMBOL(kfree); | 2808 | EXPORT_SYMBOL(kfree); |
| 2813 | 2809 | ||
| @@ -3290,8 +3286,7 @@ void *__kmalloc_track_caller(size_t size, gfp_t gfpflags, unsigned long caller) | |||
| 3290 | ret = slab_alloc(s, gfpflags, -1, caller); | 3286 | ret = slab_alloc(s, gfpflags, -1, caller); |
| 3291 | 3287 | ||
| 3292 | /* Honor the call site pointer we recieved. */ | 3288 | /* Honor the call site pointer we recieved. */ |
| 3293 | kmemtrace_mark_alloc(KMEMTRACE_TYPE_KMALLOC, caller, ret, size, | 3289 | trace_kmalloc(caller, ret, size, s->size, gfpflags); |
| 3294 | s->size, gfpflags); | ||
| 3295 | 3290 | ||
| 3296 | return ret; | 3291 | return ret; |
| 3297 | } | 3292 | } |
| @@ -3313,8 +3308,7 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags, | |||
| 3313 | ret = slab_alloc(s, gfpflags, node, caller); | 3308 | ret = slab_alloc(s, gfpflags, node, caller); |
| 3314 | 3309 | ||
| 3315 | /* Honor the call site pointer we recieved. */ | 3310 | /* Honor the call site pointer we recieved. */ |
| 3316 | kmemtrace_mark_alloc_node(KMEMTRACE_TYPE_KMALLOC, caller, ret, | 3311 | trace_kmalloc_node(caller, ret, size, s->size, gfpflags, node); |
| 3317 | size, s->size, gfpflags, node); | ||
| 3318 | 3312 | ||
| 3319 | return ret; | 3313 | return ret; |
| 3320 | } | 3314 | } |
