Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

KVM: PPC: Use symbols for exit trace

Exit traces are a lot easier to read when you don't have to remember
cryptic numbers for guest exit reasons. Symbolify them in our trace
output.

Signed-off-by: Alexander Graf <agraf@suse.de>

+56 -2
+56 -2
arch/powerpc/kvm/trace.h
··· 31 31 __entry->inst, __entry->pc, __entry->emulate) 32 32 ); 33 33 34 + #ifdef CONFIG_PPC_BOOK3S 35 + #define kvm_trace_symbol_exit \ 36 + {0x100, "SYSTEM_RESET"}, \ 37 + {0x200, "MACHINE_CHECK"}, \ 38 + {0x300, "DATA_STORAGE"}, \ 39 + {0x380, "DATA_SEGMENT"}, \ 40 + {0x400, "INST_STORAGE"}, \ 41 + {0x480, "INST_SEGMENT"}, \ 42 + {0x500, "EXTERNAL"}, \ 43 + {0x501, "EXTERNAL_LEVEL"}, \ 44 + {0x502, "EXTERNAL_HV"}, \ 45 + {0x600, "ALIGNMENT"}, \ 46 + {0x700, "PROGRAM"}, \ 47 + {0x800, "FP_UNAVAIL"}, \ 48 + {0x900, "DECREMENTER"}, \ 49 + {0x980, "HV_DECREMENTER"}, \ 50 + {0xc00, "SYSCALL"}, \ 51 + {0xd00, "TRACE"}, \ 52 + {0xe00, "H_DATA_STORAGE"}, \ 53 + {0xe20, "H_INST_STORAGE"}, \ 54 + {0xe40, "H_EMUL_ASSIST"}, \ 55 + {0xf00, "PERFMON"}, \ 56 + {0xf20, "ALTIVEC"}, \ 57 + {0xf40, "VSX"} 58 + #else 59 + #define kvm_trace_symbol_exit \ 60 + {0, "CRITICAL"}, \ 61 + {1, "MACHINE_CHECK"}, \ 62 + {2, "DATA_STORAGE"}, \ 63 + {3, "INST_STORAGE"}, \ 64 + {4, "EXTERNAL"}, \ 65 + {5, "ALIGNMENT"}, \ 66 + {6, "PROGRAM"}, \ 67 + {7, "FP_UNAVAIL"}, \ 68 + {8, "SYSCALL"}, \ 69 + {9, "AP_UNAVAIL"}, \ 70 + {10, "DECREMENTER"}, \ 71 + {11, "FIT"}, \ 72 + {12, "WATCHDOG"}, \ 73 + {13, "DTLB_MISS"}, \ 74 + {14, "ITLB_MISS"}, \ 75 + {15, "DEBUG"}, \ 76 + {32, "SPE_UNAVAIL"}, \ 77 + {33, "SPE_FP_DATA"}, \ 78 + {34, "SPE_FP_ROUND"}, \ 79 + {35, "PERFORMANCE_MONITOR"}, \ 80 + {36, "DOORBELL"}, \ 81 + {37, "DOORBELL_CRITICAL"}, \ 82 + {38, "GUEST_DBELL"}, \ 83 + {39, "GUEST_DBELL_CRIT"}, \ 84 + {40, "HV_SYSCALL"}, \ 85 + {41, "HV_PRIV"} 86 + #endif 87 + 34 88 TRACE_EVENT(kvm_exit, 35 89 TP_PROTO(unsigned int exit_nr, struct kvm_vcpu *vcpu), 36 90 TP_ARGS(exit_nr, vcpu), ··· 116 62 __entry->last_inst = vcpu->arch.last_inst; 117 63 ), 118 64 119 - TP_printk("exit=0x%x" 65 + TP_printk("exit=%s" 120 66 " | pc=0x%lx" 121 67 " | msr=0x%lx" 122 68 " | dar=0x%lx" ··· 125 71 #endif 126 72 " | last_inst=0x%lx" 127 73 , 128 - __entry->exit_nr, 74 + __print_symbolic(__entry->exit_nr, kvm_trace_symbol_exit), 129 75 __entry->pc, 130 76 __entry->msr, 131 77 __entry->dar,