• Marc Zyngier's avatar
    Merge branch kvm-arm64/nvhe-stacktrace into kvmarm-master/next · 0982c8d8
    Marc Zyngier authored
    * kvm-arm64/nvhe-stacktrace: (27 commits)
      : .
      : Add an overflow stack to the nVHE EL2 code, allowing
      : the implementation of an unwinder, courtesy of
      : Kalesh Singh. From the cover letter (slightly edited):
      :
      : "nVHE has two modes of operation: protected (pKVM) and unprotected
      : (conventional nVHE). Depending on the mode, a slightly different approach
      : is used to dump the hypervisor stacktrace but the core unwinding logic
      : remains the same.
      :
      : * Protected nVHE (pKVM) stacktraces:
      :
      : In protected nVHE mode, the host cannot directly access hypervisor memory.
      :
      : The hypervisor stack unwinding happens in EL2 and is made accessible to
      : the host via a shared buffer. Symbolizing and printing the stacktrace
      : addresses is delegated to the host and happens in EL1.
      :
      : * Non-protected (Conventional) nVHE stacktraces:
      :
      : In non-protected mode, the host is able to directly access the hypervisor
      : stack pages.
      :
      : The hypervisor stack unwinding and dumping of the stacktrace is performed
      : by the host in EL1, as this avoids the memory overhead of setting up
      : shared buffers between the host and hypervisor."
      :
      : Additional patches from Oliver Upton and Marc Zyngier, tidying up
      : the initial series.
      : .
      arm64: Update 'unwinder howto'
      KVM: arm64: Don't open code ARRAY_SIZE()
      KVM: arm64: Move nVHE-only helpers into kvm/stacktrace.c
      KVM: arm64: Make unwind()/on_accessible_stack() per-unwinder functions
      KVM: arm64: Move nVHE stacktrace unwinding into its own compilation unit
      KVM: arm64: Move PROTECTED_NVHE_STACKTRACE around
      KVM: arm64: Introduce pkvm_dump_backtrace()
      KVM: arm64: Implement protected nVHE hyp stack unwinder
      KVM: arm64: Save protected-nVHE (pKVM) hyp stacktrace
      KVM: arm64: Stub implementation of pKVM HYP stack unwinder
      KVM: arm64: Allocate shared pKVM hyp stacktrace buffers
      KVM: arm64: Add PROTECTED_NVHE_STACKTRACE Kconfig
      KVM: arm64: Introduce hyp_dump_backtrace()
      KVM: arm64: Implement non-protected nVHE hyp stack unwinder
      KVM: arm64: Prepare non-protected nVHE hypervisor stacktrace
      KVM: arm64: Stub implementation of non-protected nVHE HYP stack unwinder
      KVM: arm64: On stack overflow switch to hyp overflow_stack
      arm64: stacktrace: Add description of stacktrace/common.h
      arm64: stacktrace: Factor out common unwind()
      arm64: stacktrace: Handle frame pointer from different address spaces
      ...
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    0982c8d8
Makefile 4.06 KB