]> Git Repo - J-linux.git/blob - include/trace/events/mce.h
Merge branch 'iommu/iommufd/paging-domain-alloc' into iommu/next
[J-linux.git] / include / trace / events / mce.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM mce
4
5 #if !defined(_TRACE_MCE_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define _TRACE_MCE_H
7
8 #include <linux/ktime.h>
9 #include <linux/tracepoint.h>
10 #include <asm/mce.h>
11
12 /*
13  * MCE Event Record.
14  *
15  * Only very relevant and transient information which cannot be
16  * gathered from a system by any other means or which can only be
17  * acquired arduously should be added to this record.
18  */
19
20 TRACE_EVENT(mce_record,
21
22         TP_PROTO(struct mce *m),
23
24         TP_ARGS(m),
25
26         TP_STRUCT__entry(
27                 __field(        u64,            mcgcap          )
28                 __field(        u64,            mcgstatus       )
29                 __field(        u64,            status          )
30                 __field(        u64,            addr            )
31                 __field(        u64,            misc            )
32                 __field(        u64,            synd            )
33                 __field(        u64,            ipid            )
34                 __field(        u64,            ip              )
35                 __field(        u64,            tsc             )
36                 __field(        u64,            ppin            )
37                 __field(        u64,            walltime        )
38                 __field(        u32,            cpu             )
39                 __field(        u32,            cpuid           )
40                 __field(        u32,            apicid          )
41                 __field(        u32,            socketid        )
42                 __field(        u8,             cs              )
43                 __field(        u8,             bank            )
44                 __field(        u8,             cpuvendor       )
45                 __field(        u32,            microcode       )
46         ),
47
48         TP_fast_assign(
49                 __entry->mcgcap         = m->mcgcap;
50                 __entry->mcgstatus      = m->mcgstatus;
51                 __entry->status         = m->status;
52                 __entry->addr           = m->addr;
53                 __entry->misc           = m->misc;
54                 __entry->synd           = m->synd;
55                 __entry->ipid           = m->ipid;
56                 __entry->ip             = m->ip;
57                 __entry->tsc            = m->tsc;
58                 __entry->ppin           = m->ppin;
59                 __entry->walltime       = m->time;
60                 __entry->cpu            = m->extcpu;
61                 __entry->cpuid          = m->cpuid;
62                 __entry->apicid         = m->apicid;
63                 __entry->socketid       = m->socketid;
64                 __entry->cs             = m->cs;
65                 __entry->bank           = m->bank;
66                 __entry->cpuvendor      = m->cpuvendor;
67                 __entry->microcode      = m->microcode;
68         ),
69
70         TP_printk("CPU: %d, MCGc/s: %llx/%llx, MC%d: %016Lx, IPID: %016Lx, ADDR: %016Lx, MISC: %016Lx, SYND: %016Lx, RIP: %02x:<%016Lx>, TSC: %llx, PPIN: %llx, vendor: %u, CPUID: %x, time: %llu, socket: %u, APIC: %x, microcode: %x",
71                 __entry->cpu,
72                 __entry->mcgcap, __entry->mcgstatus,
73                 __entry->bank, __entry->status,
74                 __entry->ipid,
75                 __entry->addr,
76                 __entry->misc,
77                 __entry->synd,
78                 __entry->cs, __entry->ip,
79                 __entry->tsc,
80                 __entry->ppin,
81                 __entry->cpuvendor,
82                 __entry->cpuid,
83                 __entry->walltime,
84                 __entry->socketid,
85                 __entry->apicid,
86                 __entry->microcode)
87 );
88
89 #endif /* _TRACE_MCE_H */
90
91 /* This part must be outside protection */
92 #include <trace/define_trace.h>
This page took 0.033141 seconds and 4 git commands to generate.