blob: 4fffd826ba67059888859a1dd0d785bf91b06cfc [file] [log] [blame] [edit]
/* 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>