[PATCH V3 10/10] arm64: KVM: add guest SEA support
From: Baicar, Tyler <hidden>
Date: 2016-10-14 21:58:29
Also in:
kvmarm, linux-acpi, linux-efi, lkml
On 10/14/2016 2:38 AM, Punit Agrawal wrote:
"Baicar, Tyler" [off-list ref] writes:quoted
Hello Punit, On 10/13/2016 7:14 AM, Punit Agrawal wrote:quoted
Hi Tyler, I know I've had my last comment already ;), but I thought I'd rather raise the question than stay confused... Tyler Baicar [off-list ref] writes:quoted
Currently external aborts are unsupported by the guest abort handling. Add handling for SEAs so that the host kernel reports SEAs which occur in the guest kernel. Signed-off-by: Tyler Baicar <redacted> --- arch/arm/include/asm/kvm_arm.h | 1 + arch/arm/include/asm/system_misc.h | 5 +++++ arch/arm/kvm/mmu.c | 15 +++++++++++++-- arch/arm64/include/asm/kvm_arm.h | 1 + arch/arm64/include/asm/system_misc.h | 2 ++ arch/arm64/mm/fault.c | 13 +++++++++++++ 6 files changed, 35 insertions(+), 2 deletions(-)
[...]
quoted
quoted
quoted
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c index 81cb7ad..d714432 100644 --- a/arch/arm64/mm/fault.c +++ b/arch/arm64/mm/fault.c@@ -597,6 +597,19 @@ static const char *fault_name(unsigned int esr) } /* + * Handle Synchronous External Aborts that occur in a guest kernel. + */ +int handle_guest_sea(unsigned long addr, unsigned int esr) +{ + atomic_notifier_call_chain(&sea_handler_chain, 0, NULL); + + pr_err("Synchronous External Abort: %s (0x%08x) at 0x%016lx\n", + fault_name(esr), esr, addr); + + return 0; +}Don't we need to pass the abort to the guest?This requires some infrastructure to implement virtual "ACPI platform error interface" to expose the details of the abort to the guest. This patchset does not cover that and focuses on feature parity with other architectures that support APEI. There are discussions among Linaro partners about how this can be achieved in the long term, but that work is outside the scope of this patchset. This patch will ensure that if a guest encounters one of these errors then it will be reported before getting killed. Before this patch we would just get an unsupported FSC print out and then the guest would be killed.OK. I think we might be talking about different things though. I am referring to the injection of the synchronous external abort into the guest - similar to what's been done for prefetch abort in the kvm_guest_handle_abort. Maybe there is no benefit in passing the abort to the guest. In that case, can you please add a comment where you handle external abort (FSC_EXTABT) in kvm_guest_handle_abort.
Yes, I will add a comment there in the next version. Thanks, Tyler -- Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc. Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.