From: Dongjiu Geng <gengdongjiu@huawei.com>
To: <christoffer.dall@linaro.org>, <marc.zyngier@arm.com>,
<rkrcmar@redhat.com>, <linux@armlinux.org.uk>,
<catalin.marinas@arm.com>, <will.deacon@arm.com>,
<lenb@kernel.org>, <robert.moore@intel.com>, <lv.zheng@intel.com>,
<mark.rutland@arm.com>, <james.morse@arm.com>,
<xiexiuqi@huawei.com>, <cov@codeaurora.org>,
<david.daney@cavium.com>, <suzuki.poulose@arm.com>,
<stefan@hello-penguin.com>, <Dave.Martin@arm.com>,
<kristina.martsenko@arm.com>, <wangkefeng.wang@huawei.com>,
<tbaicar@codeaurora.org>, <ard.biesheuvel@linaro.org>,
<mingo@kernel.org>, <bp@suse.de>, <shiju.jose@huawei.com>,
<zjzhang@codeaurora.org>, <linux-arm-kernel@lists.infradead.org>,
<kvmarm@lists.cs.columbia.edu>, <kvm@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, <linux-acpi@vger.kernel.org>,
<devel@acpica.org>, <mst@redhat.com>, <john.garry@huawei.com>,
<jonathan.cameron@huawei.com>,
<shameerali.kolothum.thodi@huawei.com>,
<huangdaode@hisilicon.com>, <wangzhou1@hisilicon.com>
Cc: <huangshaoyu@huawei.com>, <wuquanming@huawei.com>,
<linuxarm@huawei.com>, <gengdongjiu@huawei.com>,
<zhengqiang10@huawei.com>
Subject: [PATCH v6 2/7] KVM: arm64: Save ESR_EL2 on guest SError
Date: Mon, 28 Aug 2017 18:38:16 +0800 [thread overview]
Message-ID: <1503916701-13516-3-git-send-email-gengdongjiu@huawei.com> (raw)
In-Reply-To: <1503916701-13516-1-git-send-email-gengdongjiu@huawei.com>
From: James Morse <james.morse@arm.com>
When we exit a guest due to an SError the vcpu fault info isn't updated
with the ESR. Today this is only done for traps.
The v8.2 RAS Extensions define ISS values for SError. Update the vcpu's
fault_info with the ESR on SError so that handle_exit() can determine
if this was a RAS SError and decode its severity.
Signed-off-by: James Morse <james.morse@arm.com>
---
arch/arm64/kvm/hyp/switch.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/kvm/hyp/switch.c b/arch/arm64/kvm/hyp/switch.c
index 945e79c641c4..c6f17c7675ad 100644
--- a/arch/arm64/kvm/hyp/switch.c
+++ b/arch/arm64/kvm/hyp/switch.c
@@ -226,13 +226,20 @@ static bool __hyp_text __translate_far_to_hpfar(u64 far, u64 *hpfar)
return true;
}
+static void __hyp_text __populate_fault_info_esr(struct kvm_vcpu *vcpu)
+{
+ vcpu->arch.fault.esr_el2 = read_sysreg_el2(esr);
+}
+
static bool __hyp_text __populate_fault_info(struct kvm_vcpu *vcpu)
{
- u64 esr = read_sysreg_el2(esr);
- u8 ec = ESR_ELx_EC(esr);
+ u8 ec;
+ u64 esr;
u64 hpfar, far;
- vcpu->arch.fault.esr_el2 = esr;
+ __populate_fault_info_esr(vcpu);
+ esr = vcpu->arch.fault.esr_el2;
+ ec = ESR_ELx_EC(esr);
if (ec != ESR_ELx_EC_DABT_LOW && ec != ESR_ELx_EC_IABT_LOW)
return true;
@@ -321,6 +328,8 @@ int __hyp_text __kvm_vcpu_run(struct kvm_vcpu *vcpu)
*/
if (exit_code == ARM_EXCEPTION_TRAP && !__populate_fault_info(vcpu))
goto again;
+ else if (ARM_EXCEPTION_CODE(exit_code) == ARM_EXCEPTION_EL1_SERROR)
+ __populate_fault_info_esr(vcpu);
if (static_branch_unlikely(&vgic_v2_cpuif_trap) &&
exit_code == ARM_EXCEPTION_TRAP) {
--
2.14.1
next prev parent reply other threads:[~2017-08-28 10:19 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-28 10:38 [PATCH v6 0/7] Add RAS virtualization support for SEA/SEI notification type in KVM Dongjiu Geng
2017-08-28 10:38 ` [PATCH v6 1/7] arm64: cpufeature: Detect CPU RAS Extentions Dongjiu Geng
2017-08-31 17:44 ` James Morse
2017-09-04 11:20 ` gengdongjiu
2017-08-28 10:38 ` Dongjiu Geng [this message]
2017-08-28 10:38 ` [PATCH v6 3/7] acpi: apei: remove the unused code Dongjiu Geng
2017-08-31 17:50 ` James Morse
2017-09-04 11:43 ` gengdongjiu
2017-09-08 18:17 ` James Morse
2017-09-11 12:04 ` gengdongjiu
2017-09-14 12:35 ` James Morse
2017-09-14 12:51 ` gengdongjiu
2017-08-28 10:38 ` [PATCH v6 4/7] arm64: kvm: support user space to query RAS extension feature Dongjiu Geng
2017-08-31 18:04 ` James Morse
2017-09-05 7:18 ` gengdongjiu
2017-09-07 16:31 ` James Morse
2017-08-28 10:38 ` [PATCH v6 5/7] arm64: kvm: route synchronous external abort exceptions to el2 Dongjiu Geng
2017-09-07 16:31 ` James Morse
2017-09-13 8:12 ` gengdongjiu
2017-09-14 11:12 ` gengdongjiu
2017-09-14 12:36 ` James Morse
2017-10-16 11:44 ` James Morse
2017-10-16 13:44 ` gengdongjiu
2017-08-28 10:38 ` [PATCH v6 6/7] KVM: arm64: allow get exception information from userspace Dongjiu Geng
2017-09-07 16:30 ` James Morse
2017-09-13 7:32 ` gengdongjiu
2017-09-14 13:00 ` James Morse
2017-09-18 13:36 ` gengdongjiu
2017-09-22 16:39 ` James Morse
2017-09-21 7:55 ` gengdongjiu
2017-09-22 16:51 ` James Morse
2017-09-27 11:07 ` gengdongjiu
2017-09-27 15:37 ` gengdongjiu
2017-10-06 17:31 ` James Morse
2017-10-19 7:49 ` gengdongjiu
2017-08-28 10:38 ` [PATCH v6 7/7] arm64: kvm: handle SEI notification and pass the virtual syndrome Dongjiu Geng
2017-08-31 17:43 ` [PATCH v6 0/7] Add RAS virtualization support for SEA/SEI notification type in KVM James Morse
2017-09-04 11:10 ` gengdongjiu
2017-09-07 16:32 ` James Morse
2017-09-06 11:19 ` Peter Maydell
2017-09-06 11:29 ` gengdongjiu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1503916701-13516-3-git-send-email-gengdongjiu@huawei.com \
--to=gengdongjiu@huawei.com \
--cc=Dave.Martin@arm.com \
--cc=ard.biesheuvel@linaro.org \
--cc=bp@suse.de \
--cc=catalin.marinas@arm.com \
--cc=christoffer.dall@linaro.org \
--cc=cov@codeaurora.org \
--cc=david.daney@cavium.com \
--cc=devel@acpica.org \
--cc=huangdaode@hisilicon.com \
--cc=huangshaoyu@huawei.com \
--cc=james.morse@arm.com \
--cc=john.garry@huawei.com \
--cc=jonathan.cameron@huawei.com \
--cc=kristina.martsenko@arm.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=linuxarm@huawei.com \
--cc=lv.zheng@intel.com \
--cc=marc.zyngier@arm.com \
--cc=mark.rutland@arm.com \
--cc=mingo@kernel.org \
--cc=mst@redhat.com \
--cc=rkrcmar@redhat.com \
--cc=robert.moore@intel.com \
--cc=shameerali.kolothum.thodi@huawei.com \
--cc=shiju.jose@huawei.com \
--cc=stefan@hello-penguin.com \
--cc=suzuki.poulose@arm.com \
--cc=tbaicar@codeaurora.org \
--cc=wangkefeng.wang@huawei.com \
--cc=wangzhou1@hisilicon.com \
--cc=will.deacon@arm.com \
--cc=wuquanming@huawei.com \
--cc=xiexiuqi@huawei.com \
--cc=zhengqiang10@huawei.com \
--cc=zjzhang@codeaurora.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).