[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2c2f5036-c3ae-3904-e940-8a8b71a65957@loongson.cn>
Date: Thu, 24 Jul 2025 09:39:40 +0800
From: Bibo Mao <maobibo@...ngson.cn>
To: Steven Rostedt <rostedt@...dmis.org>, LKML
<linux-kernel@...r.kernel.org>,
Linux Trace Kernel <linux-trace-kernel@...r.kernel.org>,
kvm@...r.kernel.org, loongarch@...ts.linux.dev
Cc: Tianrui Zhao <zhaotianrui@...ngson.cn>,
Huacai Chen <chenhuacai@...nel.org>, Paolo Bonzini <pbonzini@...hat.com>,
Masami Hiramatsu <mhiramat@...nel.org>,
Mathieu Desnoyers <mathieu.desnoyers@...icios.com>
Subject: Re: [PATCH] LoongArch: KVM: Move kvm_iocsr tracepoint out of generic
code
On 2025/7/22 下午9:47, Steven Rostedt wrote:
> From: Steven Rostedt <rostedt@...dmis.org>
>
> The tracepoint kvm_iocsr is only used by the loongarch architecture. As
> trace events can take up to 5K of memory, move this tracepoint into the
> loongarch specific tracing file so that it doesn't waste memory for all
> other architectures.
>
> Signed-off-by: Steven Rostedt (Google) <rostedt@...dmis.org>
> ---
> arch/loongarch/kvm/trace.h | 35 +++++++++++++++++++++++++++++++++++
> include/trace/events/kvm.h | 35 -----------------------------------
> 2 files changed, 35 insertions(+), 35 deletions(-)
>
> diff --git a/arch/loongarch/kvm/trace.h b/arch/loongarch/kvm/trace.h
> index 145514dab6d5..d73dea8afb74 100644
> --- a/arch/loongarch/kvm/trace.h
> +++ b/arch/loongarch/kvm/trace.h
> @@ -115,6 +115,41 @@ TRACE_EVENT(kvm_exit_gspr,
> __entry->inst_word)
> );
>
> +#define KVM_TRACE_IOCSR_READ_UNSATISFIED 0
> +#define KVM_TRACE_IOCSR_READ 1
> +#define KVM_TRACE_IOCSR_WRITE 2
> +
> +#define kvm_trace_symbol_iocsr \
> + { KVM_TRACE_IOCSR_READ_UNSATISFIED, "unsatisfied-read" }, \
> + { KVM_TRACE_IOCSR_READ, "read" }, \
> + { KVM_TRACE_IOCSR_WRITE, "write" }
> +
> +TRACE_EVENT(kvm_iocsr,
> + TP_PROTO(int type, int len, u64 gpa, void *val),
> + TP_ARGS(type, len, gpa, val),
> +
> + TP_STRUCT__entry(
> + __field( u32, type )
> + __field( u32, len )
> + __field( u64, gpa )
> + __field( u64, val )
> + ),
> +
> + TP_fast_assign(
> + __entry->type = type;
> + __entry->len = len;
> + __entry->gpa = gpa;
> + __entry->val = 0;
> + if (val)
> + memcpy(&__entry->val, val,
> + min_t(u32, sizeof(__entry->val), len));
> + ),
> +
> + TP_printk("iocsr %s len %u gpa 0x%llx val 0x%llx",
> + __print_symbolic(__entry->type, kvm_trace_symbol_iocsr),
> + __entry->len, __entry->gpa, __entry->val)
> +);
> +
> #define KVM_TRACE_AUX_SAVE 0
> #define KVM_TRACE_AUX_RESTORE 1
> #define KVM_TRACE_AUX_ENABLE 2
> diff --git a/include/trace/events/kvm.h b/include/trace/events/kvm.h
> index 8b7252b8d751..b282e3a86769 100644
> --- a/include/trace/events/kvm.h
> +++ b/include/trace/events/kvm.h
> @@ -156,41 +156,6 @@ TRACE_EVENT(kvm_mmio,
> __entry->len, __entry->gpa, __entry->val)
> );
>
> -#define KVM_TRACE_IOCSR_READ_UNSATISFIED 0
> -#define KVM_TRACE_IOCSR_READ 1
> -#define KVM_TRACE_IOCSR_WRITE 2
> -
> -#define kvm_trace_symbol_iocsr \
> - { KVM_TRACE_IOCSR_READ_UNSATISFIED, "unsatisfied-read" }, \
> - { KVM_TRACE_IOCSR_READ, "read" }, \
> - { KVM_TRACE_IOCSR_WRITE, "write" }
> -
> -TRACE_EVENT(kvm_iocsr,
> - TP_PROTO(int type, int len, u64 gpa, void *val),
> - TP_ARGS(type, len, gpa, val),
> -
> - TP_STRUCT__entry(
> - __field( u32, type )
> - __field( u32, len )
> - __field( u64, gpa )
> - __field( u64, val )
> - ),
> -
> - TP_fast_assign(
> - __entry->type = type;
> - __entry->len = len;
> - __entry->gpa = gpa;
> - __entry->val = 0;
> - if (val)
> - memcpy(&__entry->val, val,
> - min_t(u32, sizeof(__entry->val), len));
> - ),
> -
> - TP_printk("iocsr %s len %u gpa 0x%llx val 0x%llx",
> - __print_symbolic(__entry->type, kvm_trace_symbol_iocsr),
> - __entry->len, __entry->gpa, __entry->val)
> -);
> -
> #define kvm_fpu_load_symbol \
> {0, "unload"}, \
> {1, "load"}
>
Reviewed-by: Bibo Mao <maobibo@...ngson.cn>
Powered by blists - more mailing lists