1 /* SPDX-License-Identifier: GPL-2.0 */
3 #define TRACE_SYSTEM mce
5 #if !defined(_TRACE_MCE_H) || defined(TRACE_HEADER_MULTI_READ)
8 #include <linux/ktime.h>
9 #include <linux/tracepoint.h>
12 TRACE_EVENT(mce_record
,
14 TP_PROTO(struct mce
*m
),
19 __field( u64
, mcgcap
)
20 __field( u64
, mcgstatus
)
21 __field( u64
, status
)
28 __field( u64
, walltime
)
31 __field( u32
, apicid
)
32 __field( u32
, socketid
)
35 __field( u8
, cpuvendor
)
39 __entry
->mcgcap
= m
->mcgcap
;
40 __entry
->mcgstatus
= m
->mcgstatus
;
41 __entry
->status
= m
->status
;
42 __entry
->addr
= m
->addr
;
43 __entry
->misc
= m
->misc
;
44 __entry
->synd
= m
->synd
;
45 __entry
->ipid
= m
->ipid
;
47 __entry
->tsc
= m
->tsc
;
48 __entry
->walltime
= m
->time
;
49 __entry
->cpu
= m
->extcpu
;
50 __entry
->cpuid
= m
->cpuid
;
51 __entry
->apicid
= m
->apicid
;
52 __entry
->socketid
= m
->socketid
;
54 __entry
->bank
= m
->bank
;
55 __entry
->cpuvendor
= m
->cpuvendor
;
58 TP_printk("CPU: %d, MCGc/s: %llx/%llx, MC%d: %016Lx, IPID: %016Lx, ADDR/MISC/SYND: %016Lx/%016Lx/%016Lx, RIP: %02x:<%016Lx>, TSC: %llx, PROCESSOR: %u:%x, TIME: %llu, SOCKET: %u, APIC: %x",
60 __entry
->mcgcap
, __entry
->mcgstatus
,
61 __entry
->bank
, __entry
->status
,
63 __entry
->addr
, __entry
->misc
, __entry
->synd
,
64 __entry
->cs
, __entry
->ip
,
66 __entry
->cpuvendor
, __entry
->cpuid
,
72 #endif /* _TRACE_MCE_H */
74 /* This part must be outside protection */
75 #include <trace/define_trace.h>