1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 28968f9d3SHidetoshi Seto #undef TRACE_SYSTEM 38968f9d3SHidetoshi Seto #define TRACE_SYSTEM mce 48968f9d3SHidetoshi Seto 58968f9d3SHidetoshi Seto #if !defined(_TRACE_MCE_H) || defined(TRACE_HEADER_MULTI_READ) 68968f9d3SHidetoshi Seto #define _TRACE_MCE_H 78968f9d3SHidetoshi Seto 88968f9d3SHidetoshi Seto #include <linux/ktime.h> 98968f9d3SHidetoshi Seto #include <linux/tracepoint.h> 108968f9d3SHidetoshi Seto #include <asm/mce.h> 118968f9d3SHidetoshi Seto 1298430645SAvadhut Naik /* 1398430645SAvadhut Naik * MCE Event Record. 1498430645SAvadhut Naik * 1598430645SAvadhut Naik * Only very relevant and transient information which cannot be 1698430645SAvadhut Naik * gathered from a system by any other means or which can only be 1798430645SAvadhut Naik * acquired arduously should be added to this record. 1898430645SAvadhut Naik */ 1998430645SAvadhut Naik 208968f9d3SHidetoshi Seto TRACE_EVENT(mce_record, 218968f9d3SHidetoshi Seto 228968f9d3SHidetoshi Seto TP_PROTO(struct mce *m), 238968f9d3SHidetoshi Seto 248968f9d3SHidetoshi Seto TP_ARGS(m), 258968f9d3SHidetoshi Seto 268968f9d3SHidetoshi Seto TP_STRUCT__entry( 278968f9d3SHidetoshi Seto __field( u64, mcgcap ) 288968f9d3SHidetoshi Seto __field( u64, mcgstatus ) 298968f9d3SHidetoshi Seto __field( u64, status ) 308968f9d3SHidetoshi Seto __field( u64, addr ) 318968f9d3SHidetoshi Seto __field( u64, misc ) 32db819d60SYazen Ghannam __field( u64, synd ) 335828c46fSYazen Ghannam __field( u64, ipid ) 348968f9d3SHidetoshi Seto __field( u64, ip ) 358968f9d3SHidetoshi Seto __field( u64, tsc ) 3698430645SAvadhut Naik __field( u64, ppin ) 378968f9d3SHidetoshi Seto __field( u64, walltime ) 388968f9d3SHidetoshi Seto __field( u32, cpu ) 398968f9d3SHidetoshi Seto __field( u32, cpuid ) 408968f9d3SHidetoshi Seto __field( u32, apicid ) 418968f9d3SHidetoshi Seto __field( u32, socketid ) 42ad440ad6SDavid Sharp __field( u8, cs ) 43ad440ad6SDavid Sharp __field( u8, bank ) 448968f9d3SHidetoshi Seto __field( u8, cpuvendor ) 45*186d7ef5SAvadhut Naik __field( u32, microcode ) 468968f9d3SHidetoshi Seto ), 478968f9d3SHidetoshi Seto 488968f9d3SHidetoshi Seto TP_fast_assign( 498968f9d3SHidetoshi Seto __entry->mcgcap = m->mcgcap; 508968f9d3SHidetoshi Seto __entry->mcgstatus = m->mcgstatus; 518968f9d3SHidetoshi Seto __entry->status = m->status; 528968f9d3SHidetoshi Seto __entry->addr = m->addr; 538968f9d3SHidetoshi Seto __entry->misc = m->misc; 54db819d60SYazen Ghannam __entry->synd = m->synd; 555828c46fSYazen Ghannam __entry->ipid = m->ipid; 568968f9d3SHidetoshi Seto __entry->ip = m->ip; 578968f9d3SHidetoshi Seto __entry->tsc = m->tsc; 5898430645SAvadhut Naik __entry->ppin = m->ppin; 598968f9d3SHidetoshi Seto __entry->walltime = m->time; 608968f9d3SHidetoshi Seto __entry->cpu = m->extcpu; 618968f9d3SHidetoshi Seto __entry->cpuid = m->cpuid; 628968f9d3SHidetoshi Seto __entry->apicid = m->apicid; 638968f9d3SHidetoshi Seto __entry->socketid = m->socketid; 64ad440ad6SDavid Sharp __entry->cs = m->cs; 65ad440ad6SDavid Sharp __entry->bank = m->bank; 668968f9d3SHidetoshi Seto __entry->cpuvendor = m->cpuvendor; 67*186d7ef5SAvadhut Naik __entry->microcode = m->microcode; 688968f9d3SHidetoshi Seto ), 698968f9d3SHidetoshi Seto 70*186d7ef5SAvadhut Naik 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", 718968f9d3SHidetoshi Seto __entry->cpu, 728968f9d3SHidetoshi Seto __entry->mcgcap, __entry->mcgstatus, 738968f9d3SHidetoshi Seto __entry->bank, __entry->status, 745828c46fSYazen Ghannam __entry->ipid, 75ac5e80e9SIngo Molnar __entry->addr, 76ac5e80e9SIngo Molnar __entry->misc, 77ac5e80e9SIngo Molnar __entry->synd, 788968f9d3SHidetoshi Seto __entry->cs, __entry->ip, 798968f9d3SHidetoshi Seto __entry->tsc, 8098430645SAvadhut Naik __entry->ppin, 81ac5e80e9SIngo Molnar __entry->cpuvendor, 82ac5e80e9SIngo Molnar __entry->cpuid, 838968f9d3SHidetoshi Seto __entry->walltime, 848968f9d3SHidetoshi Seto __entry->socketid, 85*186d7ef5SAvadhut Naik __entry->apicid, 86*186d7ef5SAvadhut Naik __entry->microcode) 878968f9d3SHidetoshi Seto ); 888968f9d3SHidetoshi Seto 898968f9d3SHidetoshi Seto #endif /* _TRACE_MCE_H */ 908968f9d3SHidetoshi Seto 918968f9d3SHidetoshi Seto /* This part must be outside protection */ 928968f9d3SHidetoshi Seto #include <trace/define_trace.h> 93