linux/include/trace/events/page_ref.h
<<
>>
Prefs
   1#undef TRACE_SYSTEM
   2#define TRACE_SYSTEM page_ref
   3
   4#if !defined(_TRACE_PAGE_REF_H) || defined(TRACE_HEADER_MULTI_READ)
   5#define _TRACE_PAGE_REF_H
   6
   7#include <linux/types.h>
   8#include <linux/page_ref.h>
   9#include <linux/tracepoint.h>
  10#include <trace/events/mmflags.h>
  11
  12DECLARE_EVENT_CLASS(page_ref_mod_template,
  13
  14        TP_PROTO(struct page *page, int v),
  15
  16        TP_ARGS(page, v),
  17
  18        TP_STRUCT__entry(
  19                __field(unsigned long, pfn)
  20                __field(unsigned long, flags)
  21                __field(int, count)
  22                __field(int, mapcount)
  23                __field(void *, mapping)
  24                __field(int, mt)
  25                __field(int, val)
  26        ),
  27
  28        TP_fast_assign(
  29                __entry->pfn = page_to_pfn(page);
  30                __entry->flags = page->flags;
  31                __entry->count = page_ref_count(page);
  32                __entry->mapcount = page_mapcount(page);
  33                __entry->mapping = page->mapping;
  34                __entry->mt = get_pageblock_migratetype(page);
  35                __entry->val = v;
  36        ),
  37
  38        TP_printk("pfn=0x%lx flags=%s count=%d mapcount=%d mapping=%p mt=%d val=%d",
  39                __entry->pfn,
  40                show_page_flags(__entry->flags & ((1UL << NR_PAGEFLAGS) - 1)),
  41                __entry->count,
  42                __entry->mapcount, __entry->mapping, __entry->mt,
  43                __entry->val)
  44);
  45
  46DEFINE_EVENT(page_ref_mod_template, page_ref_set,
  47
  48        TP_PROTO(struct page *page, int v),
  49
  50        TP_ARGS(page, v)
  51);
  52
  53DEFINE_EVENT(page_ref_mod_template, page_ref_mod,
  54
  55        TP_PROTO(struct page *page, int v),
  56
  57        TP_ARGS(page, v)
  58);
  59
  60DECLARE_EVENT_CLASS(page_ref_mod_and_test_template,
  61
  62        TP_PROTO(struct page *page, int v, int ret),
  63
  64        TP_ARGS(page, v, ret),
  65
  66        TP_STRUCT__entry(
  67                __field(unsigned long, pfn)
  68                __field(unsigned long, flags)
  69                __field(int, count)
  70                __field(int, mapcount)
  71                __field(void *, mapping)
  72                __field(int, mt)
  73                __field(int, val)
  74                __field(int, ret)
  75        ),
  76
  77        TP_fast_assign(
  78                __entry->pfn = page_to_pfn(page);
  79                __entry->flags = page->flags;
  80                __entry->count = page_ref_count(page);
  81                __entry->mapcount = page_mapcount(page);
  82                __entry->mapping = page->mapping;
  83                __entry->mt = get_pageblock_migratetype(page);
  84                __entry->val = v;
  85                __entry->ret = ret;
  86        ),
  87
  88        TP_printk("pfn=0x%lx flags=%s count=%d mapcount=%d mapping=%p mt=%d val=%d ret=%d",
  89                __entry->pfn,
  90                show_page_flags(__entry->flags & ((1UL << NR_PAGEFLAGS) - 1)),
  91                __entry->count,
  92                __entry->mapcount, __entry->mapping, __entry->mt,
  93                __entry->val, __entry->ret)
  94);
  95
  96DEFINE_EVENT(page_ref_mod_and_test_template, page_ref_mod_and_test,
  97
  98        TP_PROTO(struct page *page, int v, int ret),
  99
 100        TP_ARGS(page, v, ret)
 101);
 102
 103DEFINE_EVENT(page_ref_mod_and_test_template, page_ref_mod_and_return,
 104
 105        TP_PROTO(struct page *page, int v, int ret),
 106
 107        TP_ARGS(page, v, ret)
 108);
 109
 110DEFINE_EVENT(page_ref_mod_and_test_template, page_ref_mod_unless,
 111
 112        TP_PROTO(struct page *page, int v, int ret),
 113
 114        TP_ARGS(page, v, ret)
 115);
 116
 117DEFINE_EVENT(page_ref_mod_and_test_template, page_ref_freeze,
 118
 119        TP_PROTO(struct page *page, int v, int ret),
 120
 121        TP_ARGS(page, v, ret)
 122);
 123
 124DEFINE_EVENT(page_ref_mod_template, page_ref_unfreeze,
 125
 126        TP_PROTO(struct page *page, int v),
 127
 128        TP_ARGS(page, v)
 129);
 130
 131#endif /* _TRACE_PAGE_COUNT_H */
 132
 133/* This part must be outside protection */
 134#include <trace/define_trace.h>
 135