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

filemap.h (2879B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#undef TRACE_SYSTEM
      3#define TRACE_SYSTEM filemap
      4
      5#if !defined(_TRACE_FILEMAP_H) || defined(TRACE_HEADER_MULTI_READ)
      6#define _TRACE_FILEMAP_H
      7
      8#include <linux/types.h>
      9#include <linux/tracepoint.h>
     10#include <linux/mm.h>
     11#include <linux/memcontrol.h>
     12#include <linux/device.h>
     13#include <linux/kdev_t.h>
     14#include <linux/errseq.h>
     15
     16DECLARE_EVENT_CLASS(mm_filemap_op_page_cache,
     17
     18	TP_PROTO(struct folio *folio),
     19
     20	TP_ARGS(folio),
     21
     22	TP_STRUCT__entry(
     23		__field(unsigned long, pfn)
     24		__field(unsigned long, i_ino)
     25		__field(unsigned long, index)
     26		__field(dev_t, s_dev)
     27		__field(unsigned char, order)
     28	),
     29
     30	TP_fast_assign(
     31		__entry->pfn = folio_pfn(folio);
     32		__entry->i_ino = folio->mapping->host->i_ino;
     33		__entry->index = folio->index;
     34		if (folio->mapping->host->i_sb)
     35			__entry->s_dev = folio->mapping->host->i_sb->s_dev;
     36		else
     37			__entry->s_dev = folio->mapping->host->i_rdev;
     38		__entry->order = folio_order(folio);
     39	),
     40
     41	TP_printk("dev %d:%d ino %lx pfn=0x%lx ofs=%lu order=%u",
     42		MAJOR(__entry->s_dev), MINOR(__entry->s_dev),
     43		__entry->i_ino,
     44		__entry->pfn,
     45		__entry->index << PAGE_SHIFT,
     46		__entry->order)
     47);
     48
     49DEFINE_EVENT(mm_filemap_op_page_cache, mm_filemap_delete_from_page_cache,
     50	TP_PROTO(struct folio *folio),
     51	TP_ARGS(folio)
     52	);
     53
     54DEFINE_EVENT(mm_filemap_op_page_cache, mm_filemap_add_to_page_cache,
     55	TP_PROTO(struct folio *folio),
     56	TP_ARGS(folio)
     57	);
     58
     59TRACE_EVENT(filemap_set_wb_err,
     60		TP_PROTO(struct address_space *mapping, errseq_t eseq),
     61
     62		TP_ARGS(mapping, eseq),
     63
     64		TP_STRUCT__entry(
     65			__field(unsigned long, i_ino)
     66			__field(dev_t, s_dev)
     67			__field(errseq_t, errseq)
     68		),
     69
     70		TP_fast_assign(
     71			__entry->i_ino = mapping->host->i_ino;
     72			__entry->errseq = eseq;
     73			if (mapping->host->i_sb)
     74				__entry->s_dev = mapping->host->i_sb->s_dev;
     75			else
     76				__entry->s_dev = mapping->host->i_rdev;
     77		),
     78
     79		TP_printk("dev=%d:%d ino=0x%lx errseq=0x%x",
     80			MAJOR(__entry->s_dev), MINOR(__entry->s_dev),
     81			__entry->i_ino, __entry->errseq)
     82);
     83
     84TRACE_EVENT(file_check_and_advance_wb_err,
     85		TP_PROTO(struct file *file, errseq_t old),
     86
     87		TP_ARGS(file, old),
     88
     89		TP_STRUCT__entry(
     90			__field(struct file *, file)
     91			__field(unsigned long, i_ino)
     92			__field(dev_t, s_dev)
     93			__field(errseq_t, old)
     94			__field(errseq_t, new)
     95		),
     96
     97		TP_fast_assign(
     98			__entry->file = file;
     99			__entry->i_ino = file->f_mapping->host->i_ino;
    100			if (file->f_mapping->host->i_sb)
    101				__entry->s_dev =
    102					file->f_mapping->host->i_sb->s_dev;
    103			else
    104				__entry->s_dev =
    105					file->f_mapping->host->i_rdev;
    106			__entry->old = old;
    107			__entry->new = file->f_wb_err;
    108		),
    109
    110		TP_printk("file=%p dev=%d:%d ino=0x%lx old=0x%x new=0x%x",
    111			__entry->file, MAJOR(__entry->s_dev),
    112			MINOR(__entry->s_dev), __entry->i_ino, __entry->old,
    113			__entry->new)
    114);
    115#endif /* _TRACE_FILEMAP_H */
    116
    117/* This part must be outside protection */
    118#include <trace/define_trace.h>