X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Fcompaction.h;h=c6db6d0585d2ffb876da4f38741448c57a2e4bfe;hb=9f36eaed6f91d5897924b551b44d1edd8cee00e2;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..c6db6d05 100644 --- a/instrumentation/events/lttng-module/compaction.h +++ b/instrumentation/events/lttng-module/compaction.h @@ -1,36 +1,81 @@ +/* SPDX-License-Identifier: GPL-2.0 */ #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 #include -#include -#include +#include -DECLARE_EVENT_CLASS(mm_compaction_isolate_template, +#if LINUX_VERSION_CODE >= 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 LINUX_VERSION_CODE >= 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, -DEFINE_EVENT(mm_compaction_isolate_template, mm_compaction_isolate_migratepages, + compaction_isolate_migratepages, TP_PROTO(unsigned long nr_scanned, unsigned long nr_taken), @@ -38,37 +83,76 @@ 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_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) ) -TRACE_EVENT(mm_compaction_migratepages, +#endif /* #else #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0) */ - TP_PROTO(unsigned long nr_migrated, - unsigned long nr_failed), +#if LTTNG_KERNEL_RANGE(3,12,30, 3,13,0) || \ + LTTNG_KERNEL_RANGE(3,14,25, 3,15,0) || \ + (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) +LTTNG_TRACEPOINT_EVENT_CODE_MAP(mm_compaction_migratepages, - TP_ARGS(nr_migrated, nr_failed), + 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_locvar( + unsigned long nr_failed; ), - TP_fast_assign( - tp_assign(nr_migrated, nr_migrated) - tp_assign(nr_failed, 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_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_MAP(mm_compaction_migratepages, + + compaction_migratepages, + TP_PROTO(unsigned long nr_migrated, + unsigned long nr_failed), + + TP_ARGS(nr_migrated, 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 /* _TRACE_COMPACTION_H */ +#endif /* LTTNG_TRACE_COMPACTION_H */ /* This part must be outside protection */ -#include "../../../probes/define_trace.h" +#include