xref: /openbmc/linux/include/trace/events/migrate.h (revision 8643e92b5266a34cb9c66388983fc15ac37171d5)
17b2a2d4aSMel Gorman #undef TRACE_SYSTEM
27b2a2d4aSMel Gorman #define TRACE_SYSTEM migrate
37b2a2d4aSMel Gorman 
47b2a2d4aSMel Gorman #if !defined(_TRACE_MIGRATE_H) || defined(TRACE_HEADER_MULTI_READ)
57b2a2d4aSMel Gorman #define _TRACE_MIGRATE_H
67b2a2d4aSMel Gorman 
7*8643e92bSSteven Rostedt (Red Hat) #include <linux/tracepoint.h>
8*8643e92bSSteven Rostedt (Red Hat) 
97b2a2d4aSMel Gorman #define MIGRATE_MODE						\
107b2a2d4aSMel Gorman 	{MIGRATE_ASYNC,		"MIGRATE_ASYNC"},		\
117b2a2d4aSMel Gorman 	{MIGRATE_SYNC_LIGHT,	"MIGRATE_SYNC_LIGHT"},		\
127b2a2d4aSMel Gorman 	{MIGRATE_SYNC,		"MIGRATE_SYNC"}
137b2a2d4aSMel Gorman 
147b2a2d4aSMel Gorman #define MIGRATE_REASON						\
157b2a2d4aSMel Gorman 	{MR_COMPACTION,		"compaction"},			\
167b2a2d4aSMel Gorman 	{MR_MEMORY_FAILURE,	"memory_failure"},		\
177b2a2d4aSMel Gorman 	{MR_MEMORY_HOTPLUG,	"memory_hotplug"},		\
187b2a2d4aSMel Gorman 	{MR_SYSCALL,		"syscall_or_cpuset"},		\
197b2a2d4aSMel Gorman 	{MR_MEMPOLICY_MBIND,	"mempolicy_mbind"},		\
207b2a2d4aSMel Gorman 	{MR_CMA,		"cma"}
217b2a2d4aSMel Gorman 
227b2a2d4aSMel Gorman TRACE_EVENT(mm_migrate_pages,
237b2a2d4aSMel Gorman 
247b2a2d4aSMel Gorman 	TP_PROTO(unsigned long succeeded, unsigned long failed,
257b2a2d4aSMel Gorman 		 enum migrate_mode mode, int reason),
267b2a2d4aSMel Gorman 
277b2a2d4aSMel Gorman 	TP_ARGS(succeeded, failed, mode, reason),
287b2a2d4aSMel Gorman 
297b2a2d4aSMel Gorman 	TP_STRUCT__entry(
307b2a2d4aSMel Gorman 		__field(	unsigned long,		succeeded)
317b2a2d4aSMel Gorman 		__field(	unsigned long,		failed)
327b2a2d4aSMel Gorman 		__field(	enum migrate_mode,	mode)
337b2a2d4aSMel Gorman 		__field(	int,			reason)
347b2a2d4aSMel Gorman 	),
357b2a2d4aSMel Gorman 
367b2a2d4aSMel Gorman 	TP_fast_assign(
377b2a2d4aSMel Gorman 		__entry->succeeded	= succeeded;
387b2a2d4aSMel Gorman 		__entry->failed		= failed;
397b2a2d4aSMel Gorman 		__entry->mode		= mode;
407b2a2d4aSMel Gorman 		__entry->reason		= reason;
417b2a2d4aSMel Gorman 	),
427b2a2d4aSMel Gorman 
437b2a2d4aSMel Gorman 	TP_printk("nr_succeeded=%lu nr_failed=%lu mode=%s reason=%s",
447b2a2d4aSMel Gorman 		__entry->succeeded,
457b2a2d4aSMel Gorman 		__entry->failed,
467b2a2d4aSMel Gorman 		__print_symbolic(__entry->mode, MIGRATE_MODE),
477b2a2d4aSMel Gorman 		__print_symbolic(__entry->reason, MIGRATE_REASON))
487b2a2d4aSMel Gorman );
497b2a2d4aSMel Gorman 
50af1839d7SMel Gorman TRACE_EVENT(mm_numa_migrate_ratelimit,
51af1839d7SMel Gorman 
52af1839d7SMel Gorman 	TP_PROTO(struct task_struct *p, int dst_nid, unsigned long nr_pages),
53af1839d7SMel Gorman 
54af1839d7SMel Gorman 	TP_ARGS(p, dst_nid, nr_pages),
55af1839d7SMel Gorman 
56af1839d7SMel Gorman 	TP_STRUCT__entry(
57af1839d7SMel Gorman 		__array(	char,		comm,	TASK_COMM_LEN)
58af1839d7SMel Gorman 		__field(	pid_t,		pid)
59af1839d7SMel Gorman 		__field(	int,		dst_nid)
60af1839d7SMel Gorman 		__field(	unsigned long,	nr_pages)
61af1839d7SMel Gorman 	),
62af1839d7SMel Gorman 
63af1839d7SMel Gorman 	TP_fast_assign(
64af1839d7SMel Gorman 		memcpy(__entry->comm, p->comm, TASK_COMM_LEN);
65af1839d7SMel Gorman 		__entry->pid		= p->pid;
66af1839d7SMel Gorman 		__entry->dst_nid	= dst_nid;
67af1839d7SMel Gorman 		__entry->nr_pages	= nr_pages;
68af1839d7SMel Gorman 	),
69af1839d7SMel Gorman 
70af1839d7SMel Gorman 	TP_printk("comm=%s pid=%d dst_nid=%d nr_pages=%lu",
71af1839d7SMel Gorman 		__entry->comm,
72af1839d7SMel Gorman 		__entry->pid,
73af1839d7SMel Gorman 		__entry->dst_nid,
74af1839d7SMel Gorman 		__entry->nr_pages)
75af1839d7SMel Gorman );
767b2a2d4aSMel Gorman #endif /* _TRACE_MIGRATE_H */
777b2a2d4aSMel Gorman 
787b2a2d4aSMel Gorman /* This part must be outside protection */
797b2a2d4aSMel Gorman #include <trace/define_trace.h>
80