From: Marc Zyngier <maz@kernel.org>
To: Oliver Upton <oliver.upton@linux.dev>
Cc: kvmarm@lists.linux.dev, Joey Gouly <joey.gouly@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Zenghui Yu <yuzenghui@huawei.com>,
Mingwei Zhang <mizhang@google.com>,
Colton Lewis <coltonlewis@google.com>,
Alexandru Elisei <alexandru.elisei@arm.com>
Subject: Re: [PATCH 09/15] KVM: arm64: Remove debug tracepoints
Date: Sat, 09 Nov 2024 12:02:37 +0000 [thread overview]
Message-ID: <86zfm8zkbm.wl-maz@kernel.org> (raw)
In-Reply-To: <20241108222418.1677420-10-oliver.upton@linux.dev>
On Fri, 08 Nov 2024 22:24:13 +0000,
Oliver Upton <oliver.upton@linux.dev> wrote:
>
> The debug tracepoints are a useless firehose of information that track
> implementation detail rather than well-defined events. These are going
> to be rather difficult to uphold now that the implementation is getting
> redone, so throw them out instead of bending over backwards.
>
> Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
> ---
> arch/arm64/kvm/debug.c | 29 -----------------------------
> 1 file changed, 29 deletions(-)
>
> diff --git a/arch/arm64/kvm/debug.c b/arch/arm64/kvm/debug.c
> index c2bf1b296b14..66cf4e843b47 100644
> --- a/arch/arm64/kvm/debug.c
> +++ b/arch/arm64/kvm/debug.c
> @@ -35,10 +35,6 @@ static void save_guest_debug_regs(struct kvm_vcpu *vcpu)
> u64 val = vcpu_read_sys_reg(vcpu, MDSCR_EL1);
>
> vcpu->arch.guest_debug_preserved.mdscr_el1 = val;
> -
> - trace_kvm_arm_set_dreg32("Saved MDSCR_EL1",
> - vcpu->arch.guest_debug_preserved.mdscr_el1);
> -
> vcpu->arch.guest_debug_preserved.pstate_ss =
> (*vcpu_cpsr(vcpu) & DBG_SPSR_SS);
> }
> @@ -49,9 +45,6 @@ static void restore_guest_debug_regs(struct kvm_vcpu *vcpu)
>
> vcpu_write_sys_reg(vcpu, val, MDSCR_EL1);
>
> - trace_kvm_arm_set_dreg32("Restored MDSCR_EL1",
> - vcpu_read_sys_reg(vcpu, MDSCR_EL1));
> -
> if (vcpu->arch.guest_debug_preserved.pstate_ss)
> *vcpu_cpsr(vcpu) |= DBG_SPSR_SS;
> else
> @@ -102,8 +95,6 @@ static void kvm_arm_setup_mdcr_el2(struct kvm_vcpu *vcpu)
> !vcpu_get_flag(vcpu, DEBUG_DIRTY) ||
> kvm_vcpu_os_lock_enabled(vcpu))
> vcpu->arch.mdcr_el2 |= MDCR_EL2_TDA;
> -
> - trace_kvm_arm_set_dreg32("MDCR_EL2", vcpu->arch.mdcr_el2);
> }
>
> /**
> @@ -201,8 +192,6 @@ void kvm_arm_setup_debug(struct kvm_vcpu *vcpu)
> vcpu_write_sys_reg(vcpu, mdscr, MDSCR_EL1);
> }
>
> - trace_kvm_arm_set_dreg32("SPSR_EL2", *vcpu_cpsr(vcpu));
> -
> /*
> * HW Breakpoints and watchpoints
> *
> @@ -220,14 +209,6 @@ void kvm_arm_setup_debug(struct kvm_vcpu *vcpu)
> vcpu->arch.debug_ptr = &vcpu->arch.external_debug_state;
> vcpu_set_flag(vcpu, DEBUG_DIRTY);
>
> - trace_kvm_arm_set_regset("BKPTS", get_num_brps(),
> - &vcpu->arch.debug_ptr->dbg_bcr[0],
> - &vcpu->arch.debug_ptr->dbg_bvr[0]);
> -
> - trace_kvm_arm_set_regset("WAPTS", get_num_wrps(),
> - &vcpu->arch.debug_ptr->dbg_wcr[0],
> - &vcpu->arch.debug_ptr->dbg_wvr[0]);
> -
> /*
> * The OS Lock blocks debug exceptions in all ELs when it is
> * enabled. If the guest has enabled the OS Lock, constrain its
> @@ -253,8 +234,6 @@ void kvm_arm_setup_debug(struct kvm_vcpu *vcpu)
> /* Write mdcr_el2 changes since vcpu_load on VHE systems */
> if (has_vhe() && orig_mdcr_el2 != vcpu->arch.mdcr_el2)
> write_sysreg(vcpu->arch.mdcr_el2, mdcr_el2);
> -
> - trace_kvm_arm_set_dreg32("MDSCR_EL1", vcpu_read_sys_reg(vcpu, MDSCR_EL1));
> }
>
> void kvm_arm_clear_debug(struct kvm_vcpu *vcpu)
> @@ -282,14 +261,6 @@ void kvm_arm_clear_debug(struct kvm_vcpu *vcpu)
> */
> if (vcpu->guest_debug & KVM_GUESTDBG_USE_HW) {
> kvm_arm_reset_debug_ptr(vcpu);
> -
> - trace_kvm_arm_set_regset("BKPTS", get_num_brps(),
> - &vcpu->arch.debug_ptr->dbg_bcr[0],
> - &vcpu->arch.debug_ptr->dbg_bvr[0]);
> -
> - trace_kvm_arm_set_regset("WAPTS", get_num_wrps(),
> - &vcpu->arch.debug_ptr->dbg_wcr[0],
> - &vcpu->arch.debug_ptr->dbg_wvr[0]);
> }
> }
> }
Whilst you're at it, how about:
diff --git a/arch/arm64/kvm/trace_handle_exit.h b/arch/arm64/kvm/trace_handle_exit.h
index 064a58c19f481..fa1e48a36d3f9 100644
--- a/arch/arm64/kvm/trace_handle_exit.h
+++ b/arch/arm64/kvm/trace_handle_exit.h
@@ -101,26 +101,6 @@ TRACE_EVENT(kvm_arm_set_dreg32,
TRACE_DEFINE_SIZEOF(__u64);
-TRACE_EVENT(kvm_arm_set_regset,
- TP_PROTO(const char *type, int len, __u64 *control, __u64 *value),
- TP_ARGS(type, len, control, value),
- TP_STRUCT__entry(
- __field(const char *, name)
- __field(int, len)
- __array(u64, ctrls, 16)
- __array(u64, values, 16)
- ),
- TP_fast_assign(
- __entry->name = type;
- __entry->len = len;
- memcpy(__entry->ctrls, control, len << 3);
- memcpy(__entry->values, value, len << 3);
- ),
- TP_printk("%d %s CTRL:%s VALUE:%s", __entry->len, __entry->name,
- __print_array(__entry->ctrls, __entry->len, sizeof(__u64)),
- __print_array(__entry->values, __entry->len, sizeof(__u64)))
-);
-
TRACE_EVENT(trap_reg,
TP_PROTO(const char *fn, int reg, bool is_write, u64 write_value),
TP_ARGS(fn, reg, is_write, write_value),
It's not like we're going to miss that.
Thanks,
M.
--
Without deviation from the norm, progress is not possible.
next prev parent reply other threads:[~2024-11-09 12:02 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-08 22:24 [PATCH 00/15] KVM: arm64: Debug cleanups Oliver Upton
2024-11-08 22:24 ` [PATCH 01/15] KVM: arm64: Drop MDSCR_EL1_DEBUG_MASK Oliver Upton
2024-11-08 22:24 ` [PATCH 02/15] KVM: arm64: Get rid of __kvm_get_mdcr_el2() and related warts Oliver Upton
2024-11-11 11:00 ` Suzuki K Poulose
2024-11-12 7:22 ` Oliver Upton
2024-11-08 22:24 ` [PATCH 03/15] KVM: arm64: Track presence of SPE/TRBE in kvm_host_data instead of vCPU Oliver Upton
2024-11-11 13:47 ` Suzuki K Poulose
2024-11-11 15:58 ` Suzuki K Poulose
2024-11-11 16:09 ` James Clark
2024-11-11 18:17 ` Oliver Upton
2024-11-08 22:24 ` [PATCH 04/15] KVM: arm64: Move host SME/SVE tracking flags to host data Oliver Upton
2024-11-09 11:39 ` Marc Zyngier
2024-11-08 22:24 ` [PATCH 05/15] KVM: arm64: Evaluate debug owner at vcpu_load() Oliver Upton
2024-11-08 22:24 ` [PATCH 06/15] KVM: arm64: Advance debug_owner state machine for sysreg traps Oliver Upton
2024-11-09 11:47 ` Marc Zyngier
2024-11-08 22:24 ` [PATCH 07/15] KVM: arm64: Clean up KVM_SET_GUEST_DEBUG handler Oliver Upton
2024-11-08 22:24 ` [PATCH 08/15] KVM: arm64: Select debug state to save/restore based on debug owner Oliver Upton
2024-11-09 11:57 ` Marc Zyngier
2024-11-09 17:13 ` Oliver Upton
2024-11-08 22:24 ` [PATCH 09/15] KVM: arm64: Remove debug tracepoints Oliver Upton
2024-11-09 12:02 ` Marc Zyngier [this message]
2024-11-09 13:17 ` Marc Zyngier
2024-11-08 22:24 ` [PATCH 10/15] KVM: arm64: Remove vestiges of debug_ptr Oliver Upton
2024-11-08 22:24 ` [PATCH 11/15] KVM: arm64: Use debug_owner to track if debug regs need save/restore Oliver Upton
2024-11-09 12:11 ` Marc Zyngier
2024-11-09 17:18 ` Oliver Upton
2024-11-09 22:37 ` Marc Zyngier
2024-11-09 23:46 ` Oliver Upton
2024-11-08 22:24 ` [PATCH 12/15] KVM: arm64: Reload vCPU for accesses to OSLAR_EL1 Oliver Upton
2024-11-08 22:24 ` [PATCH 13/15] KVM: arm64: Compute MDCR_EL2 at vcpu_load() Oliver Upton
2024-11-09 12:28 ` Marc Zyngier
2024-11-08 22:24 ` [PATCH 14/15] KVM: arm64: Don't hijack guest context MDSCR_EL1 Oliver Upton
2024-11-09 12:59 ` Marc Zyngier
2024-11-08 22:24 ` [PATCH 15/15] KVM: arm64: Manage software step state at load/put Oliver Upton
2024-11-09 13:13 ` [PATCH 00/15] KVM: arm64: Debug cleanups Marc Zyngier
2024-11-09 17:08 ` Oliver Upton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86zfm8zkbm.wl-maz@kernel.org \
--to=maz@kernel.org \
--cc=alexandru.elisei@arm.com \
--cc=coltonlewis@google.com \
--cc=joey.gouly@arm.com \
--cc=kvmarm@lists.linux.dev \
--cc=mizhang@google.com \
--cc=oliver.upton@linux.dev \
--cc=suzuki.poulose@arm.com \
--cc=yuzenghui@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox