[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAAhV-H6B7Nd4jqVO-wM9JRgf0cqfhPMZwMM6kzcf0wdBC+RUcA@mail.gmail.com>
Date: Wed, 16 Jul 2025 17:27:49 +0800
From: Huacai Chen <chenhuacai@...nel.org>
To: Bibo Mao <maobibo@...ngson.cn>
Cc: Yulong Han <wheatfox17@...oud.com>, kernel@...0n.name, zhaotianrui@...ngson.cn,
kvm@...r.kernel.org, loongarch@...ts.linux.dev, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] LoongArch: KVM: Add tracepoints for CPUCFG and CSR
emulation exits
Applied, thanks.
Huacai
On Mon, Jul 7, 2025 at 11:30 AM Bibo Mao <maobibo@...ngson.cn> wrote:
>
> On 2025/7/2 下午6:59, Yulong Han wrote:
> > This patch adds tracepoints to track KVM exits caused by CPUCFG
> > and CSR emulation. Note that IOCSR emulation tracing is already
> > covered by the generic trace_kvm_iocsr().
> >
> > Signed-off-by: Yulong Han <wheatfox17@...oud.com>
> > ---
> > arch/loongarch/kvm/exit.c | 2 ++
> > arch/loongarch/kvm/trace.h | 14 +++++++++++++-
> > 2 files changed, 15 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/loongarch/kvm/exit.c b/arch/loongarch/kvm/exit.c
> > index fa52251b3bf1c..6a47a23ae9cd6 100644
> > --- a/arch/loongarch/kvm/exit.c
> > +++ b/arch/loongarch/kvm/exit.c
> > @@ -289,9 +289,11 @@ static int kvm_trap_handle_gspr(struct kvm_vcpu *vcpu)
> > er = EMULATE_FAIL;
> > switch (((inst.word >> 24) & 0xff)) {
> > case 0x0: /* CPUCFG GSPR */
> > + trace_kvm_exit_cpucfg(vcpu, KVM_TRACE_EXIT_CPUCFG);
> > er = kvm_emu_cpucfg(vcpu, inst);
> > break;
> > case 0x4: /* CSR{RD,WR,XCHG} GSPR */
> > + trace_kvm_exit_csr(vcpu, KVM_TRACE_EXIT_CSR);
> > er = kvm_handle_csr(vcpu, inst);
> > break;
> > case 0x6: /* Cache, Idle and IOCSR GSPR */
> > diff --git a/arch/loongarch/kvm/trace.h b/arch/loongarch/kvm/trace.h
> > index 1783397b1bc88..145514dab6d5b 100644
> > --- a/arch/loongarch/kvm/trace.h
> > +++ b/arch/loongarch/kvm/trace.h
> > @@ -46,11 +46,15 @@ DEFINE_EVENT(kvm_transition, kvm_out,
> > /* Further exit reasons */
> > #define KVM_TRACE_EXIT_IDLE 64
> > #define KVM_TRACE_EXIT_CACHE 65
> > +#define KVM_TRACE_EXIT_CPUCFG 66
> > +#define KVM_TRACE_EXIT_CSR 67
> >
> > /* Tracepoints for VM exits */
> > #define kvm_trace_symbol_exit_types \
> > { KVM_TRACE_EXIT_IDLE, "IDLE" }, \
> > - { KVM_TRACE_EXIT_CACHE, "CACHE" }
> > + { KVM_TRACE_EXIT_CACHE, "CACHE" }, \
> > + { KVM_TRACE_EXIT_CPUCFG, "CPUCFG" }, \
> > + { KVM_TRACE_EXIT_CSR, "CSR" }
> >
> > DECLARE_EVENT_CLASS(kvm_exit,
> > TP_PROTO(struct kvm_vcpu *vcpu, unsigned int reason),
> > @@ -82,6 +86,14 @@ DEFINE_EVENT(kvm_exit, kvm_exit_cache,
> > TP_PROTO(struct kvm_vcpu *vcpu, unsigned int reason),
> > TP_ARGS(vcpu, reason));
> >
> > +DEFINE_EVENT(kvm_exit, kvm_exit_cpucfg,
> > + TP_PROTO(struct kvm_vcpu *vcpu, unsigned int reason),
> > + TP_ARGS(vcpu, reason));
> > +
> > +DEFINE_EVENT(kvm_exit, kvm_exit_csr,
> > + TP_PROTO(struct kvm_vcpu *vcpu, unsigned int reason),
> > + TP_ARGS(vcpu, reason));
> > +
> > DEFINE_EVENT(kvm_exit, kvm_exit,
> > TP_PROTO(struct kvm_vcpu *vcpu, unsigned int reason),
> > TP_ARGS(vcpu, reason));
> >
> Reviewed-by: Bibo Mao <maobibo@...ngson.cn>
>
Powered by blists - more mailing lists