From: Oliver Upton <oliver.upton@linux.dev>
To: kvmarm@lists.linux.dev
Cc: Marc Zyngier <maz@kernel.org>, 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>,
Oliver Upton <oliver.upton@linux.dev>
Subject: [PATCH v2 00/16] KVM: arm64: Debug cleanups
Date: Fri, 15 Nov 2024 14:49:08 -0800 [thread overview]
Message-ID: <20241115224924.2132364-1-oliver.upton@linux.dev> (raw)
Second pass at cleaning up the mess of debug support / trap
configuration we have.
Marc, I haven't yet gotten around to moving the per-CPU value of
mdcr_el2 into kvm_host_data. If you're alright with it, I'd like
to clean up the configuration + storage of all the trap registers
in a separate series, especially the pKVM bits of it.
Tested the userspace-facing parts by single-stepping + setting
breakpoints for a guest using QEMU's gdbstub. Tested the guest-facing
side of things with the debug-exceptions selftest.
v1 -> v2:
- Route debug exceptions to vEL2 if MDCR_EL2.TDE=1
- Avoid reading ID_AA64DFR0_EL1 a bunch for debug save/restore
- Set up HPMN with the right mask (Suzuki)
- Minor cleanups on host_data_*_flag() helpers (Marc)
- Squash patches responsible for updating debug_owner into 1 (Marc)
- Un-macro a few things I needed macro'ed in v0 (Marc)
- Completely rip out the debug tracepoints (Marc)
- Add new documentation for debug_owner, 'external' debug behaviors
(Marc)
Oliver Upton (16):
KVM: arm64: Drop MDSCR_EL1_DEBUG_MASK
KVM: arm64: Get rid of __kvm_get_mdcr_el2() and related warts
KVM: arm64: Track presence of SPE/TRBE in kvm_host_data instead of
vCPU
KVM: arm64: Move host SME/SVE tracking flags to host data
KVM: arm64: Evaluate debug owner at vcpu_load()
KVM: arm64: Clean up KVM_SET_GUEST_DEBUG handler
KVM: arm64: Select debug state to save/restore based on debug owner
KVM: arm64: Remove debug tracepoints
KVM: arm64: Remove vestiges of debug_ptr
KVM: arm64: Use debug_owner to track if debug regs need save/restore
KVM: arm64: Reload vCPU for accesses to OSLAR_EL1
KVM: arm64: Compute MDCR_EL2 at vcpu_load()
KVM: arm64: Don't hijack guest context MDSCR_EL1
KVM: arm64: Manage software step state at load/put
KVM: arm64: nv: Honor MDCR_EL2.TDE routing for debug exceptions
KVM: arm64: Avoid reading ID_AA64DFR0_EL1 for debug save/restore
arch/arm64/include/asm/kvm_asm.h | 5 +-
arch/arm64/include/asm/kvm_host.h | 94 +++---
arch/arm64/include/asm/kvm_nested.h | 1 +
arch/arm64/kvm/arm.c | 14 +-
arch/arm64/kvm/debug.c | 376 +++++++--------------
arch/arm64/kvm/emulate-nested.c | 23 +-
arch/arm64/kvm/fpsimd.c | 12 +-
arch/arm64/kvm/guest.c | 31 +-
arch/arm64/kvm/handle_exit.c | 5 +-
arch/arm64/kvm/hyp/include/hyp/debug-sr.h | 42 +--
arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h | 43 ++-
arch/arm64/kvm/hyp/nvhe/debug-sr.c | 13 +-
arch/arm64/kvm/hyp/nvhe/hyp-main.c | 8 -
arch/arm64/kvm/hyp/vhe/debug-sr.c | 5 -
arch/arm64/kvm/sys_regs.c | 55 +--
arch/arm64/kvm/trace_handle_exit.h | 75 ----
16 files changed, 279 insertions(+), 523 deletions(-)
base-commit: 60ad25e14ab5a4e56c8bf7f7d6846eacb9cd53df
--
2.39.5
next reply other threads:[~2024-11-15 22:49 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-15 22:49 Oliver Upton [this message]
2024-11-15 22:49 ` [PATCH v2 01/16] KVM: arm64: Drop MDSCR_EL1_DEBUG_MASK Oliver Upton
2024-11-15 22:49 ` [PATCH v2 02/16] KVM: arm64: Get rid of __kvm_get_mdcr_el2() and related warts Oliver Upton
2024-11-28 19:35 ` Colton Lewis
2024-11-29 7:26 ` Oliver Upton
2024-11-15 22:49 ` [PATCH v2 03/16] KVM: arm64: Track presence of SPE/TRBE in kvm_host_data instead of vCPU Oliver Upton
2024-11-22 11:15 ` James Clark
2024-11-15 22:49 ` [PATCH v2 04/16] KVM: arm64: Move host SME/SVE tracking flags to host data Oliver Upton
2024-11-15 22:49 ` [PATCH v2 05/16] KVM: arm64: Evaluate debug owner at vcpu_load() Oliver Upton
2024-11-15 22:49 ` [PATCH v2 06/16] KVM: arm64: Clean up KVM_SET_GUEST_DEBUG handler Oliver Upton
2024-11-15 22:49 ` [PATCH v2 07/16] KVM: arm64: Select debug state to save/restore based on debug owner Oliver Upton
2024-11-15 22:49 ` [PATCH v2 08/16] KVM: arm64: Remove debug tracepoints Oliver Upton
2024-11-15 22:49 ` [PATCH v2 09/16] KVM: arm64: Remove vestiges of debug_ptr Oliver Upton
2024-11-15 22:49 ` [PATCH v2 10/16] KVM: arm64: Use debug_owner to track if debug regs need save/restore Oliver Upton
2024-11-15 22:49 ` [PATCH v2 11/16] KVM: arm64: Reload vCPU for accesses to OSLAR_EL1 Oliver Upton
2024-11-15 22:49 ` [PATCH v2 12/16] KVM: arm64: Compute MDCR_EL2 at vcpu_load() Oliver Upton
2024-11-15 22:49 ` [PATCH v2 13/16] KVM: arm64: Don't hijack guest context MDSCR_EL1 Oliver Upton
2024-11-15 22:49 ` [PATCH v2 14/16] KVM: arm64: Manage software step state at load/put Oliver Upton
2024-11-15 22:49 ` [PATCH v2 15/16] KVM: arm64: nv: Honor MDCR_EL2.TDE routing for debug exceptions Oliver Upton
2024-11-15 22:49 ` [PATCH v2 16/16] KVM: arm64: Avoid reading ID_AA64DFR0_EL1 for debug save/restore Oliver Upton
2024-11-22 11:08 ` [PATCH v2 00/16] KVM: arm64: Debug cleanups James Clark
2024-11-30 3: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=20241115224924.2132364-1-oliver.upton@linux.dev \
--to=oliver.upton@linux.dev \
--cc=alexandru.elisei@arm.com \
--cc=coltonlewis@google.com \
--cc=joey.gouly@arm.com \
--cc=kvmarm@lists.linux.dev \
--cc=maz@kernel.org \
--cc=mizhang@google.com \
--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