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

fpu.h (2059B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#undef TRACE_SYSTEM
      3#define TRACE_SYSTEM x86_fpu
      4
      5#if !defined(_TRACE_FPU_H) || defined(TRACE_HEADER_MULTI_READ)
      6#define _TRACE_FPU_H
      7
      8#include <linux/tracepoint.h>
      9
     10DECLARE_EVENT_CLASS(x86_fpu,
     11	TP_PROTO(struct fpu *fpu),
     12	TP_ARGS(fpu),
     13
     14	TP_STRUCT__entry(
     15		__field(struct fpu *, fpu)
     16		__field(bool, load_fpu)
     17		__field(u64, xfeatures)
     18		__field(u64, xcomp_bv)
     19		),
     20
     21	TP_fast_assign(
     22		__entry->fpu		= fpu;
     23		__entry->load_fpu	= test_thread_flag(TIF_NEED_FPU_LOAD);
     24		if (boot_cpu_has(X86_FEATURE_OSXSAVE)) {
     25			__entry->xfeatures = fpu->fpstate->regs.xsave.header.xfeatures;
     26			__entry->xcomp_bv  = fpu->fpstate->regs.xsave.header.xcomp_bv;
     27		}
     28	),
     29	TP_printk("x86/fpu: %p load: %d xfeatures: %llx xcomp_bv: %llx",
     30			__entry->fpu,
     31			__entry->load_fpu,
     32			__entry->xfeatures,
     33			__entry->xcomp_bv
     34	)
     35);
     36
     37DEFINE_EVENT(x86_fpu, x86_fpu_before_save,
     38	TP_PROTO(struct fpu *fpu),
     39	TP_ARGS(fpu)
     40);
     41
     42DEFINE_EVENT(x86_fpu, x86_fpu_after_save,
     43	TP_PROTO(struct fpu *fpu),
     44	TP_ARGS(fpu)
     45);
     46
     47DEFINE_EVENT(x86_fpu, x86_fpu_before_restore,
     48	TP_PROTO(struct fpu *fpu),
     49	TP_ARGS(fpu)
     50);
     51
     52DEFINE_EVENT(x86_fpu, x86_fpu_after_restore,
     53	TP_PROTO(struct fpu *fpu),
     54	TP_ARGS(fpu)
     55);
     56
     57DEFINE_EVENT(x86_fpu, x86_fpu_regs_activated,
     58	TP_PROTO(struct fpu *fpu),
     59	TP_ARGS(fpu)
     60);
     61
     62DEFINE_EVENT(x86_fpu, x86_fpu_regs_deactivated,
     63	TP_PROTO(struct fpu *fpu),
     64	TP_ARGS(fpu)
     65);
     66
     67DEFINE_EVENT(x86_fpu, x86_fpu_init_state,
     68	TP_PROTO(struct fpu *fpu),
     69	TP_ARGS(fpu)
     70);
     71
     72DEFINE_EVENT(x86_fpu, x86_fpu_dropped,
     73	TP_PROTO(struct fpu *fpu),
     74	TP_ARGS(fpu)
     75);
     76
     77DEFINE_EVENT(x86_fpu, x86_fpu_copy_src,
     78	TP_PROTO(struct fpu *fpu),
     79	TP_ARGS(fpu)
     80);
     81
     82DEFINE_EVENT(x86_fpu, x86_fpu_copy_dst,
     83	TP_PROTO(struct fpu *fpu),
     84	TP_ARGS(fpu)
     85);
     86
     87DEFINE_EVENT(x86_fpu, x86_fpu_xstate_check_failed,
     88	TP_PROTO(struct fpu *fpu),
     89	TP_ARGS(fpu)
     90);
     91
     92#undef TRACE_INCLUDE_PATH
     93#define TRACE_INCLUDE_PATH asm/trace/
     94#undef TRACE_INCLUDE_FILE
     95#define TRACE_INCLUDE_FILE fpu
     96#endif /* _TRACE_FPU_H */
     97
     98/* This part must be outside protection */
     99#include <trace/define_trace.h>