2009-07-13 10:33:21 +08:00
# undef TRACE_SYSTEM
# define TRACE_SYSTEM kmem
2009-04-10 08:54:16 -04:00
# if !defined(_TRACE_KMEM_H) || defined(TRACE_HEADER_MULTI_READ)
2009-04-10 14:26:18 +08:00
# define _TRACE_KMEM_H
2008-08-10 20:14:03 +03:00
# include <linux/types.h>
2009-04-10 14:27:38 +08:00
# include <linux/tracepoint.h>
2012-10-02 18:01:25 +01:00
# include <trace/events/gfpflags.h>
2009-05-15 16:16:30 -04:00
2009-11-26 15:04:10 +08:00
DECLARE_EVENT_CLASS ( kmem_alloc ,
2009-04-10 08:54:16 -04:00
TP_PROTO ( unsigned long call_site ,
const void * ptr ,
size_t bytes_req ,
size_t bytes_alloc ,
gfp_t gfp_flags ) ,
TP_ARGS ( call_site , ptr , bytes_req , bytes_alloc , gfp_flags ) ,
TP_STRUCT__entry (
__field ( unsigned long , call_site )
__field ( const void * , ptr )
__field ( size_t , bytes_req )
__field ( size_t , bytes_alloc )
__field ( gfp_t , gfp_flags )
) ,
TP_fast_assign (
__entry - > call_site = call_site ;
__entry - > ptr = ptr ;
__entry - > bytes_req = bytes_req ;
__entry - > bytes_alloc = bytes_alloc ;
__entry - > gfp_flags = gfp_flags ;
) ,
2009-05-15 16:16:30 -04:00
TP_printk ( " call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s " ,
2009-04-10 08:54:16 -04:00
__entry - > call_site ,
__entry - > ptr ,
__entry - > bytes_req ,
__entry - > bytes_alloc ,
2009-05-15 16:16:30 -04:00
show_gfp_flags ( __entry - > gfp_flags ) )
2009-04-10 08:54:16 -04:00
) ;
2009-11-26 15:04:10 +08:00
DEFINE_EVENT ( kmem_alloc , kmalloc ,
2009-04-10 08:54:16 -04:00
2009-11-26 15:04:10 +08:00
TP_PROTO ( unsigned long call_site , const void * ptr ,
size_t bytes_req , size_t bytes_alloc , gfp_t gfp_flags ) ,
2009-04-10 08:54:16 -04:00
2009-11-26 15:04:10 +08:00
TP_ARGS ( call_site , ptr , bytes_req , bytes_alloc , gfp_flags )
) ;
2009-04-10 08:54:16 -04:00
2009-11-26 15:04:10 +08:00
DEFINE_EVENT ( kmem_alloc , kmem_cache_alloc ,
2009-04-10 08:54:16 -04:00
2009-11-26 15:04:10 +08:00
TP_PROTO ( unsigned long call_site , const void * ptr ,
size_t bytes_req , size_t bytes_alloc , gfp_t gfp_flags ) ,
2009-04-10 08:54:16 -04:00
2009-11-26 15:04:10 +08:00
TP_ARGS ( call_site , ptr , bytes_req , bytes_alloc , gfp_flags )
2009-04-10 08:54:16 -04:00
) ;
2009-11-26 15:04:10 +08:00
DECLARE_EVENT_CLASS ( kmem_alloc_node ,
2009-04-10 08:54:16 -04:00
TP_PROTO ( unsigned long call_site ,
const void * ptr ,
size_t bytes_req ,
size_t bytes_alloc ,
gfp_t gfp_flags ,
int node ) ,
TP_ARGS ( call_site , ptr , bytes_req , bytes_alloc , gfp_flags , node ) ,
TP_STRUCT__entry (
__field ( unsigned long , call_site )
__field ( const void * , ptr )
__field ( size_t , bytes_req )
__field ( size_t , bytes_alloc )
__field ( gfp_t , gfp_flags )
__field ( int , node )
) ,
TP_fast_assign (
__entry - > call_site = call_site ;
__entry - > ptr = ptr ;
__entry - > bytes_req = bytes_req ;
__entry - > bytes_alloc = bytes_alloc ;
__entry - > gfp_flags = gfp_flags ;
__entry - > node = node ;
) ,
2009-05-15 16:16:30 -04:00
TP_printk ( " call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s node=%d " ,
2009-04-10 08:54:16 -04:00
__entry - > call_site ,
__entry - > ptr ,
__entry - > bytes_req ,
__entry - > bytes_alloc ,
2009-05-15 16:16:30 -04:00
show_gfp_flags ( __entry - > gfp_flags ) ,
2009-04-10 08:54:16 -04:00
__entry - > node )
) ;
2009-11-26 15:04:10 +08:00
DEFINE_EVENT ( kmem_alloc_node , kmalloc_node ,
2009-04-10 08:54:16 -04:00
2009-11-26 15:04:10 +08:00
TP_PROTO ( unsigned long call_site , const void * ptr ,
size_t bytes_req , size_t bytes_alloc ,
gfp_t gfp_flags , int node ) ,
2009-04-10 08:54:16 -04:00
2009-11-26 15:04:10 +08:00
TP_ARGS ( call_site , ptr , bytes_req , bytes_alloc , gfp_flags , node )
) ;
2009-04-10 08:54:16 -04:00
2009-11-26 15:04:10 +08:00
DEFINE_EVENT ( kmem_alloc_node , kmem_cache_alloc_node ,
2009-04-10 08:54:16 -04:00
2009-11-26 15:04:10 +08:00
TP_PROTO ( unsigned long call_site , const void * ptr ,
size_t bytes_req , size_t bytes_alloc ,
gfp_t gfp_flags , int node ) ,
2009-04-10 08:54:16 -04:00
2009-11-26 15:04:10 +08:00
TP_ARGS ( call_site , ptr , bytes_req , bytes_alloc , gfp_flags , node )
2009-04-10 08:54:16 -04:00
) ;
2009-11-26 15:04:10 +08:00
DECLARE_EVENT_CLASS ( kmem_free ,
2009-04-10 08:54:16 -04:00
TP_PROTO ( unsigned long call_site , const void * ptr ) ,
TP_ARGS ( call_site , ptr ) ,
TP_STRUCT__entry (
__field ( unsigned long , call_site )
__field ( const void * , ptr )
) ,
TP_fast_assign (
__entry - > call_site = call_site ;
__entry - > ptr = ptr ;
) ,
TP_printk ( " call_site=%lx ptr=%p " , __entry - > call_site , __entry - > ptr )
) ;
2009-11-26 15:04:10 +08:00
DEFINE_EVENT ( kmem_free , kfree ,
2009-04-10 08:54:16 -04:00
TP_PROTO ( unsigned long call_site , const void * ptr ) ,
2009-11-26 15:04:10 +08:00
TP_ARGS ( call_site , ptr )
) ;
2009-04-10 08:54:16 -04:00
2009-11-26 15:04:10 +08:00
DEFINE_EVENT ( kmem_free , kmem_cache_free ,
2009-04-10 08:54:16 -04:00
2009-11-26 15:04:10 +08:00
TP_PROTO ( unsigned long call_site , const void * ptr ) ,
2009-04-10 08:54:16 -04:00
2009-11-26 15:04:10 +08:00
TP_ARGS ( call_site , ptr )
2009-04-10 08:54:16 -04:00
) ;
2009-09-21 17:02:41 -07:00
2012-01-10 15:07:09 -08:00
TRACE_EVENT ( mm_page_free ,
2009-09-21 17:02:41 -07:00
TP_PROTO ( struct page * page , unsigned int order ) ,
TP_ARGS ( page , order ) ,
TP_STRUCT__entry (
__field ( struct page * , page )
__field ( unsigned int , order )
) ,
TP_fast_assign (
__entry - > page = page ;
__entry - > order = order ;
) ,
TP_printk ( " page=%p pfn=%lu order=%d " ,
__entry - > page ,
page_to_pfn ( __entry - > page ) ,
__entry - > order )
) ;
2012-01-10 15:07:09 -08:00
TRACE_EVENT ( mm_page_free_batched ,
2009-09-21 17:02:41 -07:00
TP_PROTO ( struct page * page , int cold ) ,
TP_ARGS ( page , cold ) ,
TP_STRUCT__entry (
__field ( struct page * , page )
__field ( int , cold )
) ,
TP_fast_assign (
__entry - > page = page ;
__entry - > cold = cold ;
) ,
TP_printk ( " page=%p pfn=%lu order=0 cold=%d " ,
__entry - > page ,
page_to_pfn ( __entry - > page ) ,
__entry - > cold )
) ;
TRACE_EVENT ( mm_page_alloc ,
TP_PROTO ( struct page * page , unsigned int order ,
gfp_t gfp_flags , int migratetype ) ,
TP_ARGS ( page , order , gfp_flags , migratetype ) ,
TP_STRUCT__entry (
__field ( struct page * , page )
__field ( unsigned int , order )
__field ( gfp_t , gfp_flags )
__field ( int , migratetype )
) ,
TP_fast_assign (
__entry - > page = page ;
__entry - > order = order ;
__entry - > gfp_flags = gfp_flags ;
__entry - > migratetype = migratetype ;
) ,
TP_printk ( " page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s " ,
__entry - > page ,
2012-09-20 14:04:47 +08:00
__entry - > page ? page_to_pfn ( __entry - > page ) : 0 ,
2009-09-21 17:02:41 -07:00
__entry - > order ,
__entry - > migratetype ,
show_gfp_flags ( __entry - > gfp_flags ) )
) ;
2009-11-26 15:04:10 +08:00
DECLARE_EVENT_CLASS ( mm_page ,
2009-09-21 17:02:44 -07:00
TP_PROTO ( struct page * page , unsigned int order , int migratetype ) ,
TP_ARGS ( page , order , migratetype ) ,
TP_STRUCT__entry (
__field ( struct page * , page )
__field ( unsigned int , order )
__field ( int , migratetype )
) ,
TP_fast_assign (
__entry - > page = page ;
__entry - > order = order ;
__entry - > migratetype = migratetype ;
) ,
TP_printk ( " page=%p pfn=%lu order=%u migratetype=%d percpu_refill=%d " ,
__entry - > page ,
2012-09-20 14:04:47 +08:00
__entry - > page ? page_to_pfn ( __entry - > page ) : 0 ,
2009-09-21 17:02:44 -07:00
__entry - > order ,
__entry - > migratetype ,
__entry - > order = = 0 )
) ;
2009-11-26 15:04:10 +08:00
DEFINE_EVENT ( mm_page , mm_page_alloc_zone_locked ,
2009-09-21 17:02:44 -07:00
2009-11-26 15:04:10 +08:00
TP_PROTO ( struct page * page , unsigned int order , int migratetype ) ,
2009-09-21 17:02:44 -07:00
2009-11-26 15:04:10 +08:00
TP_ARGS ( page , order , migratetype )
) ;
2009-09-21 17:02:44 -07:00
2009-11-26 15:04:10 +08:00
DEFINE_EVENT_PRINT ( mm_page , mm_page_pcpu_drain ,
2009-09-21 17:02:44 -07:00
2009-11-26 15:04:10 +08:00
TP_PROTO ( struct page * page , unsigned int order , int migratetype ) ,
TP_ARGS ( page , order , migratetype ) ,
2009-09-21 17:02:44 -07:00
TP_printk ( " page=%p pfn=%lu order=%d migratetype=%d " ,
2009-11-26 15:04:10 +08:00
__entry - > page , page_to_pfn ( __entry - > page ) ,
__entry - > order , __entry - > migratetype )
2009-09-21 17:02:44 -07:00
) ;
2009-09-21 17:02:42 -07:00
TRACE_EVENT ( mm_page_alloc_extfrag ,
TP_PROTO ( struct page * page ,
2013-11-12 15:08:19 -08:00
int alloc_order , int fallback_order ,
int alloc_migratetype , int fallback_migratetype , int new_migratetype ) ,
2009-09-21 17:02:42 -07:00
TP_ARGS ( page ,
alloc_order , fallback_order ,
2013-11-12 15:08:19 -08:00
alloc_migratetype , fallback_migratetype , new_migratetype ) ,
2009-09-21 17:02:42 -07:00
TP_STRUCT__entry (
__field ( struct page * , page )
__field ( int , alloc_order )
__field ( int , fallback_order )
__field ( int , alloc_migratetype )
__field ( int , fallback_migratetype )
2013-09-11 14:20:36 -07:00
__field ( int , change_ownership )
2009-09-21 17:02:42 -07:00
) ,
TP_fast_assign (
__entry - > page = page ;
__entry - > alloc_order = alloc_order ;
__entry - > fallback_order = fallback_order ;
__entry - > alloc_migratetype = alloc_migratetype ;
__entry - > fallback_migratetype = fallback_migratetype ;
2013-11-12 15:08:19 -08:00
__entry - > change_ownership = ( new_migratetype = = alloc_migratetype ) ;
2009-09-21 17:02:42 -07:00
) ,
TP_printk ( " page=%p pfn=%lu alloc_order=%d fallback_order=%d pageblock_order=%d alloc_migratetype=%d fallback_migratetype=%d fragmenting=%d change_ownership=%d " ,
__entry - > page ,
page_to_pfn ( __entry - > page ) ,
__entry - > alloc_order ,
__entry - > fallback_order ,
pageblock_order ,
__entry - > alloc_migratetype ,
__entry - > fallback_migratetype ,
__entry - > fallback_order < pageblock_order ,
2013-09-11 14:20:36 -07:00
__entry - > change_ownership )
2009-09-21 17:02:42 -07:00
) ;
2009-04-10 09:36:00 -04:00
# endif /* _TRACE_KMEM_H */
2009-04-10 08:54:16 -04:00
2009-04-10 09:36:00 -04:00
/* This part must be outside protection */
# include <trace/define_trace.h>