X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Fcompaction.h;h=773a6ad5fcce1d7eba69866f9465b29c2dc0e747;hb=931b3b2547214948787ae4d6a031f0a155b2bbbb;hp=1b237fa45ab069141e2e8b6db745daa6edb9f9bb;hpb=b87700e318c27267890cbd6fb5e50b687279131b;p=lttng-modules.git diff --git a/instrumentation/events/lttng-module/compaction.h b/instrumentation/events/lttng-module/compaction.h index 1b237fa4..773a6ad5 100644 --- a/instrumentation/events/lttng-module/compaction.h +++ b/instrumentation/events/lttng-module/compaction.h @@ -1,14 +1,15 @@ #undef TRACE_SYSTEM #define TRACE_SYSTEM compaction -#if !defined(_TRACE_COMPACTION_H) || defined(TRACE_HEADER_MULTI_READ) -#define _TRACE_COMPACTION_H +#if !defined(LTTNG_TRACE_COMPACTION_H) || defined(TRACE_HEADER_MULTI_READ) +#define LTTNG_TRACE_COMPACTION_H +#include "../../../probes/lttng-tracepoint-event.h" #include -#include +#include #include -DECLARE_EVENT_CLASS(mm_compaction_isolate_template, +LTTNG_TRACEPOINT_EVENT_CLASS(mm_compaction_isolate_template, TP_PROTO(unsigned long nr_scanned, unsigned long nr_taken), @@ -30,7 +31,7 @@ DECLARE_EVENT_CLASS(mm_compaction_isolate_template, __entry->nr_taken) ) -DEFINE_EVENT(mm_compaction_isolate_template, mm_compaction_isolate_migratepages, +LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_compaction_isolate_template, mm_compaction_isolate_migratepages, TP_PROTO(unsigned long nr_scanned, unsigned long nr_taken), @@ -38,14 +39,57 @@ DEFINE_EVENT(mm_compaction_isolate_template, mm_compaction_isolate_migratepages, TP_ARGS(nr_scanned, nr_taken) ) -DEFINE_EVENT(mm_compaction_isolate_template, mm_compaction_isolate_freepages, +LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_compaction_isolate_template, mm_compaction_isolate_freepages, TP_PROTO(unsigned long nr_scanned, unsigned long nr_taken), TP_ARGS(nr_scanned, nr_taken) ) -TRACE_EVENT(mm_compaction_migratepages, +#if LTTNG_KERNEL_RANGE(3,14,25, 3,15,0) || \ + (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) +LTTNG_TRACEPOINT_EVENT(mm_compaction_migratepages, + + TP_PROTO(unsigned long nr_all, + int migrate_rc, + struct list_head *migratepages), + + TP_ARGS(nr_all, migrate_rc, migratepages), + + TP_STRUCT__entry( + __field(unsigned long, nr_migrated) + __field(unsigned long, nr_failed) + ), + + TP_fast_assign( + tp_assign(nr_migrated, + nr_all - + (migrate_rc >= 0 ? migrate_rc : + ({ + unsigned long nr_failed = 0; + struct list_head *page_lru; + + list_for_each(page_lru, migratepages) + nr_failed++; + nr_failed; + }))) + tp_assign(nr_failed, + ({ + unsigned long nr_failed = 0; + struct list_head *page_lru; + + list_for_each(page_lru, migratepages) + nr_failed++; + nr_failed; + })) + ), + + TP_printk("nr_migrated=%lu nr_failed=%lu", + __entry->nr_migrated, + __entry->nr_failed) +) +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */ +LTTNG_TRACEPOINT_EVENT(mm_compaction_migratepages, TP_PROTO(unsigned long nr_migrated, unsigned long nr_failed), @@ -66,9 +110,9 @@ TRACE_EVENT(mm_compaction_migratepages, __entry->nr_migrated, __entry->nr_failed) ) +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */ - -#endif /* _TRACE_COMPACTION_H */ +#endif /* LTTNG_TRACE_COMPACTION_H */ /* This part must be outside protection */ #include "../../../probes/define_trace.h"