Merge branch 'akpm' (patches from Andrew)
Merge patch-bomb from Andrew Morton: - inotify tweaks - some ocfs2 updates (many more are awaiting review) - various misc bits - kernel/watchdog.c updates - Some of mm. I have a huge number of MM patches this time and quite a lot of it is quite difficult and much will be held over to next time. * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (162 commits) selftests: vm: add tests for lock on fault mm: mlock: add mlock flags to enable VM_LOCKONFAULT usage mm: introduce VM_LOCKONFAULT mm: mlock: add new mlock system call mm: mlock: refactor mlock, munlock, and munlockall code kasan: always taint kernel on report mm, slub, kasan: enable user tracking by default with KASAN=y kasan: use IS_ALIGNED in memory_is_poisoned_8() kasan: Fix a type conversion error lib: test_kasan: add some testcases kasan: update reference to kasan prototype repo kasan: move KASAN_SANITIZE in arch/x86/boot/Makefile kasan: various fixes in documentation kasan: update log messages kasan: accurately determine the type of the bad access kasan: update reported bug types for kernel memory accesses kasan: update reported bug types for not user nor kernel memory accesses mm/kasan: prevent deadlock in kasan reporting mm/kasan: don't use kasan shadow pointer in generic functions mm/kasan: MODULE_VADDR is not available on all archs ...
This commit is contained in:
@@ -9,6 +9,62 @@
|
||||
#include <linux/tracepoint.h>
|
||||
#include <trace/events/gfpflags.h>
|
||||
|
||||
#define COMPACTION_STATUS \
|
||||
EM( COMPACT_DEFERRED, "deferred") \
|
||||
EM( COMPACT_SKIPPED, "skipped") \
|
||||
EM( COMPACT_CONTINUE, "continue") \
|
||||
EM( COMPACT_PARTIAL, "partial") \
|
||||
EM( COMPACT_COMPLETE, "complete") \
|
||||
EM( COMPACT_NO_SUITABLE_PAGE, "no_suitable_page") \
|
||||
EM( COMPACT_NOT_SUITABLE_ZONE, "not_suitable_zone") \
|
||||
EMe(COMPACT_CONTENDED, "contended")
|
||||
|
||||
#ifdef CONFIG_ZONE_DMA
|
||||
#define IFDEF_ZONE_DMA(X) X
|
||||
#else
|
||||
#define IFDEF_ZONE_DMA(X)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ZONE_DMA32
|
||||
#define IFDEF_ZONE_DMA32(X) X
|
||||
#else
|
||||
#define IFDEF_ZONE_DMA32(X)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_HIGHMEM
|
||||
#define IFDEF_ZONE_HIGHMEM(X) X
|
||||
#else
|
||||
#define IFDEF_ZONE_HIGHMEM(X)
|
||||
#endif
|
||||
|
||||
#define ZONE_TYPE \
|
||||
IFDEF_ZONE_DMA( EM (ZONE_DMA, "DMA")) \
|
||||
IFDEF_ZONE_DMA32( EM (ZONE_DMA32, "DMA32")) \
|
||||
EM (ZONE_NORMAL, "Normal") \
|
||||
IFDEF_ZONE_HIGHMEM( EM (ZONE_HIGHMEM,"HighMem")) \
|
||||
EMe(ZONE_MOVABLE,"Movable")
|
||||
|
||||
/*
|
||||
* First define the enums in the above macros to be exported to userspace
|
||||
* via TRACE_DEFINE_ENUM().
|
||||
*/
|
||||
#undef EM
|
||||
#undef EMe
|
||||
#define EM(a, b) TRACE_DEFINE_ENUM(a);
|
||||
#define EMe(a, b) TRACE_DEFINE_ENUM(a);
|
||||
|
||||
COMPACTION_STATUS
|
||||
ZONE_TYPE
|
||||
|
||||
/*
|
||||
* Now redefine the EM() and EMe() macros to map the enums to the strings
|
||||
* that will be printed in the output.
|
||||
*/
|
||||
#undef EM
|
||||
#undef EMe
|
||||
#define EM(a, b) {a, b},
|
||||
#define EMe(a, b) {a, b}
|
||||
|
||||
DECLARE_EVENT_CLASS(mm_compaction_isolate_template,
|
||||
|
||||
TP_PROTO(
|
||||
@@ -161,7 +217,7 @@ TRACE_EVENT(mm_compaction_end,
|
||||
__entry->free_pfn,
|
||||
__entry->zone_end,
|
||||
__entry->sync ? "sync" : "async",
|
||||
compaction_status_string[__entry->status])
|
||||
__print_symbolic(__entry->status, COMPACTION_STATUS))
|
||||
);
|
||||
|
||||
TRACE_EVENT(mm_compaction_try_to_compact_pages,
|
||||
@@ -201,23 +257,23 @@ DECLARE_EVENT_CLASS(mm_compaction_suitable_template,
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(int, nid)
|
||||
__field(char *, name)
|
||||
__field(enum zone_type, idx)
|
||||
__field(int, order)
|
||||
__field(int, ret)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->nid = zone_to_nid(zone);
|
||||
__entry->name = (char *)zone->name;
|
||||
__entry->idx = zone_idx(zone);
|
||||
__entry->order = order;
|
||||
__entry->ret = ret;
|
||||
),
|
||||
|
||||
TP_printk("node=%d zone=%-8s order=%d ret=%s",
|
||||
__entry->nid,
|
||||
__entry->name,
|
||||
__print_symbolic(__entry->idx, ZONE_TYPE),
|
||||
__entry->order,
|
||||
compaction_status_string[__entry->ret])
|
||||
__print_symbolic(__entry->ret, COMPACTION_STATUS))
|
||||
);
|
||||
|
||||
DEFINE_EVENT(mm_compaction_suitable_template, mm_compaction_finished,
|
||||
@@ -247,7 +303,7 @@ DECLARE_EVENT_CLASS(mm_compaction_defer_template,
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(int, nid)
|
||||
__field(char *, name)
|
||||
__field(enum zone_type, idx)
|
||||
__field(int, order)
|
||||
__field(unsigned int, considered)
|
||||
__field(unsigned int, defer_shift)
|
||||
@@ -256,7 +312,7 @@ DECLARE_EVENT_CLASS(mm_compaction_defer_template,
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->nid = zone_to_nid(zone);
|
||||
__entry->name = (char *)zone->name;
|
||||
__entry->idx = zone_idx(zone);
|
||||
__entry->order = order;
|
||||
__entry->considered = zone->compact_considered;
|
||||
__entry->defer_shift = zone->compact_defer_shift;
|
||||
@@ -265,7 +321,7 @@ DECLARE_EVENT_CLASS(mm_compaction_defer_template,
|
||||
|
||||
TP_printk("node=%d zone=%-8s order=%d order_failed=%d consider=%u limit=%lu",
|
||||
__entry->nid,
|
||||
__entry->name,
|
||||
__print_symbolic(__entry->idx, ZONE_TYPE),
|
||||
__entry->order,
|
||||
__entry->order_failed,
|
||||
__entry->considered,
|
||||
|
Reference in New Issue
Block a user