cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

page_ref.h (3034B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#undef TRACE_SYSTEM
      3#define TRACE_SYSTEM page_ref
      4
      5#if !defined(_TRACE_PAGE_REF_H) || defined(TRACE_HEADER_MULTI_READ)
      6#define _TRACE_PAGE_REF_H
      7
      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 = page_mapcount(page);
     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 = page_mapcount(page);
     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>