|
@@ -7,11 +7,31 @@
|
|
|
#include <linux/mm_types.h>
|
|
|
#include <linux/tracepoint.h>
|
|
|
|
|
|
-#define TLB_FLUSH_REASON \
|
|
|
- { TLB_FLUSH_ON_TASK_SWITCH, "flush on task switch" }, \
|
|
|
- { TLB_REMOTE_SHOOTDOWN, "remote shootdown" }, \
|
|
|
- { TLB_LOCAL_SHOOTDOWN, "local shootdown" }, \
|
|
|
- { TLB_LOCAL_MM_SHOOTDOWN, "local mm shootdown" }
|
|
|
+#define TLB_FLUSH_REASON \
|
|
|
+ EM( TLB_FLUSH_ON_TASK_SWITCH, "flush on task switch" ) \
|
|
|
+ EM( TLB_REMOTE_SHOOTDOWN, "remote shootdown" ) \
|
|
|
+ EM( TLB_LOCAL_SHOOTDOWN, "local shootdown" ) \
|
|
|
+ EMe( TLB_LOCAL_MM_SHOOTDOWN, "local mm shootdown" )
|
|
|
+
|
|
|
+/*
|
|
|
+ * First define the enums in TLB_FLUSH_REASON to be exported to userspace
|
|
|
+ * via TRACE_DEFINE_ENUM().
|
|
|
+ */
|
|
|
+#undef EM
|
|
|
+#undef EMe
|
|
|
+#define EM(a,b) TRACE_DEFINE_ENUM(a);
|
|
|
+#define EMe(a,b) TRACE_DEFINE_ENUM(a);
|
|
|
+
|
|
|
+TLB_FLUSH_REASON
|
|
|
+
|
|
|
+/*
|
|
|
+ * Now redefine the EM() and EMe() macros to map the enums to the strings
|
|
|
+ * that will be printed in the output.
|
|
|
+ */
|
|
|
+#undef EM
|
|
|
+#undef EMe
|
|
|
+#define EM(a,b) { a, b },
|
|
|
+#define EMe(a,b) { a, b }
|
|
|
|
|
|
TRACE_EVENT_CONDITION(tlb_flush,
|
|
|
|