|
@@ -85,46 +85,67 @@ TRACE_EVENT(mm_compaction_migratepages,
|
|
);
|
|
);
|
|
|
|
|
|
TRACE_EVENT(mm_compaction_begin,
|
|
TRACE_EVENT(mm_compaction_begin,
|
|
- TP_PROTO(unsigned long zone_start, unsigned long migrate_start,
|
|
|
|
- unsigned long free_start, unsigned long zone_end),
|
|
|
|
|
|
+ TP_PROTO(unsigned long zone_start, unsigned long migrate_pfn,
|
|
|
|
+ unsigned long free_pfn, unsigned long zone_end, bool sync),
|
|
|
|
|
|
- TP_ARGS(zone_start, migrate_start, free_start, zone_end),
|
|
|
|
|
|
+ TP_ARGS(zone_start, migrate_pfn, free_pfn, zone_end, sync),
|
|
|
|
|
|
TP_STRUCT__entry(
|
|
TP_STRUCT__entry(
|
|
__field(unsigned long, zone_start)
|
|
__field(unsigned long, zone_start)
|
|
- __field(unsigned long, migrate_start)
|
|
|
|
- __field(unsigned long, free_start)
|
|
|
|
|
|
+ __field(unsigned long, migrate_pfn)
|
|
|
|
+ __field(unsigned long, free_pfn)
|
|
__field(unsigned long, zone_end)
|
|
__field(unsigned long, zone_end)
|
|
|
|
+ __field(bool, sync)
|
|
),
|
|
),
|
|
|
|
|
|
TP_fast_assign(
|
|
TP_fast_assign(
|
|
__entry->zone_start = zone_start;
|
|
__entry->zone_start = zone_start;
|
|
- __entry->migrate_start = migrate_start;
|
|
|
|
- __entry->free_start = free_start;
|
|
|
|
|
|
+ __entry->migrate_pfn = migrate_pfn;
|
|
|
|
+ __entry->free_pfn = free_pfn;
|
|
__entry->zone_end = zone_end;
|
|
__entry->zone_end = zone_end;
|
|
|
|
+ __entry->sync = sync;
|
|
),
|
|
),
|
|
|
|
|
|
- TP_printk("zone_start=0x%lx migrate_start=0x%lx free_start=0x%lx zone_end=0x%lx",
|
|
|
|
|
|
+ TP_printk("zone_start=0x%lx migrate_pfn=0x%lx free_pfn=0x%lx zone_end=0x%lx, mode=%s",
|
|
__entry->zone_start,
|
|
__entry->zone_start,
|
|
- __entry->migrate_start,
|
|
|
|
- __entry->free_start,
|
|
|
|
- __entry->zone_end)
|
|
|
|
|
|
+ __entry->migrate_pfn,
|
|
|
|
+ __entry->free_pfn,
|
|
|
|
+ __entry->zone_end,
|
|
|
|
+ __entry->sync ? "sync" : "async")
|
|
);
|
|
);
|
|
|
|
|
|
TRACE_EVENT(mm_compaction_end,
|
|
TRACE_EVENT(mm_compaction_end,
|
|
- TP_PROTO(int status),
|
|
|
|
|
|
+ TP_PROTO(unsigned long zone_start, unsigned long migrate_pfn,
|
|
|
|
+ unsigned long free_pfn, unsigned long zone_end, bool sync,
|
|
|
|
+ int status),
|
|
|
|
|
|
- TP_ARGS(status),
|
|
|
|
|
|
+ TP_ARGS(zone_start, migrate_pfn, free_pfn, zone_end, sync, status),
|
|
|
|
|
|
TP_STRUCT__entry(
|
|
TP_STRUCT__entry(
|
|
|
|
+ __field(unsigned long, zone_start)
|
|
|
|
+ __field(unsigned long, migrate_pfn)
|
|
|
|
+ __field(unsigned long, free_pfn)
|
|
|
|
+ __field(unsigned long, zone_end)
|
|
|
|
+ __field(bool, sync)
|
|
__field(int, status)
|
|
__field(int, status)
|
|
),
|
|
),
|
|
|
|
|
|
TP_fast_assign(
|
|
TP_fast_assign(
|
|
|
|
+ __entry->zone_start = zone_start;
|
|
|
|
+ __entry->migrate_pfn = migrate_pfn;
|
|
|
|
+ __entry->free_pfn = free_pfn;
|
|
|
|
+ __entry->zone_end = zone_end;
|
|
|
|
+ __entry->sync = sync;
|
|
__entry->status = status;
|
|
__entry->status = status;
|
|
),
|
|
),
|
|
|
|
|
|
- TP_printk("status=%d", __entry->status)
|
|
|
|
|
|
+ TP_printk("zone_start=0x%lx migrate_pfn=0x%lx free_pfn=0x%lx zone_end=0x%lx, mode=%s status=%s",
|
|
|
|
+ __entry->zone_start,
|
|
|
|
+ __entry->migrate_pfn,
|
|
|
|
+ __entry->free_pfn,
|
|
|
|
+ __entry->zone_end,
|
|
|
|
+ __entry->sync ? "sync" : "async",
|
|
|
|
+ compaction_status_string[__entry->status])
|
|
);
|
|
);
|
|
|
|
|
|
#endif /* _TRACE_COMPACTION_H */
|
|
#endif /* _TRACE_COMPACTION_H */
|