brintos

brintos / linux-shallow public Read only

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