lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ