[RFC V2 0/3] arm64/hw_breakpoint: Enable FEAT_Debugv8p9

From: Anshuman Khandual
Date: Thu Jun 20 2024 - 05:26:29 EST


This series enables FEAT_Debugv8p9 thus extending breakpoint and watchpoint
support upto 64. This has been lightly tested and still work is in progress
but would like to get some early feedback on the approach.

Possible impact of context switches while tracing kernel addresses needs to
be evaluated regarding MDSELR_EL1 access. This series is based on v6.10-rc4
after applying the MDSELR_EL1 KVM series.

https://lore.kernel.org/all/20240620065807.151540-1-anshuman.khandual@xxxxxxx/

Cc: Jonathan Corbet <corbet@xxxxxxx>
Cc: Marc Zyngier <maz@xxxxxxxxxx>
Cc: Oliver Upton <oliver.upton@xxxxxxxxx>
Cc: James Morse <james.morse@xxxxxxx>
Cc: Suzuki K Poulose <suzuki.poulose@xxxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Will Deacon <will@xxxxxxxxxx>
Cc: Mark Brown <broonie@xxxxxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: kvmarm@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx

Changes in RFC V2:

- This series has been split from RFC V1 dealing only with arm64 breakpoints
- Restored back DBG_MDSCR_MASK definition (unrelated change)
- Added preempt_disable()/enable() blocks between selecting banks and registers

Changes in RFC:

https://lore.kernel.org/all/20240405080008.1225223-1-anshuman.khandual@xxxxxxx/

Anshuman Khandual (3):
arm64/cpufeature: Add field details for ID_AA64DFR1_EL1 register
arm64/boot: Enable EL2 requirements for FEAT_Debugv8p9
arm64/hw_breakpoint: Enable FEAT_Debugv8p9

Documentation/arch/arm64/booting.rst | 19 ++++++++++
arch/arm64/include/asm/debug-monitors.h | 1 +
arch/arm64/include/asm/el2_setup.h | 27 +++++++++++++
arch/arm64/include/asm/hw_breakpoint.h | 50 ++++++++++++++++++++-----
arch/arm64/include/asm/kvm_arm.h | 1 +
arch/arm64/kernel/cpufeature.c | 21 ++++++++---
arch/arm64/kernel/debug-monitors.c | 16 ++++++--
arch/arm64/kernel/hw_breakpoint.c | 33 ++++++++++++++++
8 files changed, 149 insertions(+), 19 deletions(-)

--
2.25.1