[PATCH v6 5/7] arm64: kvm: route synchronous external abort exceptions to el2
From: gengdongjiu <hidden>
Date: 2017-09-14 11:13:37
Also in:
kvm, kvmarm, linux-acpi, lkml
From: gengdongjiu <hidden>
Date: 2017-09-14 11:13:37
Also in:
kvm, kvmarm, linux-acpi, lkml
James, On 2017/9/8 0:31, James Morse wrote:
KVM already handles external aborts from lower exception levels, no more work needs doing for TEA.
If it is firmware first solution, that is SCR_EL3.EA=1, all SError interrupt and synchronous External Abort exceptions are taken to EL3, so EL3 firmware will handle it, KVM no needs to handle it. HCR_EL3.TEA is only for EL3 to check its value to decide to jump to hypervisor or kernel.
What happens when a guest access the RAS-Error-Record registers? Before we can set HCR_EL2.TERR I think we need to add some minimal emulation for the registers it traps. Most of them should be RAZ/WI, so it should be straightforward. (I think KVMs default is to emulate an undef for unknown traps).
Today I added the support to do some minimal emulation for RAS-Error-Record registers, thanks for the good suggestion.
Eventually we will want to back this with a page of memory that lets Qemu/kvmtool configure what the guest can see. (i.e. the emulated machine's errors for kernel-first handling.)