Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #undef TRACE_SYSTEM
0003 #define TRACE_SYSTEM mce
0004 
0005 #if !defined(_TRACE_MCE_H) || defined(TRACE_HEADER_MULTI_READ)
0006 #define _TRACE_MCE_H
0007 
0008 #include <linux/ktime.h>
0009 #include <linux/tracepoint.h>
0010 #include <asm/mce.h>
0011 
0012 TRACE_EVENT(mce_record,
0013 
0014     TP_PROTO(struct mce *m),
0015 
0016     TP_ARGS(m),
0017 
0018     TP_STRUCT__entry(
0019         __field(    u64,        mcgcap      )
0020         __field(    u64,        mcgstatus   )
0021         __field(    u64,        status      )
0022         __field(    u64,        addr        )
0023         __field(    u64,        misc        )
0024         __field(    u64,        synd        )
0025         __field(    u64,        ipid        )
0026         __field(    u64,        ip      )
0027         __field(    u64,        tsc     )
0028         __field(    u64,        walltime    )
0029         __field(    u32,        cpu     )
0030         __field(    u32,        cpuid       )
0031         __field(    u32,        apicid      )
0032         __field(    u32,        socketid    )
0033         __field(    u8,     cs      )
0034         __field(    u8,     bank        )
0035         __field(    u8,     cpuvendor   )
0036     ),
0037 
0038     TP_fast_assign(
0039         __entry->mcgcap     = m->mcgcap;
0040         __entry->mcgstatus  = m->mcgstatus;
0041         __entry->status     = m->status;
0042         __entry->addr       = m->addr;
0043         __entry->misc       = m->misc;
0044         __entry->synd       = m->synd;
0045         __entry->ipid       = m->ipid;
0046         __entry->ip     = m->ip;
0047         __entry->tsc        = m->tsc;
0048         __entry->walltime   = m->time;
0049         __entry->cpu        = m->extcpu;
0050         __entry->cpuid      = m->cpuid;
0051         __entry->apicid     = m->apicid;
0052         __entry->socketid   = m->socketid;
0053         __entry->cs     = m->cs;
0054         __entry->bank       = m->bank;
0055         __entry->cpuvendor  = m->cpuvendor;
0056     ),
0057 
0058     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",
0059         __entry->cpu,
0060         __entry->mcgcap, __entry->mcgstatus,
0061         __entry->bank, __entry->status,
0062         __entry->ipid,
0063         __entry->addr, __entry->misc, __entry->synd,
0064         __entry->cs, __entry->ip,
0065         __entry->tsc,
0066         __entry->cpuvendor, __entry->cpuid,
0067         __entry->walltime,
0068         __entry->socketid,
0069         __entry->apicid)
0070 );
0071 
0072 #endif /* _TRACE_MCE_H */
0073 
0074 /* This part must be outside protection */
0075 #include <trace/define_trace.h>