85 lines
1.6 KiB
C
85 lines
1.6 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (c) 2023 MediaTek Inc.
|
|
*/
|
|
|
|
#undef TRACE_SYSTEM
|
|
#define TRACE_SYSTEM geniezone
|
|
|
|
#define _TRACE_GENIEZONE_H
|
|
|
|
#include <linux/gzvm.h>
|
|
#include <linux/tracepoint.h>
|
|
|
|
#define GZVM_EXIT_REASONS \
|
|
EM(UNKNOWN)\
|
|
EM(MMIO)\
|
|
EM(HYPERCALL)\
|
|
EM(IRQ)\
|
|
EM(EXCEPTION)\
|
|
EM(DEBUG)\
|
|
EM(FAIL_ENTRY)\
|
|
EM(INTERNAL_ERROR)\
|
|
EM(SYSTEM_EVENT)\
|
|
EM(SHUTDOWN)\
|
|
EMe(GZ)
|
|
|
|
#undef EM
|
|
#undef EMe
|
|
#define EM(a) TRACE_DEFINE_ENUM(GZVM_EXIT_##a);
|
|
#define EMe(a) TRACE_DEFINE_ENUM(GZVM_EXIT_##a);
|
|
|
|
GZVM_EXIT_REASONS
|
|
|
|
#undef EM
|
|
#undef EMe
|
|
|
|
#define EM(a) { GZVM_EXIT_##a, #a },
|
|
#define EMe(a) { GZVM_EXIT_##a, #a }
|
|
|
|
TRACE_EVENT(mtk_hypcall_enter,
|
|
TP_PROTO(unsigned long id),
|
|
|
|
TP_ARGS(id),
|
|
|
|
TP_STRUCT__entry(__field(unsigned long, id)),
|
|
|
|
TP_fast_assign(__entry->id = id;),
|
|
|
|
TP_printk("id=0x%lx", __entry->id)
|
|
);
|
|
|
|
TRACE_EVENT(mtk_hypcall_leave,
|
|
TP_PROTO(unsigned long id, unsigned long invalid),
|
|
|
|
TP_ARGS(id, invalid),
|
|
|
|
TP_STRUCT__entry(__field(unsigned long, id)
|
|
__field(unsigned long, invalid)
|
|
),
|
|
|
|
TP_fast_assign(__entry->id = id;
|
|
__entry->invalid = invalid;
|
|
),
|
|
|
|
TP_printk("id=0x%lx invalid=%lu", __entry->id, __entry->invalid)
|
|
);
|
|
|
|
TRACE_EVENT(mtk_vcpu_exit,
|
|
TP_PROTO(unsigned long exit_reason),
|
|
|
|
TP_ARGS(exit_reason),
|
|
|
|
TP_STRUCT__entry(__field(unsigned long, exit_reason)),
|
|
|
|
TP_fast_assign(__entry->exit_reason = exit_reason;),
|
|
|
|
TP_printk("vcpu exit_reason=%s(0x%lx)",
|
|
__print_symbolic(__entry->exit_reason, GZVM_EXIT_REASONS),
|
|
__entry->exit_reason)
|
|
|
|
);
|
|
|
|
/* This part must be outside protection */
|
|
#include <trace/define_trace.h>
|