xref: /openbmc/linux/include/trace/events/kmem.h (revision 53d0422c)
1d0b6e04aSLi Zefan #undef TRACE_SYSTEM
2d0b6e04aSLi Zefan #define TRACE_SYSTEM kmem
3d0b6e04aSLi Zefan 
4ad8d75ffSSteven Rostedt #if !defined(_TRACE_KMEM_H) || defined(TRACE_HEADER_MULTI_READ)
5ad8d75ffSSteven Rostedt #define _TRACE_KMEM_H
6ad8d75ffSSteven Rostedt 
7ad8d75ffSSteven Rostedt #include <linux/types.h>
8ad8d75ffSSteven Rostedt #include <linux/tracepoint.h>
9ad8d75ffSSteven Rostedt 
1062ba180eSSteven Rostedt /*
1162ba180eSSteven Rostedt  * The order of these masks is important. Matching masks will be seen
1262ba180eSSteven Rostedt  * first and the left over flags will end up showing by themselves.
1362ba180eSSteven Rostedt  *
1462ba180eSSteven Rostedt  * For example, if we have GFP_KERNEL before GFP_USER we wil get:
1562ba180eSSteven Rostedt  *
1662ba180eSSteven Rostedt  *  GFP_KERNEL|GFP_HARDWALL
1762ba180eSSteven Rostedt  *
1862ba180eSSteven Rostedt  * Thus most bits set go first.
1962ba180eSSteven Rostedt  */
2062ba180eSSteven Rostedt #define show_gfp_flags(flags)						\
2162ba180eSSteven Rostedt 	(flags) ? __print_flags(flags, "|",				\
2262ba180eSSteven Rostedt 	{(unsigned long)GFP_HIGHUSER_MOVABLE,	"GFP_HIGHUSER_MOVABLE"}, \
2362ba180eSSteven Rostedt 	{(unsigned long)GFP_HIGHUSER,		"GFP_HIGHUSER"},	\
2462ba180eSSteven Rostedt 	{(unsigned long)GFP_USER,		"GFP_USER"},		\
2562ba180eSSteven Rostedt 	{(unsigned long)GFP_TEMPORARY,		"GFP_TEMPORARY"},	\
2662ba180eSSteven Rostedt 	{(unsigned long)GFP_KERNEL,		"GFP_KERNEL"},		\
2762ba180eSSteven Rostedt 	{(unsigned long)GFP_NOFS,		"GFP_NOFS"},		\
2862ba180eSSteven Rostedt 	{(unsigned long)GFP_ATOMIC,		"GFP_ATOMIC"},		\
2962ba180eSSteven Rostedt 	{(unsigned long)GFP_NOIO,		"GFP_NOIO"},		\
3062ba180eSSteven Rostedt 	{(unsigned long)__GFP_HIGH,		"GFP_HIGH"},		\
3162ba180eSSteven Rostedt 	{(unsigned long)__GFP_WAIT,		"GFP_WAIT"},		\
3262ba180eSSteven Rostedt 	{(unsigned long)__GFP_IO,		"GFP_IO"},		\
3362ba180eSSteven Rostedt 	{(unsigned long)__GFP_COLD,		"GFP_COLD"},		\
3462ba180eSSteven Rostedt 	{(unsigned long)__GFP_NOWARN,		"GFP_NOWARN"},		\
3562ba180eSSteven Rostedt 	{(unsigned long)__GFP_REPEAT,		"GFP_REPEAT"},		\
3662ba180eSSteven Rostedt 	{(unsigned long)__GFP_NOFAIL,		"GFP_NOFAIL"},		\
3762ba180eSSteven Rostedt 	{(unsigned long)__GFP_NORETRY,		"GFP_NORETRY"},		\
3862ba180eSSteven Rostedt 	{(unsigned long)__GFP_COMP,		"GFP_COMP"},		\
3962ba180eSSteven Rostedt 	{(unsigned long)__GFP_ZERO,		"GFP_ZERO"},		\
4062ba180eSSteven Rostedt 	{(unsigned long)__GFP_NOMEMALLOC,	"GFP_NOMEMALLOC"},	\
4162ba180eSSteven Rostedt 	{(unsigned long)__GFP_HARDWALL,		"GFP_HARDWALL"},	\
4262ba180eSSteven Rostedt 	{(unsigned long)__GFP_THISNODE,		"GFP_THISNODE"},	\
4362ba180eSSteven Rostedt 	{(unsigned long)__GFP_RECLAIMABLE,	"GFP_RECLAIMABLE"},	\
4462ba180eSSteven Rostedt 	{(unsigned long)__GFP_MOVABLE,		"GFP_MOVABLE"}		\
4562ba180eSSteven Rostedt 	) : "GFP_NOWAIT"
4662ba180eSSteven Rostedt 
4753d0422cSLi Zefan DECLARE_EVENT_CLASS(kmem_alloc,
48ad8d75ffSSteven Rostedt 
49ad8d75ffSSteven Rostedt 	TP_PROTO(unsigned long call_site,
50ad8d75ffSSteven Rostedt 		 const void *ptr,
51ad8d75ffSSteven Rostedt 		 size_t bytes_req,
52ad8d75ffSSteven Rostedt 		 size_t bytes_alloc,
53ad8d75ffSSteven Rostedt 		 gfp_t gfp_flags),
54ad8d75ffSSteven Rostedt 
55ad8d75ffSSteven Rostedt 	TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags),
56ad8d75ffSSteven Rostedt 
57ad8d75ffSSteven Rostedt 	TP_STRUCT__entry(
58ad8d75ffSSteven Rostedt 		__field(	unsigned long,	call_site	)
59ad8d75ffSSteven Rostedt 		__field(	const void *,	ptr		)
60ad8d75ffSSteven Rostedt 		__field(	size_t,		bytes_req	)
61ad8d75ffSSteven Rostedt 		__field(	size_t,		bytes_alloc	)
62ad8d75ffSSteven Rostedt 		__field(	gfp_t,		gfp_flags	)
63ad8d75ffSSteven Rostedt 	),
64ad8d75ffSSteven Rostedt 
65ad8d75ffSSteven Rostedt 	TP_fast_assign(
66ad8d75ffSSteven Rostedt 		__entry->call_site	= call_site;
67ad8d75ffSSteven Rostedt 		__entry->ptr		= ptr;
68ad8d75ffSSteven Rostedt 		__entry->bytes_req	= bytes_req;
69ad8d75ffSSteven Rostedt 		__entry->bytes_alloc	= bytes_alloc;
70ad8d75ffSSteven Rostedt 		__entry->gfp_flags	= gfp_flags;
71ad8d75ffSSteven Rostedt 	),
72ad8d75ffSSteven Rostedt 
7362ba180eSSteven Rostedt 	TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s",
74ad8d75ffSSteven Rostedt 		__entry->call_site,
75ad8d75ffSSteven Rostedt 		__entry->ptr,
76ad8d75ffSSteven Rostedt 		__entry->bytes_req,
77ad8d75ffSSteven Rostedt 		__entry->bytes_alloc,
7862ba180eSSteven Rostedt 		show_gfp_flags(__entry->gfp_flags))
79ad8d75ffSSteven Rostedt );
80ad8d75ffSSteven Rostedt 
8153d0422cSLi Zefan DEFINE_EVENT(kmem_alloc, kmalloc,
82ad8d75ffSSteven Rostedt 
8353d0422cSLi Zefan 	TP_PROTO(unsigned long call_site, const void *ptr,
8453d0422cSLi Zefan 		 size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags),
85ad8d75ffSSteven Rostedt 
8653d0422cSLi Zefan 	TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags)
87ad8d75ffSSteven Rostedt );
88ad8d75ffSSteven Rostedt 
8953d0422cSLi Zefan DEFINE_EVENT(kmem_alloc, kmem_cache_alloc,
9053d0422cSLi Zefan 
9153d0422cSLi Zefan 	TP_PROTO(unsigned long call_site, const void *ptr,
9253d0422cSLi Zefan 		 size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags),
9353d0422cSLi Zefan 
9453d0422cSLi Zefan 	TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags)
9553d0422cSLi Zefan );
9653d0422cSLi Zefan 
9753d0422cSLi Zefan DECLARE_EVENT_CLASS(kmem_alloc_node,
98ad8d75ffSSteven Rostedt 
99ad8d75ffSSteven Rostedt 	TP_PROTO(unsigned long call_site,
100ad8d75ffSSteven Rostedt 		 const void *ptr,
101ad8d75ffSSteven Rostedt 		 size_t bytes_req,
102ad8d75ffSSteven Rostedt 		 size_t bytes_alloc,
103ad8d75ffSSteven Rostedt 		 gfp_t gfp_flags,
104ad8d75ffSSteven Rostedt 		 int node),
105ad8d75ffSSteven Rostedt 
106ad8d75ffSSteven Rostedt 	TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node),
107ad8d75ffSSteven Rostedt 
108ad8d75ffSSteven Rostedt 	TP_STRUCT__entry(
109ad8d75ffSSteven Rostedt 		__field(	unsigned long,	call_site	)
110ad8d75ffSSteven Rostedt 		__field(	const void *,	ptr		)
111ad8d75ffSSteven Rostedt 		__field(	size_t,		bytes_req	)
112ad8d75ffSSteven Rostedt 		__field(	size_t,		bytes_alloc	)
113ad8d75ffSSteven Rostedt 		__field(	gfp_t,		gfp_flags	)
114ad8d75ffSSteven Rostedt 		__field(	int,		node		)
115ad8d75ffSSteven Rostedt 	),
116ad8d75ffSSteven Rostedt 
117ad8d75ffSSteven Rostedt 	TP_fast_assign(
118ad8d75ffSSteven Rostedt 		__entry->call_site	= call_site;
119ad8d75ffSSteven Rostedt 		__entry->ptr		= ptr;
120ad8d75ffSSteven Rostedt 		__entry->bytes_req	= bytes_req;
121ad8d75ffSSteven Rostedt 		__entry->bytes_alloc	= bytes_alloc;
122ad8d75ffSSteven Rostedt 		__entry->gfp_flags	= gfp_flags;
123ad8d75ffSSteven Rostedt 		__entry->node		= node;
124ad8d75ffSSteven Rostedt 	),
125ad8d75ffSSteven Rostedt 
12662ba180eSSteven Rostedt 	TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s node=%d",
127ad8d75ffSSteven Rostedt 		__entry->call_site,
128ad8d75ffSSteven Rostedt 		__entry->ptr,
129ad8d75ffSSteven Rostedt 		__entry->bytes_req,
130ad8d75ffSSteven Rostedt 		__entry->bytes_alloc,
13162ba180eSSteven Rostedt 		show_gfp_flags(__entry->gfp_flags),
132ad8d75ffSSteven Rostedt 		__entry->node)
133ad8d75ffSSteven Rostedt );
134ad8d75ffSSteven Rostedt 
13553d0422cSLi Zefan DEFINE_EVENT(kmem_alloc_node, kmalloc_node,
136ad8d75ffSSteven Rostedt 
13753d0422cSLi Zefan 	TP_PROTO(unsigned long call_site, const void *ptr,
13853d0422cSLi Zefan 		 size_t bytes_req, size_t bytes_alloc,
13953d0422cSLi Zefan 		 gfp_t gfp_flags, int node),
140ad8d75ffSSteven Rostedt 
14153d0422cSLi Zefan 	TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node)
142ad8d75ffSSteven Rostedt );
143ad8d75ffSSteven Rostedt 
14453d0422cSLi Zefan DEFINE_EVENT(kmem_alloc_node, kmem_cache_alloc_node,
14553d0422cSLi Zefan 
14653d0422cSLi Zefan 	TP_PROTO(unsigned long call_site, const void *ptr,
14753d0422cSLi Zefan 		 size_t bytes_req, size_t bytes_alloc,
14853d0422cSLi Zefan 		 gfp_t gfp_flags, int node),
14953d0422cSLi Zefan 
15053d0422cSLi Zefan 	TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node)
15153d0422cSLi Zefan );
15253d0422cSLi Zefan 
15353d0422cSLi Zefan DECLARE_EVENT_CLASS(kmem_free,
154ad8d75ffSSteven Rostedt 
155ad8d75ffSSteven Rostedt 	TP_PROTO(unsigned long call_site, const void *ptr),
156ad8d75ffSSteven Rostedt 
157ad8d75ffSSteven Rostedt 	TP_ARGS(call_site, ptr),
158ad8d75ffSSteven Rostedt 
159ad8d75ffSSteven Rostedt 	TP_STRUCT__entry(
160ad8d75ffSSteven Rostedt 		__field(	unsigned long,	call_site	)
161ad8d75ffSSteven Rostedt 		__field(	const void *,	ptr		)
162ad8d75ffSSteven Rostedt 	),
163ad8d75ffSSteven Rostedt 
164ad8d75ffSSteven Rostedt 	TP_fast_assign(
165ad8d75ffSSteven Rostedt 		__entry->call_site	= call_site;
166ad8d75ffSSteven Rostedt 		__entry->ptr		= ptr;
167ad8d75ffSSteven Rostedt 	),
168ad8d75ffSSteven Rostedt 
169ad8d75ffSSteven Rostedt 	TP_printk("call_site=%lx ptr=%p", __entry->call_site, __entry->ptr)
170ad8d75ffSSteven Rostedt );
171ad8d75ffSSteven Rostedt 
17253d0422cSLi Zefan DEFINE_EVENT(kmem_free, kfree,
173ad8d75ffSSteven Rostedt 
174ad8d75ffSSteven Rostedt 	TP_PROTO(unsigned long call_site, const void *ptr),
175ad8d75ffSSteven Rostedt 
17653d0422cSLi Zefan 	TP_ARGS(call_site, ptr)
17753d0422cSLi Zefan );
178ad8d75ffSSteven Rostedt 
17953d0422cSLi Zefan DEFINE_EVENT(kmem_free, kmem_cache_free,
180ad8d75ffSSteven Rostedt 
18153d0422cSLi Zefan 	TP_PROTO(unsigned long call_site, const void *ptr),
182ad8d75ffSSteven Rostedt 
18353d0422cSLi Zefan 	TP_ARGS(call_site, ptr)
184ad8d75ffSSteven Rostedt );
1854b4f278cSMel Gorman 
1864b4f278cSMel Gorman TRACE_EVENT(mm_page_free_direct,
1874b4f278cSMel Gorman 
1884b4f278cSMel Gorman 	TP_PROTO(struct page *page, unsigned int order),
1894b4f278cSMel Gorman 
1904b4f278cSMel Gorman 	TP_ARGS(page, order),
1914b4f278cSMel Gorman 
1924b4f278cSMel Gorman 	TP_STRUCT__entry(
1934b4f278cSMel Gorman 		__field(	struct page *,	page		)
1944b4f278cSMel Gorman 		__field(	unsigned int,	order		)
1954b4f278cSMel Gorman 	),
1964b4f278cSMel Gorman 
1974b4f278cSMel Gorman 	TP_fast_assign(
1984b4f278cSMel Gorman 		__entry->page		= page;
1994b4f278cSMel Gorman 		__entry->order		= order;
2004b4f278cSMel Gorman 	),
2014b4f278cSMel Gorman 
2024b4f278cSMel Gorman 	TP_printk("page=%p pfn=%lu order=%d",
2034b4f278cSMel Gorman 			__entry->page,
2044b4f278cSMel Gorman 			page_to_pfn(__entry->page),
2054b4f278cSMel Gorman 			__entry->order)
2064b4f278cSMel Gorman );
2074b4f278cSMel Gorman 
2084b4f278cSMel Gorman TRACE_EVENT(mm_pagevec_free,
2094b4f278cSMel Gorman 
2104b4f278cSMel Gorman 	TP_PROTO(struct page *page, int cold),
2114b4f278cSMel Gorman 
2124b4f278cSMel Gorman 	TP_ARGS(page, cold),
2134b4f278cSMel Gorman 
2144b4f278cSMel Gorman 	TP_STRUCT__entry(
2154b4f278cSMel Gorman 		__field(	struct page *,	page		)
2164b4f278cSMel Gorman 		__field(	int,		cold		)
2174b4f278cSMel Gorman 	),
2184b4f278cSMel Gorman 
2194b4f278cSMel Gorman 	TP_fast_assign(
2204b4f278cSMel Gorman 		__entry->page		= page;
2214b4f278cSMel Gorman 		__entry->cold		= cold;
2224b4f278cSMel Gorman 	),
2234b4f278cSMel Gorman 
2244b4f278cSMel Gorman 	TP_printk("page=%p pfn=%lu order=0 cold=%d",
2254b4f278cSMel Gorman 			__entry->page,
2264b4f278cSMel Gorman 			page_to_pfn(__entry->page),
2274b4f278cSMel Gorman 			__entry->cold)
2284b4f278cSMel Gorman );
2294b4f278cSMel Gorman 
2304b4f278cSMel Gorman TRACE_EVENT(mm_page_alloc,
2314b4f278cSMel Gorman 
2324b4f278cSMel Gorman 	TP_PROTO(struct page *page, unsigned int order,
2334b4f278cSMel Gorman 			gfp_t gfp_flags, int migratetype),
2344b4f278cSMel Gorman 
2354b4f278cSMel Gorman 	TP_ARGS(page, order, gfp_flags, migratetype),
2364b4f278cSMel Gorman 
2374b4f278cSMel Gorman 	TP_STRUCT__entry(
2384b4f278cSMel Gorman 		__field(	struct page *,	page		)
2394b4f278cSMel Gorman 		__field(	unsigned int,	order		)
2404b4f278cSMel Gorman 		__field(	gfp_t,		gfp_flags	)
2414b4f278cSMel Gorman 		__field(	int,		migratetype	)
2424b4f278cSMel Gorman 	),
2434b4f278cSMel Gorman 
2444b4f278cSMel Gorman 	TP_fast_assign(
2454b4f278cSMel Gorman 		__entry->page		= page;
2464b4f278cSMel Gorman 		__entry->order		= order;
2474b4f278cSMel Gorman 		__entry->gfp_flags	= gfp_flags;
2484b4f278cSMel Gorman 		__entry->migratetype	= migratetype;
2494b4f278cSMel Gorman 	),
2504b4f278cSMel Gorman 
2514b4f278cSMel Gorman 	TP_printk("page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s",
2524b4f278cSMel Gorman 		__entry->page,
2534b4f278cSMel Gorman 		page_to_pfn(__entry->page),
2544b4f278cSMel Gorman 		__entry->order,
2554b4f278cSMel Gorman 		__entry->migratetype,
2564b4f278cSMel Gorman 		show_gfp_flags(__entry->gfp_flags))
2574b4f278cSMel Gorman );
2584b4f278cSMel Gorman 
25953d0422cSLi Zefan DECLARE_EVENT_CLASS(mm_page,
2600d3d062aSMel Gorman 
2610d3d062aSMel Gorman 	TP_PROTO(struct page *page, unsigned int order, int migratetype),
2620d3d062aSMel Gorman 
2630d3d062aSMel Gorman 	TP_ARGS(page, order, migratetype),
2640d3d062aSMel Gorman 
2650d3d062aSMel Gorman 	TP_STRUCT__entry(
2660d3d062aSMel Gorman 		__field(	struct page *,	page		)
2670d3d062aSMel Gorman 		__field(	unsigned int,	order		)
2680d3d062aSMel Gorman 		__field(	int,		migratetype	)
2690d3d062aSMel Gorman 	),
2700d3d062aSMel Gorman 
2710d3d062aSMel Gorman 	TP_fast_assign(
2720d3d062aSMel Gorman 		__entry->page		= page;
2730d3d062aSMel Gorman 		__entry->order		= order;
2740d3d062aSMel Gorman 		__entry->migratetype	= migratetype;
2750d3d062aSMel Gorman 	),
2760d3d062aSMel Gorman 
2770d3d062aSMel Gorman 	TP_printk("page=%p pfn=%lu order=%u migratetype=%d percpu_refill=%d",
2780d3d062aSMel Gorman 		__entry->page,
2790d3d062aSMel Gorman 		page_to_pfn(__entry->page),
2800d3d062aSMel Gorman 		__entry->order,
2810d3d062aSMel Gorman 		__entry->migratetype,
2820d3d062aSMel Gorman 		__entry->order == 0)
2830d3d062aSMel Gorman );
2840d3d062aSMel Gorman 
28553d0422cSLi Zefan DEFINE_EVENT(mm_page, mm_page_alloc_zone_locked,
2860d3d062aSMel Gorman 
28753d0422cSLi Zefan 	TP_PROTO(struct page *page, unsigned int order, int migratetype),
28853d0422cSLi Zefan 
28953d0422cSLi Zefan 	TP_ARGS(page, order, migratetype)
29053d0422cSLi Zefan );
29153d0422cSLi Zefan 
29253d0422cSLi Zefan DEFINE_EVENT_PRINT(mm_page, mm_page_pcpu_drain,
29353d0422cSLi Zefan 
29453d0422cSLi Zefan 	TP_PROTO(struct page *page, unsigned int order, int migratetype),
2950d3d062aSMel Gorman 
2960d3d062aSMel Gorman 	TP_ARGS(page, order, migratetype),
2970d3d062aSMel Gorman 
2980d3d062aSMel Gorman 	TP_printk("page=%p pfn=%lu order=%d migratetype=%d",
29953d0422cSLi Zefan 		__entry->page, page_to_pfn(__entry->page),
30053d0422cSLi Zefan 		__entry->order, __entry->migratetype)
3010d3d062aSMel Gorman );
3020d3d062aSMel Gorman 
303e0fff1bdSMel Gorman TRACE_EVENT(mm_page_alloc_extfrag,
304e0fff1bdSMel Gorman 
305e0fff1bdSMel Gorman 	TP_PROTO(struct page *page,
306e0fff1bdSMel Gorman 			int alloc_order, int fallback_order,
307e0fff1bdSMel Gorman 			int alloc_migratetype, int fallback_migratetype),
308e0fff1bdSMel Gorman 
309e0fff1bdSMel Gorman 	TP_ARGS(page,
310e0fff1bdSMel Gorman 		alloc_order, fallback_order,
311e0fff1bdSMel Gorman 		alloc_migratetype, fallback_migratetype),
312e0fff1bdSMel Gorman 
313e0fff1bdSMel Gorman 	TP_STRUCT__entry(
314e0fff1bdSMel Gorman 		__field(	struct page *,	page			)
315e0fff1bdSMel Gorman 		__field(	int,		alloc_order		)
316e0fff1bdSMel Gorman 		__field(	int,		fallback_order		)
317e0fff1bdSMel Gorman 		__field(	int,		alloc_migratetype	)
318e0fff1bdSMel Gorman 		__field(	int,		fallback_migratetype	)
319e0fff1bdSMel Gorman 	),
320e0fff1bdSMel Gorman 
321e0fff1bdSMel Gorman 	TP_fast_assign(
322e0fff1bdSMel Gorman 		__entry->page			= page;
323e0fff1bdSMel Gorman 		__entry->alloc_order		= alloc_order;
324e0fff1bdSMel Gorman 		__entry->fallback_order		= fallback_order;
325e0fff1bdSMel Gorman 		__entry->alloc_migratetype	= alloc_migratetype;
326e0fff1bdSMel Gorman 		__entry->fallback_migratetype	= fallback_migratetype;
327e0fff1bdSMel Gorman 	),
328e0fff1bdSMel Gorman 
329e0fff1bdSMel 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",
330e0fff1bdSMel Gorman 		__entry->page,
331e0fff1bdSMel Gorman 		page_to_pfn(__entry->page),
332e0fff1bdSMel Gorman 		__entry->alloc_order,
333e0fff1bdSMel Gorman 		__entry->fallback_order,
334e0fff1bdSMel Gorman 		pageblock_order,
335e0fff1bdSMel Gorman 		__entry->alloc_migratetype,
336e0fff1bdSMel Gorman 		__entry->fallback_migratetype,
337e0fff1bdSMel Gorman 		__entry->fallback_order < pageblock_order,
338e0fff1bdSMel Gorman 		__entry->alloc_migratetype == __entry->fallback_migratetype)
339e0fff1bdSMel Gorman );
340e0fff1bdSMel Gorman 
341ad8d75ffSSteven Rostedt #endif /* _TRACE_KMEM_H */
342ad8d75ffSSteven Rostedt 
343ad8d75ffSSteven Rostedt /* This part must be outside protection */
344ad8d75ffSSteven Rostedt #include <trace/define_trace.h>
345