[lkml]   [2022]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH v3 0/5] KVM nVHE Hypervisor stack unwinder
Hi all,

This v3 of the nVHE hypervisor stack unwinder. The previous versions were
posted at:

The version is rebased on 5.19-rc1 which resolves the previously unmerged
dependencies, and adds some reviewed tags from Mark Brown.

The cover letter are copied below for convenience.



This new version of the unwinder splits the unwinding and dumping
of the stack between the hypervisor and host:
- The hypervisor unwinds its stack and dumps the address entries
into a page shared with the host.
- The host then symnolizes and prints the hyp stacktrace from
the shared page.

The new approach doesn't depend on CONFIG_NVHE_EL2_DEBUG,
and allows dumping hyp stacktraces in prodcution environments

arm64/kernel/stacktrace.c is compiled twice: stacktrace.o for the
host kernel and stacktrace.nvhe.o for the hypervisor. This allows
reusing most of the host unwinding logic in the nVHE hypervisor.

Kalesh Singh (5):
KVM: arm64: Factor out common stack unwinding logic
KVM: arm64: Compile stacktrace.nvhe.o
KVM: arm64: Add hypervisor overflow stack
KVM: arm64: Allocate shared stacktrace pages
KVM: arm64: Unwind and dump nVHE hypervisor stacktrace

arch/arm64/include/asm/kvm_asm.h | 1 +
arch/arm64/include/asm/stacktrace.h | 58 +++++++++--
arch/arm64/kernel/stacktrace.c | 151 +++++++++++++++++++++++-----
arch/arm64/kvm/arm.c | 34 +++++++
arch/arm64/kvm/handle_exit.c | 4 +
arch/arm64/kvm/hyp/nvhe/Makefile | 3 +-
arch/arm64/kvm/hyp/nvhe/host.S | 9 +-
arch/arm64/kvm/hyp/nvhe/setup.c | 11 ++
arch/arm64/kvm/hyp/nvhe/switch.c | 4 +
9 files changed, 231 insertions(+), 44 deletions(-)

base-commit: f2906aa863381afb0015a9eb7fefad885d4e5a56

 \ /
  Last update: 2022-06-07 18:52    [W:0.135 / U:1.376 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site