X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Fcompaction.h;h=52d37c0447bf7527a148de7cab7558cdb5097cac;hb=2d0428212cbfa3f8428feee160b095f48c2ac974;hp=ee23aa991b5205feb1b9895e5a0abe41013a7cdd;hpb=3bc29f0a41b3c803245b845db2e1909042e72e9c;p=lttng-modules.git diff --git a/instrumentation/events/lttng-module/compaction.h b/instrumentation/events/lttng-module/compaction.h index ee23aa99..52d37c04 100644 --- a/instrumentation/events/lttng-module/compaction.h +++ b/instrumentation/events/lttng-module/compaction.h @@ -1,37 +1,81 @@ +/* SPDX-License-Identifier: GPL-2.0 */ #undef TRACE_SYSTEM #define TRACE_SYSTEM compaction #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 +#include -LTTNG_TRACEPOINT_EVENT_CLASS(mm_compaction_isolate_template, +#if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,0,0) + +LTTNG_TRACEPOINT_EVENT_CLASS(compaction_isolate_template, + + TP_PROTO(unsigned long start_pfn, + unsigned long end_pfn, + unsigned long nr_scanned, + unsigned long nr_taken), + + TP_ARGS(start_pfn, end_pfn, nr_scanned, nr_taken), + + TP_FIELDS( + ctf_integer(unsigned long, start_pfn, start_pfn) + ctf_integer(unsigned long, end_pfn, end_pfn) + ctf_integer(unsigned long, nr_scanned, nr_scanned) + ctf_integer(unsigned long, nr_taken, nr_taken) + ) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(compaction_isolate_template, + + mm_compaction_isolate_migratepages, + + compaction_isolate_migratepages, + + TP_PROTO(unsigned long start_pfn, + unsigned long end_pfn, + unsigned long nr_scanned, + unsigned long nr_taken), + + TP_ARGS(start_pfn, end_pfn, nr_scanned, nr_taken) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(compaction_isolate_template, + + mm_compaction_isolate_freepages, + + compaction_isolate_freepages, + + TP_PROTO(unsigned long start_pfn, + unsigned long end_pfn, + unsigned long nr_scanned, + unsigned long nr_taken), + + TP_ARGS(start_pfn, end_pfn, nr_scanned, nr_taken) +) + +#else /* #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,0,0) */ + +LTTNG_TRACEPOINT_EVENT_CLASS(compaction_isolate_template, TP_PROTO(unsigned long nr_scanned, unsigned long nr_taken), TP_ARGS(nr_scanned, nr_taken), - TP_STRUCT__entry( - __field(unsigned long, nr_scanned) - __field(unsigned long, nr_taken) - ), + TP_FIELDS( + ctf_integer(unsigned long, nr_scanned, nr_scanned) + ctf_integer(unsigned long, nr_taken, nr_taken) + ) +) - TP_fast_assign( - tp_assign(nr_scanned, nr_scanned) - tp_assign(nr_taken, nr_taken) - ), +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(compaction_isolate_template, - TP_printk("nr_scanned=%lu nr_taken=%lu", - __entry->nr_scanned, - __entry->nr_taken) -) + mm_compaction_isolate_migratepages, -LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_compaction_isolate_template, mm_compaction_isolate_migratepages, + compaction_isolate_migratepages, TP_PROTO(unsigned long nr_scanned, unsigned long nr_taken), @@ -39,15 +83,26 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_compaction_isolate_template, mm_compaction_is TP_ARGS(nr_scanned, nr_taken) ) -LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_compaction_isolate_template, mm_compaction_isolate_freepages, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(compaction_isolate_template, + + mm_compaction_isolate_freepages, + + compaction_isolate_freepages, + TP_PROTO(unsigned long nr_scanned, unsigned long nr_taken), TP_ARGS(nr_scanned, nr_taken) ) -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) -LTTNG_TRACEPOINT_EVENT(mm_compaction_migratepages, +#endif /* #else #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,0,0) */ + +#if LTTNG_KERNEL_RANGE(3,12,30, 3,13,0) || \ + LTTNG_KERNEL_RANGE(3,14,25, 3,15,0) || \ + (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,16,0)) +LTTNG_TRACEPOINT_EVENT_CODE_MAP(mm_compaction_migratepages, + + compaction_migratepages, TP_PROTO(unsigned long nr_all, int migrate_rc, @@ -55,63 +110,49 @@ LTTNG_TRACEPOINT_EVENT(mm_compaction_migratepages, TP_ARGS(nr_all, migrate_rc, migratepages), - TP_STRUCT__entry( - __field(unsigned long, nr_migrated) - __field(unsigned long, nr_failed) + TP_locvar( + unsigned long nr_failed; + ), + + TP_code_pre( + tp_locvar->nr_failed = 0; + + { + struct list_head *page_lru; + + if (migrate_rc >= 0) + tp_locvar->nr_failed = migrate_rc; + else + list_for_each(page_lru, migratepages) + tp_locvar->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_FIELDS( + ctf_integer(unsigned long, nr_migrated, nr_all - tp_locvar->nr_failed) + ctf_integer(unsigned long, nr_failed, tp_locvar->nr_failed) ), - TP_printk("nr_migrated=%lu nr_failed=%lu", - __entry->nr_migrated, - __entry->nr_failed) + TP_code_post() ) -#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */ -LTTNG_TRACEPOINT_EVENT(mm_compaction_migratepages, +#else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,16,0)) */ +LTTNG_TRACEPOINT_EVENT_MAP(mm_compaction_migratepages, + + compaction_migratepages, TP_PROTO(unsigned long nr_migrated, unsigned long nr_failed), TP_ARGS(nr_migrated, nr_failed), - TP_STRUCT__entry( - __field(unsigned long, nr_migrated) - __field(unsigned long, nr_failed) - ), - - TP_fast_assign( - tp_assign(nr_migrated, nr_migrated) - tp_assign(nr_failed, nr_failed) - ), - - TP_printk("nr_migrated=%lu nr_failed=%lu", - __entry->nr_migrated, - __entry->nr_failed) + TP_FIELDS( + ctf_integer(unsigned long, nr_migrated, nr_migrated) + ctf_integer(unsigned long, nr_failed, nr_failed) + ) ) -#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */ +#endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,16,0)) */ #endif /* LTTNG_TRACE_COMPACTION_H */ /* This part must be outside protection */ -#include "../../../probes/define_trace.h" +#include