[PATCH v2 0/4] Debug info for nVHE hyp panics

From: Andrew Scull
Date: Tue Feb 23 2021 - 10:58:47 EST


Panics from arm64's nVHE hyp mode are hard to interpret. This series
adds some more debug info to help with diagnosis.

Using BUG() in nVHE hyp gives a meaningful address to locate invariants
that fail to hold. The host can also look up the bug to provide the file
and line, if the debug configs are enabled. Otherwise a kimg address is
much more useful than a hyp VA since it can be looked up in vmlinux.

The lib/bug.c changes apply on 5.11.

This arm64 KVM changes apply on top of the previous panic fix at
https://lore.kernel.org/r/20210219122406.1337626-1-ascull@xxxxxxxxxx/

>From v1 (https://lore.kernel.org/r/20210223094927.766572-1-ascull@xxxxxxxxxx/):
- keeping struct bug details in bug.c
- using SPSR to distinguish hyp from host
- inlined __hyp_panic_string

Andrew Scull (4):
bug: Remove redundant condition check in report_bug
bug: Factor out a getter for a bug's file line
KVM: arm64: Use BUG and BUG_ON in nVHE hyp
KVM: arm64: Log source when panicking from nVHE hyp

arch/arm64/include/asm/kvm_hyp.h | 1 -
arch/arm64/include/asm/kvm_mmu.h | 2 +
arch/arm64/kernel/image-vars.h | 3 +-
arch/arm64/kvm/handle_exit.c | 31 ++++++++++++++
arch/arm64/kvm/hyp/include/hyp/switch.h | 2 -
arch/arm64/kvm/hyp/nvhe/host.S | 17 ++++----
arch/arm64/kvm/hyp/nvhe/hyp-main.c | 2 +-
arch/arm64/kvm/hyp/nvhe/hyp-smp.c | 6 +--
arch/arm64/kvm/hyp/nvhe/psci-relay.c | 2 -
arch/arm64/kvm/hyp/vhe/switch.c | 4 +-
include/linux/bug.h | 3 ++
lib/bug.c | 54 +++++++++++++------------
12 files changed, 77 insertions(+), 50 deletions(-)

--
2.30.0.617.g56c4b15f3c-goog