Fix: kmem instrumentation: mm_page_alloc extfrag change_ownership field
[lttng-modules.git] / instrumentation / events / lttng-module / kmem.h
index 203a19cc4d38358621d724fac86f116234f6f9ca..cde2a20fdf945bbf83a70977b29b44c16096b900 100644 (file)
@@ -286,7 +286,49 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_PRINT(mm_page, mm_page_pcpu_drain,
                __entry->order, __entry->migratetype)
 )
 
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,30))
+
+LTTNG_TRACEPOINT_EVENT(mm_page_alloc_extfrag,
+
+       TP_PROTO(struct page *page,
+               int alloc_order, int fallback_order,
+               int alloc_migratetype, int fallback_migratetype, int new_migratetype),
+
+       TP_ARGS(page,
+               alloc_order, fallback_order,
+               alloc_migratetype, fallback_migratetype, new_migratetype),
+
+       TP_STRUCT__entry(
+               __field_hex(    struct page *,  page                    )
+               __field(        int,            alloc_order             )
+               __field(        int,            fallback_order          )
+               __field(        int,            alloc_migratetype       )
+               __field(        int,            fallback_migratetype    )
+               __field(        int,            change_ownership        )
+       ),
+
+       TP_fast_assign(
+               tp_assign(page, page)
+               tp_assign(alloc_order, alloc_order)
+               tp_assign(fallback_order, fallback_order)
+               tp_assign(alloc_migratetype, alloc_migratetype)
+               tp_assign(fallback_migratetype, fallback_migratetype)
+               tp_assign(change_ownership, (new_migratetype == alloc_migratetype))
+       ),
+
+       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,
+               __entry->change_ownership)
+)
+
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
 
 LTTNG_TRACEPOINT_EVENT(mm_page_alloc_extfrag,
 
This page took 0.023829 seconds and 4 git commands to generate.