1 /* 2 * ACRN TRACE 3 * 4 * Copyright (C) 2017-2022 Intel Corporation. 5 * 6 * SPDX-License-Identifier: BSD-3-Clause 7 * 8 * Li Fei <fei1.li@intel.com> 9 * 10 */ 11 12 #ifndef TRACE_H 13 #define TRACE_H 14 #include <asm/per_cpu.h> 15 /* TIMER EVENT */ 16 #define TRACE_TIMER_ACTION_ADDED 0x1U 17 #define TRACE_TIMER_ACTION_PCKUP 0x2U 18 #define TRACE_TIMER_ACTION_UPDAT 0x3U 19 #define TRACE_TIMER_IRQ 0x4U 20 21 #define TRACE_VM_EXIT 0x10U 22 #define TRACE_VM_ENTER 0X11U 23 24 /* event to calculate cpu usage with shared pcpu */ 25 #define TRACE_SCHED_NEXT 0x20U 26 27 #define TRACE_VMEXIT_ENTRY 0x10000U 28 29 #define TRACE_VMEXIT_EXCEPTION_OR_NMI (TRACE_VMEXIT_ENTRY + 0x00000000U) 30 #define TRACE_VMEXIT_EXTERNAL_INTERRUPT (TRACE_VMEXIT_ENTRY + 0x00000001U) 31 #define TRACE_VMEXIT_INTERRUPT_WINDOW (TRACE_VMEXIT_ENTRY + 0x00000002U) 32 #define TRACE_VMEXIT_CPUID (TRACE_VMEXIT_ENTRY + 0x00000004U) 33 #define TRACE_VMEXIT_RDTSC (TRACE_VMEXIT_ENTRY + 0x00000010U) 34 #define TRACE_VMEXIT_VMCALL (TRACE_VMEXIT_ENTRY + 0x00000012U) 35 #define TRACE_VMEXIT_CR_ACCESS (TRACE_VMEXIT_ENTRY + 0x0000001CU) 36 #define TRACE_VMEXIT_IO_INSTRUCTION (TRACE_VMEXIT_ENTRY + 0x0000001EU) 37 #define TRACE_VMEXIT_RDMSR (TRACE_VMEXIT_ENTRY + 0x0000001FU) 38 #define TRACE_VMEXIT_WRMSR (TRACE_VMEXIT_ENTRY + 0x00000020U) 39 #define TRACE_VMEXIT_EPT_VIOLATION (TRACE_VMEXIT_ENTRY + 0x00000030U) 40 #define TRACE_VMEXIT_EPT_MISCONFIGURATION (TRACE_VMEXIT_ENTRY + 0x00000031U) 41 #define TRACE_VMEXIT_RDTSCP (TRACE_VMEXIT_ENTRY + 0x00000033U) 42 #define TRACE_VMEXIT_APICV_WRITE (TRACE_VMEXIT_ENTRY + 0x00000038U) 43 #define TRACE_VMEXIT_APICV_ACCESS (TRACE_VMEXIT_ENTRY + 0x00000039U) 44 #define TRACE_VMEXIT_APICV_VIRT_EOI (TRACE_VMEXIT_ENTRY + 0x0000003AU) 45 46 #define TRACE_VMEXIT_UNHANDLED 0x20000U 47 48 void TRACE_2L(uint32_t evid, uint64_t e, uint64_t f); 49 void TRACE_4I(uint32_t evid, uint32_t a, uint32_t b, uint32_t c, uint32_t d); 50 void TRACE_6C(uint32_t evid, uint8_t a1, uint8_t a2, uint8_t a3, uint8_t a4, uint8_t b1, uint8_t b2); 51 void TRACE_16STR(uint32_t evid, const char name[]); 52 53 #endif /* TRACE_H */ 54