1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2d0b6e04aSLi Zefan #undef TRACE_SYSTEM 3d0b6e04aSLi Zefan #define TRACE_SYSTEM kmem 4d0b6e04aSLi Zefan 5ad8d75ffSSteven Rostedt #if !defined(_TRACE_KMEM_H) || defined(TRACE_HEADER_MULTI_READ) 6ad8d75ffSSteven Rostedt #define _TRACE_KMEM_H 7ad8d75ffSSteven Rostedt 8ad8d75ffSSteven Rostedt #include <linux/types.h> 9ad8d75ffSSteven Rostedt #include <linux/tracepoint.h> 10420adbe9SVlastimil Babka #include <trace/events/mmflags.h> 1162ba180eSSteven Rostedt 1253d0422cSLi Zefan DECLARE_EVENT_CLASS(kmem_alloc, 13ad8d75ffSSteven Rostedt 14ad8d75ffSSteven Rostedt TP_PROTO(unsigned long call_site, 15ad8d75ffSSteven Rostedt const void *ptr, 16ad8d75ffSSteven Rostedt size_t bytes_req, 17ad8d75ffSSteven Rostedt size_t bytes_alloc, 18ad8d75ffSSteven Rostedt gfp_t gfp_flags), 19ad8d75ffSSteven Rostedt 20ad8d75ffSSteven Rostedt TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags), 21ad8d75ffSSteven Rostedt 22ad8d75ffSSteven Rostedt TP_STRUCT__entry( 23ad8d75ffSSteven Rostedt __field( unsigned long, call_site ) 24ad8d75ffSSteven Rostedt __field( const void *, ptr ) 25ad8d75ffSSteven Rostedt __field( size_t, bytes_req ) 26ad8d75ffSSteven Rostedt __field( size_t, bytes_alloc ) 27ad8d75ffSSteven Rostedt __field( gfp_t, gfp_flags ) 28ad8d75ffSSteven Rostedt ), 29ad8d75ffSSteven Rostedt 30ad8d75ffSSteven Rostedt TP_fast_assign( 31ad8d75ffSSteven Rostedt __entry->call_site = call_site; 32ad8d75ffSSteven Rostedt __entry->ptr = ptr; 33ad8d75ffSSteven Rostedt __entry->bytes_req = bytes_req; 34ad8d75ffSSteven Rostedt __entry->bytes_alloc = bytes_alloc; 35ad8d75ffSSteven Rostedt __entry->gfp_flags = gfp_flags; 36ad8d75ffSSteven Rostedt ), 37ad8d75ffSSteven Rostedt 38f7d6316fSChangbin Du TP_printk("call_site=%pS ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s", 39f7d6316fSChangbin Du (void *)__entry->call_site, 40ad8d75ffSSteven Rostedt __entry->ptr, 41ad8d75ffSSteven Rostedt __entry->bytes_req, 42ad8d75ffSSteven Rostedt __entry->bytes_alloc, 4362ba180eSSteven Rostedt show_gfp_flags(__entry->gfp_flags)) 44ad8d75ffSSteven Rostedt ); 45ad8d75ffSSteven Rostedt 4653d0422cSLi Zefan DEFINE_EVENT(kmem_alloc, kmalloc, 47ad8d75ffSSteven Rostedt 4853d0422cSLi Zefan TP_PROTO(unsigned long call_site, const void *ptr, 4953d0422cSLi Zefan size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags), 50ad8d75ffSSteven Rostedt 5153d0422cSLi Zefan TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags) 52ad8d75ffSSteven Rostedt ); 53ad8d75ffSSteven Rostedt 5453d0422cSLi Zefan DEFINE_EVENT(kmem_alloc, kmem_cache_alloc, 5553d0422cSLi Zefan 5653d0422cSLi Zefan TP_PROTO(unsigned long call_site, const void *ptr, 5753d0422cSLi Zefan size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags), 5853d0422cSLi Zefan 5953d0422cSLi Zefan TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags) 6053d0422cSLi Zefan ); 6153d0422cSLi Zefan 6253d0422cSLi Zefan DECLARE_EVENT_CLASS(kmem_alloc_node, 63ad8d75ffSSteven Rostedt 64ad8d75ffSSteven Rostedt TP_PROTO(unsigned long call_site, 65ad8d75ffSSteven Rostedt const void *ptr, 66ad8d75ffSSteven Rostedt size_t bytes_req, 67ad8d75ffSSteven Rostedt size_t bytes_alloc, 68ad8d75ffSSteven Rostedt gfp_t gfp_flags, 69ad8d75ffSSteven Rostedt int node), 70ad8d75ffSSteven Rostedt 71ad8d75ffSSteven Rostedt TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node), 72ad8d75ffSSteven Rostedt 73ad8d75ffSSteven Rostedt TP_STRUCT__entry( 74ad8d75ffSSteven Rostedt __field( unsigned long, call_site ) 75ad8d75ffSSteven Rostedt __field( const void *, ptr ) 76ad8d75ffSSteven Rostedt __field( size_t, bytes_req ) 77ad8d75ffSSteven Rostedt __field( size_t, bytes_alloc ) 78ad8d75ffSSteven Rostedt __field( gfp_t, gfp_flags ) 79ad8d75ffSSteven Rostedt __field( int, node ) 80ad8d75ffSSteven Rostedt ), 81ad8d75ffSSteven Rostedt 82ad8d75ffSSteven Rostedt TP_fast_assign( 83ad8d75ffSSteven Rostedt __entry->call_site = call_site; 84ad8d75ffSSteven Rostedt __entry->ptr = ptr; 85ad8d75ffSSteven Rostedt __entry->bytes_req = bytes_req; 86ad8d75ffSSteven Rostedt __entry->bytes_alloc = bytes_alloc; 87ad8d75ffSSteven Rostedt __entry->gfp_flags = gfp_flags; 88ad8d75ffSSteven Rostedt __entry->node = node; 89ad8d75ffSSteven Rostedt ), 90ad8d75ffSSteven Rostedt 917e168b9bSJunyong Sun TP_printk("call_site=%pS ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s node=%d", 927e168b9bSJunyong Sun (void *)__entry->call_site, 93ad8d75ffSSteven Rostedt __entry->ptr, 94ad8d75ffSSteven Rostedt __entry->bytes_req, 95ad8d75ffSSteven Rostedt __entry->bytes_alloc, 9662ba180eSSteven Rostedt show_gfp_flags(__entry->gfp_flags), 97ad8d75ffSSteven Rostedt __entry->node) 98ad8d75ffSSteven Rostedt ); 99ad8d75ffSSteven Rostedt 10053d0422cSLi Zefan DEFINE_EVENT(kmem_alloc_node, kmalloc_node, 101ad8d75ffSSteven Rostedt 10253d0422cSLi Zefan TP_PROTO(unsigned long call_site, const void *ptr, 10353d0422cSLi Zefan size_t bytes_req, size_t bytes_alloc, 10453d0422cSLi Zefan gfp_t gfp_flags, int node), 105ad8d75ffSSteven Rostedt 10653d0422cSLi Zefan TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node) 107ad8d75ffSSteven Rostedt ); 108ad8d75ffSSteven Rostedt 10953d0422cSLi Zefan DEFINE_EVENT(kmem_alloc_node, kmem_cache_alloc_node, 11053d0422cSLi Zefan 11153d0422cSLi Zefan TP_PROTO(unsigned long call_site, const void *ptr, 11253d0422cSLi Zefan size_t bytes_req, size_t bytes_alloc, 11353d0422cSLi Zefan gfp_t gfp_flags, int node), 11453d0422cSLi Zefan 11553d0422cSLi Zefan TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node) 11653d0422cSLi Zefan ); 11753d0422cSLi Zefan 1183544de8eSJacob Wen TRACE_EVENT(kfree, 119ad8d75ffSSteven Rostedt 120ad8d75ffSSteven Rostedt TP_PROTO(unsigned long call_site, const void *ptr), 121ad8d75ffSSteven Rostedt 122ad8d75ffSSteven Rostedt TP_ARGS(call_site, ptr), 123ad8d75ffSSteven Rostedt 124ad8d75ffSSteven Rostedt TP_STRUCT__entry( 125ad8d75ffSSteven Rostedt __field( unsigned long, call_site ) 126ad8d75ffSSteven Rostedt __field( const void *, ptr ) 127ad8d75ffSSteven Rostedt ), 128ad8d75ffSSteven Rostedt 129ad8d75ffSSteven Rostedt TP_fast_assign( 130ad8d75ffSSteven Rostedt __entry->call_site = call_site; 131ad8d75ffSSteven Rostedt __entry->ptr = ptr; 132ad8d75ffSSteven Rostedt ), 133ad8d75ffSSteven Rostedt 134f7d6316fSChangbin Du TP_printk("call_site=%pS ptr=%p", 135f7d6316fSChangbin Du (void *)__entry->call_site, __entry->ptr) 136ad8d75ffSSteven Rostedt ); 137ad8d75ffSSteven Rostedt 1383544de8eSJacob Wen TRACE_EVENT(kmem_cache_free, 139ad8d75ffSSteven Rostedt 1403544de8eSJacob Wen TP_PROTO(unsigned long call_site, const void *ptr, const char *name), 141ad8d75ffSSteven Rostedt 1423544de8eSJacob Wen TP_ARGS(call_site, ptr, name), 143ad8d75ffSSteven Rostedt 1443544de8eSJacob Wen TP_STRUCT__entry( 1453544de8eSJacob Wen __field( unsigned long, call_site ) 1463544de8eSJacob Wen __field( const void *, ptr ) 147*d8145679SSteven Rostedt (VMware) __string( name, name ) 1483544de8eSJacob Wen ), 149ad8d75ffSSteven Rostedt 1503544de8eSJacob Wen TP_fast_assign( 1513544de8eSJacob Wen __entry->call_site = call_site; 1523544de8eSJacob Wen __entry->ptr = ptr; 153*d8145679SSteven Rostedt (VMware) __assign_str(name, name); 1543544de8eSJacob Wen ), 155ad8d75ffSSteven Rostedt 1563544de8eSJacob Wen TP_printk("call_site=%pS ptr=%p name=%s", 157*d8145679SSteven Rostedt (VMware) (void *)__entry->call_site, __entry->ptr, __get_str(name)) 158ad8d75ffSSteven Rostedt ); 1594b4f278cSMel Gorman 160633f6f58SSteven Rostedt (Red Hat) TRACE_EVENT(mm_page_free, 1614b4f278cSMel Gorman 1624b4f278cSMel Gorman TP_PROTO(struct page *page, unsigned int order), 1634b4f278cSMel Gorman 1644b4f278cSMel Gorman TP_ARGS(page, order), 1654b4f278cSMel Gorman 1664b4f278cSMel Gorman TP_STRUCT__entry( 1679fdd8a87SNamhyung Kim __field( unsigned long, pfn ) 1684b4f278cSMel Gorman __field( unsigned int, order ) 1694b4f278cSMel Gorman ), 1704b4f278cSMel Gorman 1714b4f278cSMel Gorman TP_fast_assign( 1729fdd8a87SNamhyung Kim __entry->pfn = page_to_pfn(page); 1734b4f278cSMel Gorman __entry->order = order; 1744b4f278cSMel Gorman ), 1754b4f278cSMel Gorman 1764b4f278cSMel Gorman TP_printk("page=%p pfn=%lu order=%d", 1779fdd8a87SNamhyung Kim pfn_to_page(__entry->pfn), 1789fdd8a87SNamhyung Kim __entry->pfn, 1794b4f278cSMel Gorman __entry->order) 1804b4f278cSMel Gorman ); 1814b4f278cSMel Gorman 182b413d48aSKonstantin Khlebnikov TRACE_EVENT(mm_page_free_batched, 1834b4f278cSMel Gorman 1842d4894b5SMel Gorman TP_PROTO(struct page *page), 1854b4f278cSMel Gorman 1862d4894b5SMel Gorman TP_ARGS(page), 1874b4f278cSMel Gorman 1884b4f278cSMel Gorman TP_STRUCT__entry( 1899fdd8a87SNamhyung Kim __field( unsigned long, pfn ) 1904b4f278cSMel Gorman ), 1914b4f278cSMel Gorman 1924b4f278cSMel Gorman TP_fast_assign( 1939fdd8a87SNamhyung Kim __entry->pfn = page_to_pfn(page); 1944b4f278cSMel Gorman ), 1954b4f278cSMel Gorman 1962d4894b5SMel Gorman TP_printk("page=%p pfn=%lu order=0", 1979fdd8a87SNamhyung Kim pfn_to_page(__entry->pfn), 1982d4894b5SMel Gorman __entry->pfn) 1994b4f278cSMel Gorman ); 2004b4f278cSMel Gorman 2014b4f278cSMel Gorman TRACE_EVENT(mm_page_alloc, 2024b4f278cSMel Gorman 2034b4f278cSMel Gorman TP_PROTO(struct page *page, unsigned int order, 2044b4f278cSMel Gorman gfp_t gfp_flags, int migratetype), 2054b4f278cSMel Gorman 2064b4f278cSMel Gorman TP_ARGS(page, order, gfp_flags, migratetype), 2074b4f278cSMel Gorman 2084b4f278cSMel Gorman TP_STRUCT__entry( 2099fdd8a87SNamhyung Kim __field( unsigned long, pfn ) 2104b4f278cSMel Gorman __field( unsigned int, order ) 2114b4f278cSMel Gorman __field( gfp_t, gfp_flags ) 2124b4f278cSMel Gorman __field( int, migratetype ) 2134b4f278cSMel Gorman ), 2144b4f278cSMel Gorman 2154b4f278cSMel Gorman TP_fast_assign( 2169fdd8a87SNamhyung Kim __entry->pfn = page ? page_to_pfn(page) : -1UL; 2174b4f278cSMel Gorman __entry->order = order; 2184b4f278cSMel Gorman __entry->gfp_flags = gfp_flags; 2194b4f278cSMel Gorman __entry->migratetype = migratetype; 2204b4f278cSMel Gorman ), 2214b4f278cSMel Gorman 2224b4f278cSMel Gorman TP_printk("page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s", 2239fdd8a87SNamhyung Kim __entry->pfn != -1UL ? pfn_to_page(__entry->pfn) : NULL, 2249fdd8a87SNamhyung Kim __entry->pfn != -1UL ? __entry->pfn : 0, 2254b4f278cSMel Gorman __entry->order, 2264b4f278cSMel Gorman __entry->migratetype, 2274b4f278cSMel Gorman show_gfp_flags(__entry->gfp_flags)) 2284b4f278cSMel Gorman ); 2294b4f278cSMel Gorman 23053d0422cSLi Zefan DECLARE_EVENT_CLASS(mm_page, 2310d3d062aSMel Gorman 2320d3d062aSMel Gorman TP_PROTO(struct page *page, unsigned int order, int migratetype), 2330d3d062aSMel Gorman 2340d3d062aSMel Gorman TP_ARGS(page, order, migratetype), 2350d3d062aSMel Gorman 2360d3d062aSMel Gorman TP_STRUCT__entry( 2379fdd8a87SNamhyung Kim __field( unsigned long, pfn ) 2380d3d062aSMel Gorman __field( unsigned int, order ) 2390d3d062aSMel Gorman __field( int, migratetype ) 2400d3d062aSMel Gorman ), 2410d3d062aSMel Gorman 2420d3d062aSMel Gorman TP_fast_assign( 2439fdd8a87SNamhyung Kim __entry->pfn = page ? page_to_pfn(page) : -1UL; 2440d3d062aSMel Gorman __entry->order = order; 2450d3d062aSMel Gorman __entry->migratetype = migratetype; 2460d3d062aSMel Gorman ), 2470d3d062aSMel Gorman 2480d3d062aSMel Gorman TP_printk("page=%p pfn=%lu order=%u migratetype=%d percpu_refill=%d", 2499fdd8a87SNamhyung Kim __entry->pfn != -1UL ? pfn_to_page(__entry->pfn) : NULL, 2509fdd8a87SNamhyung Kim __entry->pfn != -1UL ? __entry->pfn : 0, 2510d3d062aSMel Gorman __entry->order, 2520d3d062aSMel Gorman __entry->migratetype, 2530d3d062aSMel Gorman __entry->order == 0) 2540d3d062aSMel Gorman ); 2550d3d062aSMel Gorman 25653d0422cSLi Zefan DEFINE_EVENT(mm_page, mm_page_alloc_zone_locked, 2570d3d062aSMel Gorman 25853d0422cSLi Zefan TP_PROTO(struct page *page, unsigned int order, int migratetype), 25953d0422cSLi Zefan 26053d0422cSLi Zefan TP_ARGS(page, order, migratetype) 26153d0422cSLi Zefan ); 26253d0422cSLi Zefan 263633f6f58SSteven Rostedt (Red Hat) TRACE_EVENT(mm_page_pcpu_drain, 26453d0422cSLi Zefan 26553d0422cSLi Zefan TP_PROTO(struct page *page, unsigned int order, int migratetype), 2660d3d062aSMel Gorman 2670d3d062aSMel Gorman TP_ARGS(page, order, migratetype), 2680d3d062aSMel Gorman 269649b8de2SShreyas B. Prabhu TP_STRUCT__entry( 270649b8de2SShreyas B. Prabhu __field( unsigned long, pfn ) 271649b8de2SShreyas B. Prabhu __field( unsigned int, order ) 272649b8de2SShreyas B. Prabhu __field( int, migratetype ) 273649b8de2SShreyas B. Prabhu ), 274649b8de2SShreyas B. Prabhu 275649b8de2SShreyas B. Prabhu TP_fast_assign( 276649b8de2SShreyas B. Prabhu __entry->pfn = page ? page_to_pfn(page) : -1UL; 277649b8de2SShreyas B. Prabhu __entry->order = order; 278649b8de2SShreyas B. Prabhu __entry->migratetype = migratetype; 279649b8de2SShreyas B. Prabhu ), 280649b8de2SShreyas B. Prabhu 2810d3d062aSMel Gorman TP_printk("page=%p pfn=%lu order=%d migratetype=%d", 2829fdd8a87SNamhyung Kim pfn_to_page(__entry->pfn), __entry->pfn, 28353d0422cSLi Zefan __entry->order, __entry->migratetype) 2840d3d062aSMel Gorman ); 2850d3d062aSMel Gorman 286e0fff1bdSMel Gorman TRACE_EVENT(mm_page_alloc_extfrag, 287e0fff1bdSMel Gorman 288e0fff1bdSMel Gorman TP_PROTO(struct page *page, 289e0fff1bdSMel Gorman int alloc_order, int fallback_order, 29099592d59SVlastimil Babka int alloc_migratetype, int fallback_migratetype), 291e0fff1bdSMel Gorman 292e0fff1bdSMel Gorman TP_ARGS(page, 293e0fff1bdSMel Gorman alloc_order, fallback_order, 29499592d59SVlastimil Babka alloc_migratetype, fallback_migratetype), 295e0fff1bdSMel Gorman 296e0fff1bdSMel Gorman TP_STRUCT__entry( 2979fdd8a87SNamhyung Kim __field( unsigned long, pfn ) 298e0fff1bdSMel Gorman __field( int, alloc_order ) 299e0fff1bdSMel Gorman __field( int, fallback_order ) 300e0fff1bdSMel Gorman __field( int, alloc_migratetype ) 301e0fff1bdSMel Gorman __field( int, fallback_migratetype ) 302f92310c1SSrivatsa S. Bhat __field( int, change_ownership ) 303e0fff1bdSMel Gorman ), 304e0fff1bdSMel Gorman 305e0fff1bdSMel Gorman TP_fast_assign( 3069fdd8a87SNamhyung Kim __entry->pfn = page_to_pfn(page); 307e0fff1bdSMel Gorman __entry->alloc_order = alloc_order; 308e0fff1bdSMel Gorman __entry->fallback_order = fallback_order; 309e0fff1bdSMel Gorman __entry->alloc_migratetype = alloc_migratetype; 310e0fff1bdSMel Gorman __entry->fallback_migratetype = fallback_migratetype; 31199592d59SVlastimil Babka __entry->change_ownership = (alloc_migratetype == 31299592d59SVlastimil Babka get_pageblock_migratetype(page)); 313e0fff1bdSMel Gorman ), 314e0fff1bdSMel Gorman 315e0fff1bdSMel Gorman 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", 3169fdd8a87SNamhyung Kim pfn_to_page(__entry->pfn), 3179fdd8a87SNamhyung Kim __entry->pfn, 318e0fff1bdSMel Gorman __entry->alloc_order, 319e0fff1bdSMel Gorman __entry->fallback_order, 320e0fff1bdSMel Gorman pageblock_order, 321e0fff1bdSMel Gorman __entry->alloc_migratetype, 322e0fff1bdSMel Gorman __entry->fallback_migratetype, 323e0fff1bdSMel Gorman __entry->fallback_order < pageblock_order, 324f92310c1SSrivatsa S. Bhat __entry->change_ownership) 325e0fff1bdSMel Gorman ); 326e0fff1bdSMel Gorman 327e4dcad20SJoel Fernandes (Google) /* 328e4dcad20SJoel Fernandes (Google) * Required for uniquely and securely identifying mm in rss_stat tracepoint. 329e4dcad20SJoel Fernandes (Google) */ 330e4dcad20SJoel Fernandes (Google) #ifndef __PTR_TO_HASHVAL 331e4dcad20SJoel Fernandes (Google) static unsigned int __maybe_unused mm_ptr_to_hash(const void *ptr) 332e4dcad20SJoel Fernandes (Google) { 333e4dcad20SJoel Fernandes (Google) int ret; 334e4dcad20SJoel Fernandes (Google) unsigned long hashval; 335e4dcad20SJoel Fernandes (Google) 336e4dcad20SJoel Fernandes (Google) ret = ptr_to_hashval(ptr, &hashval); 337e4dcad20SJoel Fernandes (Google) if (ret) 338e4dcad20SJoel Fernandes (Google) return 0; 339e4dcad20SJoel Fernandes (Google) 340e4dcad20SJoel Fernandes (Google) /* The hashed value is only 32-bit */ 341e4dcad20SJoel Fernandes (Google) return (unsigned int)hashval; 342e4dcad20SJoel Fernandes (Google) } 343e4dcad20SJoel Fernandes (Google) #define __PTR_TO_HASHVAL 344e4dcad20SJoel Fernandes (Google) #endif 345e4dcad20SJoel Fernandes (Google) 346b3d1411bSJoel Fernandes (Google) TRACE_EVENT(rss_stat, 347b3d1411bSJoel Fernandes (Google) 348e4dcad20SJoel Fernandes (Google) TP_PROTO(struct mm_struct *mm, 349e4dcad20SJoel Fernandes (Google) int member, 350b3d1411bSJoel Fernandes (Google) long count), 351b3d1411bSJoel Fernandes (Google) 352e4dcad20SJoel Fernandes (Google) TP_ARGS(mm, member, count), 353b3d1411bSJoel Fernandes (Google) 354b3d1411bSJoel Fernandes (Google) TP_STRUCT__entry( 355e4dcad20SJoel Fernandes (Google) __field(unsigned int, mm_id) 356e4dcad20SJoel Fernandes (Google) __field(unsigned int, curr) 357b3d1411bSJoel Fernandes (Google) __field(int, member) 358b3d1411bSJoel Fernandes (Google) __field(long, size) 359b3d1411bSJoel Fernandes (Google) ), 360b3d1411bSJoel Fernandes (Google) 361b3d1411bSJoel Fernandes (Google) TP_fast_assign( 362e4dcad20SJoel Fernandes (Google) __entry->mm_id = mm_ptr_to_hash(mm); 363e4dcad20SJoel Fernandes (Google) __entry->curr = !!(current->mm == mm); 364b3d1411bSJoel Fernandes (Google) __entry->member = member; 365b3d1411bSJoel Fernandes (Google) __entry->size = (count << PAGE_SHIFT); 366b3d1411bSJoel Fernandes (Google) ), 367b3d1411bSJoel Fernandes (Google) 368e4dcad20SJoel Fernandes (Google) TP_printk("mm_id=%u curr=%d member=%d size=%ldB", 369e4dcad20SJoel Fernandes (Google) __entry->mm_id, 370e4dcad20SJoel Fernandes (Google) __entry->curr, 371b3d1411bSJoel Fernandes (Google) __entry->member, 372b3d1411bSJoel Fernandes (Google) __entry->size) 373b3d1411bSJoel Fernandes (Google) ); 374ad8d75ffSSteven Rostedt #endif /* _TRACE_KMEM_H */ 375ad8d75ffSSteven Rostedt 376ad8d75ffSSteven Rostedt /* This part must be outside protection */ 377ad8d75ffSSteven Rostedt #include <trace/define_trace.h> 378