[PATCH] KVM: arm/arm64: Fix external abort type matching

2017-10-25 Thread Dongjiu Geng
FSC_SEA_TTW2 FSC_SEA_TTW3 0x18FSC_SECC 0x1cFSC_SECC_TTW0 FSC_SECC_TTW1 FSC_SECC_TTW2 FSC_SECC_TTW3 Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> --- As shown below code: The kvm_vcpu_trap_get_fault_type() only return {I,D}FSC bit[5]:bit[2], not the whole {I,D}FSC, but FSC_SE

[PATCH] KVM: arm/arm64: Fix external abort type matching

2017-10-25 Thread Dongjiu Geng
FSC_SEA_TTW2 FSC_SEA_TTW3 0x18FSC_SECC 0x1cFSC_SECC_TTW0 FSC_SECC_TTW1 FSC_SECC_TTW2 FSC_SECC_TTW3 Signed-off-by: Dongjiu Geng --- As shown below code: The kvm_vcpu_trap_get_fault_type() only return {I,D}FSC bit[5]:bit[2], not the whole {I,D}FSC, but FSC_SEA_TTWx and FSC_SECC_TTWx

[RESEND PATCH v7] acpi: apei: remove the unused dead-code for SEA/NMI notification type

2017-10-22 Thread Dongjiu Geng
the unnecessary handling when CONFIG_ACPI_APEI_SEA is not defined. For the NMI notification, it has the same issue as SEA notification, so also remove the unused dead-code for it. Cc: Tyler Baicar <tbai...@codeaurora.org> Cc: James Morse <james.mo...@arm.com> Signed-off-by: Dongjiu Ge

[RESEND PATCH v7] acpi: apei: remove the unused dead-code for SEA/NMI notification type

2017-10-22 Thread Dongjiu Geng
the unnecessary handling when CONFIG_ACPI_APEI_SEA is not defined. For the NMI notification, it has the same issue as SEA notification, so also remove the unused dead-code for it. Cc: Tyler Baicar Cc: James Morse Signed-off-by: Dongjiu Geng Tested-by: Tyler Baicar Reviewed-by: Borislav Petkov

[PATCH v7] acpi: apei: remove the unused dead-code for SEA/NMI notification type

2017-10-20 Thread Dongjiu Geng
the unnecessary handling when CONFIG_ACPI_APEI_SEA is not defined. For the NMI notification, it has the same issue as SEA notification, so also remove the unused dead-code for it. Cc: Tyler Baicar <tbai...@codeaurora.org> Cc: James Morse <james.mo...@arm.com> Signed-off-by: Dongjiu Ge

[PATCH v7] acpi: apei: remove the unused dead-code for SEA/NMI notification type

2017-10-20 Thread Dongjiu Geng
the unnecessary handling when CONFIG_ACPI_APEI_SEA is not defined. For the NMI notification, it has the same issue as SEA notification, so also remove the unused dead-code for it. Cc: Tyler Baicar Cc: James Morse Signed-off-by: Dongjiu Geng Tested-by: Tyler Baicar Signed-off-by: Borislav Petkov

[PATCH v6] acpi: apei: remove the unused dead-code for SEA/NMI notification type

2017-10-20 Thread Dongjiu Geng
the unnecessary handling when CONFIG_ACPI_APEI_SEA is not defined. For the NMI notification, it has the same issue as SEA notification, so also remove the unused dead-code for it. Cc: Tyler Baicar <tbai...@codeaurora.org> Cc: James Morse <james.mo...@arm.com> Signed-off-by: Dongjiu Ge

[PATCH v6] acpi: apei: remove the unused dead-code for SEA/NMI notification type

2017-10-20 Thread Dongjiu Geng
the unnecessary handling when CONFIG_ACPI_APEI_SEA is not defined. For the NMI notification, it has the same issue as SEA notification, so also remove the unused dead-code for it. Cc: Tyler Baicar Cc: James Morse Signed-off-by: Dongjiu Geng Tested-by: Tyler Baicar Signed-off-by: Borislav Petkov

[PATCH RESEND v2] arm/arm64: KVM: set right LR register value for 32 bit guest when inject abort

2017-10-17 Thread Dongjiu Geng
of: A32 T32 Undefined Instruction +4+2 Prefetch Abort +4+4 Data Abort +8+8 IRQ or FIQ +4+4 Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> Tested-by: Haibin

[PATCH RESEND v2] arm/arm64: KVM: set right LR register value for 32 bit guest when inject abort

2017-10-17 Thread Dongjiu Geng
of: A32 T32 Undefined Instruction +4+2 Prefetch Abort +4+4 Data Abort +8+8 IRQ or FIQ +4+4 Signed-off-by: Dongjiu Geng Tested-by: Haibin Zhang --- Have tested in both

[PATCH v7 3/4] arm64: kvm: Set Virtual SError Exception Syndrome for guest

2017-10-17 Thread Dongjiu Geng
switch, restore this value to VSESR_EL2 only when HCR_EL2.VSE is set. This value no need to be saved because it is stale vale when guest exit. Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> Signed-off-by: Quanming Wu <wuquanm...@huawei.com> [Set an impdef ESR for Virtual-SError

[PATCH v7 3/4] arm64: kvm: Set Virtual SError Exception Syndrome for guest

2017-10-17 Thread Dongjiu Geng
switch, restore this value to VSESR_EL2 only when HCR_EL2.VSE is set. This value no need to be saved because it is stale vale when guest exit. Signed-off-by: Dongjiu Geng Signed-off-by: Quanming Wu [Set an impdef ESR for Virtual-SError] Signed-off-by: James Morse --- arch/arm64/include/asm

[PATCH v7 4/4] arm64: kvm: handle SEI notification for guest

2017-10-17 Thread Dongjiu Geng
the address recorded by APEI table is not accurate, so can not identify the address to hwpoison memory and can not notify guest to do the recovery, so at the same time, let user space specify a valid ESR and inject virtual SError. Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> Sign

[PATCH v7 4/4] arm64: kvm: handle SEI notification for guest

2017-10-17 Thread Dongjiu Geng
the address recorded by APEI table is not accurate, so can not identify the address to hwpoison memory and can not notify guest to do the recovery, so at the same time, let user space specify a valid ESR and inject virtual SError. Signed-off-by: Dongjiu Geng Signed-off-by: Quanming Wu --- arch/arm64

[PATCH v7 0/4] Add RAS virtualization support

2017-10-17 Thread Dongjiu Geng
to software on taking a virtual SError interrupt exception. By default specify this syndrome value to IMPLEMENTATION DEFINED, because all-zero means 'RAS error: Uncategorized' instead of 'no valid ISS'. Dongjiu Geng (4): arm64: kvm: route synchronous external abort exceptions to EL2 arm64: kvm

[PATCH v7 0/4] Add RAS virtualization support

2017-10-17 Thread Dongjiu Geng
to software on taking a virtual SError interrupt exception. By default specify this syndrome value to IMPLEMENTATION DEFINED, because all-zero means 'RAS error: Uncategorized' instead of 'no valid ISS'. Dongjiu Geng (4): arm64: kvm: route synchronous external abort exceptions to EL2 arm64: kvm

[PATCH v7 2/4] arm64: kvm: Introduce KVM_ARM_SET_SERROR_ESR ioctl

2017-10-17 Thread Dongjiu Geng
for a generic API for all KVM architectures that will allow us to do something like this. Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> Signed-off-by: Quanming Wu <wuquanm...@huawei.com> --- Documentation/virtual/kvm/api.txt | 11 +++ arch/arm/include/asm/kvm_host.h | 1

[PATCH v7 2/4] arm64: kvm: Introduce KVM_ARM_SET_SERROR_ESR ioctl

2017-10-17 Thread Dongjiu Geng
for a generic API for all KVM architectures that will allow us to do something like this. Signed-off-by: Dongjiu Geng Signed-off-by: Quanming Wu --- Documentation/virtual/kvm/api.txt | 11 +++ arch/arm/include/asm/kvm_host.h | 1 + arch/arm/kvm/guest.c | 9 + arch

[PATCH v7 1/4] arm64: kvm: route synchronous external abort exceptions to EL2

2017-10-17 Thread Dongjiu Geng
_EL1 and ERRSELR_EL1 are zero. Then, the others ERX* registers are RAZ/WI. Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> --- arch/arm64/include/asm/kvm_arm.h | 2 ++ arch/arm64/include/asm/kvm_emulate.h | 7 +++ arch/arm64/include/asm/kvm_host.h| 2 ++ arch/arm64/i

[PATCH v7 1/4] arm64: kvm: route synchronous external abort exceptions to EL2

2017-10-17 Thread Dongjiu Geng
_EL1 and ERRSELR_EL1 are zero. Then, the others ERX* registers are RAZ/WI. Signed-off-by: Dongjiu Geng --- arch/arm64/include/asm/kvm_arm.h | 2 ++ arch/arm64/include/asm/kvm_emulate.h | 7 +++ arch/arm64/include/asm/kvm_host.h| 2 ++ arch/arm64/include/asm/sysreg.h

[PATCH v5 2/2] acpi: apei: Add SEI notification type support for ARMv8

2017-10-17 Thread Dongjiu Geng
, EL3 firmware needs to identify the address to a invalid value. Cc: Borislav Petkov <b...@suse.de> Cc: James Morse <james.mo...@arm.com> Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> Tested-by: Tyler Baicar <tbai...@codeaurora.org> Tested-by: Dongjiu Geng <gengdo

[PATCH v5 2/2] acpi: apei: Add SEI notification type support for ARMv8

2017-10-17 Thread Dongjiu Geng
, EL3 firmware needs to identify the address to a invalid value. Cc: Borislav Petkov Cc: James Morse Signed-off-by: Dongjiu Geng Tested-by: Tyler Baicar Tested-by: Dongjiu Geng --- arch/arm64/mm/fault.c | 4 +-- drivers/acpi/apei/Kconfig | 15 ++ drivers/acpi/apei/ghes.c | 71

[PATCH v5 1/2] acpi: apei: remove the unused dead-code for SEA/NMI notification type

2017-10-17 Thread Dongjiu Geng
the unnecessary handling when CONFIG_ACPI_APEI_SEA is not defined. For the NMI notification, it has the same issue as SEA notification, so also remove the unused dead-code for it. Cc: Tyler Baicar <tbai...@codeaurora.org> Cc: James Morse <james.mo...@arm.com> Signed-off-by: Dongjiu Ge

[PATCH v5 1/2] acpi: apei: remove the unused dead-code for SEA/NMI notification type

2017-10-17 Thread Dongjiu Geng
the unnecessary handling when CONFIG_ACPI_APEI_SEA is not defined. For the NMI notification, it has the same issue as SEA notification, so also remove the unused dead-code for it. Cc: Tyler Baicar Cc: James Morse Signed-off-by: Dongjiu Geng --- drivers/acpi/apei/ghes.c | 33

[PATCH v2] arm/arm64: KVM: set right LR register value for 32 bit guest when inject abort

2017-10-16 Thread Dongjiu Geng
of: A32 T32 Undefined Instruction +4+2 Prefetch Abort +4+4 Data Abort +8+8 IRQ or FIQ +4+4 Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> Tested-by: Haibin

[PATCH v2] arm/arm64: KVM: set right LR register value for 32 bit guest when inject abort

2017-10-16 Thread Dongjiu Geng
of: A32 T32 Undefined Instruction +4+2 Prefetch Abort +4+4 Data Abort +8+8 IRQ or FIQ +4+4 Signed-off-by: Dongjiu Geng Tested-by: Haibin Zhang --- Note: now only test

[PATCH v4 2/2] acpi: apei: Add SEI notification type support for ARMv8

2017-10-15 Thread Dongjiu Geng
, EL3 firmware needs to identify the address to a invalid value. Cc: Borislav Petkov <b...@suse.de> Cc: James Morse <james.mo...@arm.com> Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> Tested-by: Tyler Baicar <tbai...@codeaurora.org> Tested-by: Dongjiu Geng <gengdo

[PATCH v4 1/2] acpi: apei: remove the unused dead-code for SEA/NMI notification type

2017-10-15 Thread Dongjiu Geng
s.mo...@arm.com> Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> --- drivers/acpi/apei/ghes.c | 33 + 1 file changed, 5 insertions(+), 28 deletions(-) diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c index d661d45..3eee30a 100644 --- a/driver

[PATCH v4 1/2] acpi: apei: remove the unused dead-code for SEA/NMI notification type

2017-10-15 Thread Dongjiu Geng
the unnecessary handling when CONFIG_ACPI_APEI_SEA is not defined. For the NMI notification, it has the same issue as SEA notification, so also remove the unused dead-code for it. Cc: Borislav Petkov Cc: Tyler Baicar Cc: James Morse Signed-off-by: Dongjiu Geng --- drivers/acpi/apei/ghes.c | 33

[PATCH v4 2/2] acpi: apei: Add SEI notification type support for ARMv8

2017-10-15 Thread Dongjiu Geng
, EL3 firmware needs to identify the address to a invalid value. Cc: Borislav Petkov Cc: James Morse Signed-off-by: Dongjiu Geng Tested-by: Tyler Baicar Tested-by: Dongjiu Geng --- arch/arm64/mm/fault.c | 4 +-- drivers/acpi/apei/Kconfig | 15 +++ drivers/acpi/apei/ghes.c | 63

[PATCH v3 2/2] acpi: apei: Add SEI notification type support for ARMv8

2017-10-15 Thread Dongjiu Geng
, EL3 firmware needs to identify the address to a invalid value. Cc: Borislav Petkov <b...@suse.de> Cc: James Morse <james.mo...@arm.com> Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> Tested-by: Tyler Baicar <tbai...@codeaurora.org> Tested-by: Dongjiu Geng <gengdo

[PATCH v3 2/2] acpi: apei: Add SEI notification type support for ARMv8

2017-10-15 Thread Dongjiu Geng
, EL3 firmware needs to identify the address to a invalid value. Cc: Borislav Petkov Cc: James Morse Signed-off-by: Dongjiu Geng Tested-by: Tyler Baicar Tested-by: Dongjiu Geng --- arch/arm64/mm/fault.c | 4 +-- drivers/acpi/apei/Kconfig | 15 +++ drivers/acpi/apei/ghes.c | 63

[PATCH v3 1/2] acpi: apei: remove the unused dead-code for SEA/NMI notification type

2017-10-15 Thread Dongjiu Geng
s.mo...@arm.com> Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> --- drivers/acpi/apei/ghes.c | 33 + 1 file changed, 5 insertions(+), 28 deletions(-) diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c index d661d45..3eee30a 100644 --- a/driver

[PATCH v3 1/2] acpi: apei: remove the unused dead-code for SEA/NMI notification type

2017-10-15 Thread Dongjiu Geng
the unnecessary handling when CONFIG_ACPI_APEI_SEA is not defined. For the NMI notification, it has the same issue as SEA notification, so also remove the unused dead-code for it. Cc: Borislav Petkov Cc: Tyler Baicar Cc: James Morse Signed-off-by: Dongjiu Geng --- drivers/acpi/apei/ghes.c | 33

[PATCH] arm64: KVM: set right LR register value for 32 bit guest when inject abort

2017-10-12 Thread Dongjiu Geng
Instruction +4+2 Prefetch Abort +4+4 Data Abort +8+8 IRQ or FIQ +4+4 Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> Signed-off-by: Haibin Zhang <zhanghaib...@huawei.com> ---

[PATCH] arm64: KVM: set right LR register value for 32 bit guest when inject abort

2017-10-12 Thread Dongjiu Geng
Instruction +4+2 Prefetch Abort +4+4 Data Abort +8+8 IRQ or FIQ +4+4 Signed-off-by: Dongjiu Geng Signed-off-by: Haibin Zhang --- For example, to the undefined instruction injection: 1. Guest OS call

[PATCH v3 2/2] acpi: apei: Add SEI notification type support for ARMv8

2017-09-28 Thread Dongjiu Geng
the address to a invalid value. Cc: Stephen Boyd <sb...@codeaurora.org> Cc: James Morse <james.mo...@arm.com> Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> Tested-by: Tyler Baicar <tbai...@codeaurora.org> --- change since v2: 1. remove the dependency to ACPI_APEI_S

[PATCH v3 1/2] acpi: apei: remove the unused dead-code for SEA notification type

2017-09-28 Thread Dongjiu Geng
t; Cc: Tyler Baicar <tbai...@codeaurora.org> Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> --- v2->v3: 1. remove the fault_ipa address If ESR_ELx.DFSC is Synchronous External Abort on memory access(0b01), the hpfar_el2's value will be UNKNOWN, so this value is not accu

[PATCH v3 2/2] acpi: apei: Add SEI notification type support for ARMv8

2017-09-28 Thread Dongjiu Geng
the address to a invalid value. Cc: Stephen Boyd Cc: James Morse Signed-off-by: Dongjiu Geng Tested-by: Tyler Baicar --- change since v2: 1. remove the dependency to ACPI_APEI_SEA/ACPI_APEI_SEI for NMI --- arch/arm64/mm/fault.c | 4 ++-- drivers/acpi/apei/Kconfig | 15

[PATCH v3 1/2] acpi: apei: remove the unused dead-code for SEA notification type

2017-09-28 Thread Dongjiu Geng
the unnecessary handling when CONFIG_ACPI_APEI_SEA is not defined. In the firmware-first RAS solution, the IPA fault address recorded by hpfar_el2 may be UNKNOWN, and also current code does not use it, so remove it. Cc: Stephen Boyd Cc: James Morse Cc: Tyler Baicar Signed-off-by: Dongjiu Geng

[PATCH v2] acpi: apei: Add SEI notification type support for ARMv8

2017-09-14 Thread Dongjiu Geng
the address to a invalid value. Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> --- arch/arm64/Kconfig| 4 ++-- arch/arm64/mm/fault.c | 4 ++-- drivers/acpi/apei/Kconfig | 15 + drivers/acpi/apei/ghes.c | 56 +++ i

[PATCH v2] acpi: apei: Add SEI notification type support for ARMv8

2017-09-14 Thread Dongjiu Geng
the address to a invalid value. Signed-off-by: Dongjiu Geng --- arch/arm64/Kconfig| 4 ++-- arch/arm64/mm/fault.c | 4 ++-- drivers/acpi/apei/Kconfig | 15 + drivers/acpi/apei/ghes.c | 56 +++ include/acpi/ghes.h | 2

[PATCH v2] acpi: apei: remove the unused dead-code for SEA notification type

2017-09-13 Thread Dongjiu Geng
the unnecessary handling when CONFIG_ACPI_APEI_SEA is not defined. Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> --- It is ever discussed here: https://lkml.org/lkml/2017/9/8/623 --- drivers/acpi/apei/ghes.c | 14 -- 1 file changed, 14 deletions(-) diff --git a/drivers/acp

[PATCH v2] acpi: apei: remove the unused dead-code for SEA notification type

2017-09-13 Thread Dongjiu Geng
the unnecessary handling when CONFIG_ACPI_APEI_SEA is not defined. Signed-off-by: Dongjiu Geng --- It is ever discussed here: https://lkml.org/lkml/2017/9/8/623 --- drivers/acpi/apei/ghes.c | 14 -- 1 file changed, 14 deletions(-) diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi

[PATCH] arm64: KVM: Skip PSTATE.PAN reest at EL2 in non-VHE

2017-09-11 Thread Dongjiu Geng
PSTATE.PAN disables reading and/or writing to a userspace virtual address from EL1 in non-VHE or from EL2 in VHE. In non-VHE, there is no any userspace mapping at EL2, so no need to reest the PSTATE.PAN. Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> Signed-off-by: Haibin Zhang <

[PATCH] arm64: KVM: Skip PSTATE.PAN reest at EL2 in non-VHE

2017-09-11 Thread Dongjiu Geng
PSTATE.PAN disables reading and/or writing to a userspace virtual address from EL1 in non-VHE or from EL2 in VHE. In non-VHE, there is no any userspace mapping at EL2, so no need to reest the PSTATE.PAN. Signed-off-by: Dongjiu Geng Signed-off-by: Haibin Zhang --- arch/arm64/kvm/hyp/entry.S | 6

[PATCH] arm64: KVM: VHE: reset PSTATE.UAO when switch to host

2017-09-06 Thread Dongjiu Geng
will use the incorrect PSTATE.UAO. So check and reset the PSTATE.UAO when switching to host. Move the reset PSTATE.PAN on entry to EL2 together with PSTATE.UAO reset. Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> Signed-off-by: Haibin Zhang <zhanghaib...@huawei.com> Tested-by:

[PATCH] arm64: KVM: VHE: reset PSTATE.UAO when switch to host

2017-09-06 Thread Dongjiu Geng
will use the incorrect PSTATE.UAO. So check and reset the PSTATE.UAO when switching to host. Move the reset PSTATE.PAN on entry to EL2 together with PSTATE.UAO reset. Signed-off-by: Dongjiu Geng Signed-off-by: Haibin Zhang Tested-by: Dongjiu Geng --- arch/arm64/kvm/hyp/entry.S | 2 -- arch/arm64

[PATCH v6 6/7] KVM: arm64: allow get exception information from userspace

2017-08-28 Thread Dongjiu Geng
injection logic to userspace, when userspace injects the SEA exception to guest OS, it needs to specify the far_el1 value, so this patch gives the exception virtual address to userspace. change since v5: 1. modify some patch description Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> Sign

[PATCH v6 6/7] KVM: arm64: allow get exception information from userspace

2017-08-28 Thread Dongjiu Geng
injection logic to userspace, when userspace injects the SEA exception to guest OS, it needs to specify the far_el1 value, so this patch gives the exception virtual address to userspace. change since v5: 1. modify some patch description Signed-off-by: Dongjiu Geng Signed-off-by: Quanming Wu

[PATCH v6 5/7] arm64: kvm: route synchronous external abort exceptions to el2

2017-08-28 Thread Dongjiu Geng
bort is generated in the guest OS, it will trap to EL3 firmware, EL3 firmware will check the HCR_EL2.TEA value to decide to jump to hypervisor or host OS. Enabling HCR_EL2.TERR makes error record access from guest trap to EL2. change since v5: 1. modify some patch description Signed-off-by: Dongjiu Geng <g

[PATCH v6 5/7] arm64: kvm: route synchronous external abort exceptions to el2

2017-08-28 Thread Dongjiu Geng
bort is generated in the guest OS, it will trap to EL3 firmware, EL3 firmware will check the HCR_EL2.TEA value to decide to jump to hypervisor or host OS. Enabling HCR_EL2.TERR makes error record access from guest trap to EL2. change since v5: 1. modify some patch description Signed-off-by: Dongjiu

[PATCH v6 2/7] KVM: arm64: Save ESR_EL2 on guest SError

2017-08-28 Thread Dongjiu Geng
From: James Morse 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

[PATCH v6 2/7] KVM: arm64: Save ESR_EL2 on guest SError

2017-08-28 Thread Dongjiu Geng
From: James Morse 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

[PATCH v6 4/7] arm64: kvm: support user space to query RAS extension feature

2017-08-28 Thread Dongjiu Geng
. This patch adds support for querying the availability of this extension. change since v5: 1. modify some patch description Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> --- arch/arm64/kvm/reset.c | 3 +++ include/uapi/linux/kvm.h | 1 + 2 files changed, 4 insertions(+) diff --git a/arch

[PATCH v6 4/7] arm64: kvm: support user space to query RAS extension feature

2017-08-28 Thread Dongjiu Geng
. This patch adds support for querying the availability of this extension. change since v5: 1. modify some patch description Signed-off-by: Dongjiu Geng --- arch/arm64/kvm/reset.c | 3 +++ include/uapi/linux/kvm.h | 1 + 2 files changed, 4 insertions(+) diff --git a/arch/arm64/kvm/reset.c b/arch/arm64

[PATCH v6 3/7] acpi: apei: remove the unused code

2017-08-28 Thread Dongjiu Geng
: 1. remove the SEI notification type handling, because the SEI is asynchronous exception and the address is not accurate. so not call memory_failure() to handle it. Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> --- drivers/acpi/apei/ghes.c | 14 -- 1 file chang

[PATCH v6 3/7] acpi: apei: remove the unused code

2017-08-28 Thread Dongjiu Geng
: 1. remove the SEI notification type handling, because the SEI is asynchronous exception and the address is not accurate. so not call memory_failure() to handle it. Signed-off-by: Dongjiu Geng --- drivers/acpi/apei/ghes.c | 14 -- 1 file changed, 14 deletions(-) diff --git

[PATCH v6 0/7] Add RAS virtualization support for SEA/SEI notification type in KVM

2017-08-28 Thread Dongjiu Geng
SError. This syndrome value is set to the VSESR_EL2. VSESR_EL2 is a new ARMv8.2 RAS extensions register which provides the syndrome value reported to software on taking a virtual SError interrupt exception. Dongjiu Geng (5): acpi: apei: remove the unused code arm64: kvm: support user space

[PATCH v6 0/7] Add RAS virtualization support for SEA/SEI notification type in KVM

2017-08-28 Thread Dongjiu Geng
SError. This syndrome value is set to the VSESR_EL2. VSESR_EL2 is a new ARMv8.2 RAS extensions register which provides the syndrome value reported to software on taking a virtual SError interrupt exception. Dongjiu Geng (5): acpi: apei: remove the unused code arm64: kvm: support user space

[PATCH v6 7/7] arm64: kvm: handle SEI notification and pass the virtual syndrome

2017-08-28 Thread Dongjiu Geng
to software on taking a virtual SError interrupt exception. change since v5: 1. not call the memory_failure() to handle the SEI error 2. kvm classify the SError and decide how to do. 3. add code to deliver signal compatible to Non-KVM user. 4. correct some typo errors Signed-off-by: Dongjiu Geng

[PATCH v6 7/7] arm64: kvm: handle SEI notification and pass the virtual syndrome

2017-08-28 Thread Dongjiu Geng
to software on taking a virtual SError interrupt exception. change since v5: 1. not call the memory_failure() to handle the SEI error 2. kvm classify the SError and decide how to do. 3. add code to deliver signal compatible to Non-KVM user. 4. correct some typo errors Signed-off-by: Dongjiu Geng

[PATCH v6 1/7] arm64: cpufeature: Detect CPU RAS Extentions

2017-08-28 Thread Dongjiu Geng
From: Xie XiuQi ARM's v8.2 Extentions add support for Reliability, Availability and Serviceability (RAS). On CPUs with these extensions system software can use additional barriers to isolate errors and determine if faults are pending. Add cpufeature detection and a barrier

[PATCH v6 1/7] arm64: cpufeature: Detect CPU RAS Extentions

2017-08-28 Thread Dongjiu Geng
From: Xie XiuQi ARM's v8.2 Extentions add support for Reliability, Availability and Serviceability (RAS). On CPUs with these extensions system software can use additional barriers to isolate errors and determine if faults are pending. Add cpufeature detection and a barrier in the context-switch

[PATCH v11 6/6] target-arm: kvm64: Handle SError interrupt for the guest OS

2017-08-18 Thread Dongjiu Geng
the host VA to guest OS PA and record this error PA to HEST table. 2. set specified virtual SError syndrome and pass the value to KVM. Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> Signed-off-by: Quanming Wu <wuquanm...@huawei.com> --- linux-headers/linux/kvm.h | 1 + target/arm

[PATCH v11 6/6] target-arm: kvm64: Handle SError interrupt for the guest OS

2017-08-18 Thread Dongjiu Geng
the host VA to guest OS PA and record this error PA to HEST table. 2. set specified virtual SError syndrome and pass the value to KVM. Signed-off-by: Dongjiu Geng Signed-off-by: Quanming Wu --- linux-headers/linux/kvm.h | 1 + target/arm/internals.h| 1 + target/arm/kvm64.c| 28

[PATCH v11 1/6] ACPI: add APEI/HEST/CPER structures and macros

2017-08-18 Thread Dongjiu Geng
(1) Add related APEI/HEST table structures and macros, these definition refer to ACPI 6.1 and UEFI 2.6 spec. (2) Add generic error status block and CPER memory section definition, user space only handle memory section errors. Signed-off-by: Dongjiu Geng <gengdong...@huawei.

[PATCH v11 1/6] ACPI: add APEI/HEST/CPER structures and macros

2017-08-18 Thread Dongjiu Geng
(1) Add related APEI/HEST table structures and macros, these definition refer to ACPI 6.1 and UEFI 2.6 spec. (2) Add generic error status block and CPER memory section definition, user space only handle memory section errors. Signed-off-by: Dongjiu Geng --- include/hw/acpi/acpi-defs.h

[PATCH v11 4/6] target-arm: kvm64: detect guest RAS EXTENSION feature

2017-08-18 Thread Dongjiu Geng
check if kvm supports guest RAS EXTENSION. if so, set corresponding feature bit for vcpu. Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> --- linux-headers/linux/kvm.h | 1 + target/arm/cpu.h | 3 +++ target/arm/kvm64.c| 8 3 files changed, 12 insertions(+)

[PATCH v11 4/6] target-arm: kvm64: detect guest RAS EXTENSION feature

2017-08-18 Thread Dongjiu Geng
check if kvm supports guest RAS EXTENSION. if so, set corresponding feature bit for vcpu. Signed-off-by: Dongjiu Geng --- linux-headers/linux/kvm.h | 1 + target/arm/cpu.h | 3 +++ target/arm/kvm64.c| 8 3 files changed, 12 insertions(+) diff --git a/linux-headers

[PATCH v11 3/6] ACPI: build and enable APEI GHES in the Makefile and configuration

2017-08-18 Thread Dongjiu Geng
Add CONFIG_ACPI_APEI configuration in the Makefile and enable it in the arm-softmmu.mak Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> --- default-configs/arm-softmmu.mak | 1 + hw/acpi/Makefile.objs | 1 + 2 files changed, 2 insertions(+) diff --git a/default-confi

[PATCH v11 3/6] ACPI: build and enable APEI GHES in the Makefile and configuration

2017-08-18 Thread Dongjiu Geng
Add CONFIG_ACPI_APEI configuration in the Makefile and enable it in the arm-softmmu.mak Signed-off-by: Dongjiu Geng --- default-configs/arm-softmmu.mak | 1 + hw/acpi/Makefile.objs | 1 + 2 files changed, 2 insertions(+) diff --git a/default-configs/arm-softmmu.mak b/default-configs

[PATCH v11 5/6] target-arm: kvm64: handle SIGBUS signal for synchronous External Abort

2017-08-18 Thread Dongjiu Geng
, PSTATE, far_elx, elr_elx etc, when switch to guest OS, it will jump to the synchronous external abort vector table entry. Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> Signed-off-by: Quanming Wu <wuquanm...@huawei.com> --- include/sysemu/kvm.h | 2 +- linux-headers/asm

[PATCH v11 5/6] target-arm: kvm64: handle SIGBUS signal for synchronous External Abort

2017-08-18 Thread Dongjiu Geng
, PSTATE, far_elx, elr_elx etc, when switch to guest OS, it will jump to the synchronous external abort vector table entry. Signed-off-by: Dongjiu Geng Signed-off-by: Quanming Wu --- include/sysemu/kvm.h | 2 +- linux-headers/asm-arm64/kvm.h | 5 ++ target/arm/internals.h| 13

[PATCH v11 2/6] ACPI: Add APEI GHES Table Generation support

2017-08-18 Thread Dongjiu Geng
must acknowledges the error via Read Ack register. so user space must check the ack value to avoid read-write race condition. Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> --- hw/acpi/aml-build.c | 2 + hw/acpi/hest_ghes.c | 345 +

[PATCH v11 2/6] ACPI: Add APEI GHES Table Generation support

2017-08-18 Thread Dongjiu Geng
must acknowledges the error via Read Ack register. so user space must check the ack value to avoid read-write race condition. Signed-off-by: Dongjiu Geng --- hw/acpi/aml-build.c | 2 + hw/acpi/hest_ghes.c | 345 hw/arm/virt-acpi-bui

[PATCH v11 0/6] Add RAS virtualization support for armv8 SEA and SEI

2017-08-18 Thread Dongjiu Geng
ledges the error, check the ACK value */ (qemu) xp /1 0x785D0098 785d00f0: 0x /* After OSPM acknowledges the error, check the ACK value */ (qemu) xp /1 0x785D0098 0000785d00f0: 0x0001 Dongjiu Geng (6): ACPI: add APEI/HEST/CPER structures a

[PATCH v11 0/6] Add RAS virtualization support for armv8 SEA and SEI

2017-08-18 Thread Dongjiu Geng
ledges the error, check the ACK value */ (qemu) xp /1 0x785D0098 785d00f0: 0x /* After OSPM acknowledges the error, check the ACK value */ (qemu) xp /1 0x785D0098 0000785d00f0: 0x0001 Dongjiu Geng (6): ACPI: add APEI/HEST/CPER structures a

[PATCH v5 6/7] KVM: arm64: Allow get exception information from userspace

2017-08-18 Thread Dongjiu Geng
injection logic to userspace, when userspace injects the SEA exception to guest OS, it needs to specify the far_el1 value, so this patch give the exception virtual address to user space. Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> Signed-off-by: Quanming Wu <wuquanm...@h

[PATCH v5 6/7] KVM: arm64: Allow get exception information from userspace

2017-08-18 Thread Dongjiu Geng
injection logic to userspace, when userspace injects the SEA exception to guest OS, it needs to specify the far_el1 value, so this patch give the exception virtual address to user space. Signed-off-by: Dongjiu Geng Signed-off-by: Quanming Wu --- arch/arm64/include/uapi/asm/kvm.h | 5

[PATCH v5 3/7] acpi: apei: Add SEI notification type support for ARMv8

2017-08-18 Thread Dongjiu Geng
and CONFIG_ACPI_APEI_SEI do not defined. Expose one API ghes_notify_sex() to external, external modules can call this exposed APIs to parse and handling the SEA/SEI. Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> --- arch/arm64/mm/fault.c | 21 +++-- drivers/acpi/apei/K

[PATCH v5 3/7] acpi: apei: Add SEI notification type support for ARMv8

2017-08-18 Thread Dongjiu Geng
and CONFIG_ACPI_APEI_SEI do not defined. Expose one API ghes_notify_sex() to external, external modules can call this exposed APIs to parse and handling the SEA/SEI. Signed-off-by: Dongjiu Geng --- arch/arm64/mm/fault.c | 21 +++-- drivers/acpi/apei/Kconfig | 15

[PATCH v5 4/7] support user space to query RAS extension feature

2017-08-18 Thread Dongjiu Geng
this support Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> --- arch/arm64/kvm/reset.c | 3 +++ include/uapi/linux/kvm.h | 1 + 2 files changed, 4 insertions(+) diff --git a/arch/arm64/kvm/reset.c b/arch/arm64/kvm/reset.c index 3256b9228e75..b7313ee028e9 100644 --- a/arch/arm64/kvm/r

[PATCH v5 4/7] support user space to query RAS extension feature

2017-08-18 Thread Dongjiu Geng
this support Signed-off-by: Dongjiu Geng --- arch/arm64/kvm/reset.c | 3 +++ include/uapi/linux/kvm.h | 1 + 2 files changed, 4 insertions(+) diff --git a/arch/arm64/kvm/reset.c b/arch/arm64/kvm/reset.c index 3256b9228e75..b7313ee028e9 100644 --- a/arch/arm64/kvm/reset.c +++ b/arch/arm64/kvm

[PATCH v5 1/7] arm64: cpufeature: Detect CPU RAS Extentions

2017-08-18 Thread Dongjiu Geng
From: Xie XiuQi ARM's v8.2 Extentions add support for Reliability, Availability and Serviceability (RAS). On CPUs with these extensions system software can use additional barriers to isolate errors and determine if faults are pending. Add cpufeature detection and a barrier

[PATCH v5 1/7] arm64: cpufeature: Detect CPU RAS Extentions

2017-08-18 Thread Dongjiu Geng
From: Xie XiuQi ARM's v8.2 Extentions add support for Reliability, Availability and Serviceability (RAS). On CPUs with these extensions system software can use additional barriers to isolate errors and determine if faults are pending. Add cpufeature detection and a barrier in the context-switch

[PATCH v5 5/7] arm64: kvm: route synchronous external abort exceptions to el2

2017-08-18 Thread Dongjiu Geng
bort is generated in the guest OS, it will trap to EL3 firmware, firmware will be according to the HCR_EL2.TEA to decide to jump to hypervisor or host OS. In the guest OS, RAS error record access will trap to EL2. Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> --- arch/arm64/include/asm

[PATCH v5 5/7] arm64: kvm: route synchronous external abort exceptions to el2

2017-08-18 Thread Dongjiu Geng
bort is generated in the guest OS, it will trap to EL3 firmware, firmware will be according to the HCR_EL2.TEA to decide to jump to hypervisor or host OS. In the guest OS, RAS error record access will trap to EL2. Signed-off-by: Dongjiu Geng --- arch/arm64/include/asm/kvm_arm.h | 2 ++ arch/a

[PATCH v5 0/7] Add RAS virtualization support to SEA/SEI notification type

2017-08-18 Thread Dongjiu Geng
. Dongjiu Geng (5): acpi: apei: Add SEI notification type support for ARMv8 support user space to query RAS extension feature arm64: kvm: route synchronous external abort exceptions to el2 KVM: arm/arm64: Allow get exception syndrome and arm64: kvm: handle SEI notification and inject

[PATCH v5 0/7] Add RAS virtualization support to SEA/SEI notification type

2017-08-18 Thread Dongjiu Geng
. Dongjiu Geng (5): acpi: apei: Add SEI notification type support for ARMv8 support user space to query RAS extension feature arm64: kvm: route synchronous external abort exceptions to el2 KVM: arm/arm64: Allow get exception syndrome and arm64: kvm: handle SEI notification and inject

[PATCH v5 7/7] arm64: kvm: handle SEI notification and inject virtual SError

2017-08-18 Thread Dongjiu Geng
. VSESR_EL2 is a new RAS extensions register which provides the syndrome value reported to software on taking a virtual SError interrupt exception. Signed-off-by: Dongjiu Geng <gengdong...@huawei.com> Signed-off-by: Quanming Wu <wuquanm...@huawei.com> --- arch/arm/include/asm/kvm_host

[PATCH v5 7/7] arm64: kvm: handle SEI notification and inject virtual SError

2017-08-18 Thread Dongjiu Geng
. VSESR_EL2 is a new RAS extensions register which provides the syndrome value reported to software on taking a virtual SError interrupt exception. Signed-off-by: Dongjiu Geng Signed-off-by: Quanming Wu --- arch/arm/include/asm/kvm_host.h | 2 ++ arch/arm/kvm/guest.c | 5

[PATCH v5 2/7] KVM: arm64: Save ESR_EL2 on guest SError

2017-08-18 Thread Dongjiu Geng
From: James Morse 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

[PATCH v5 2/7] KVM: arm64: Save ESR_EL2 on guest SError

2017-08-18 Thread Dongjiu Geng
From: James Morse 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

[PATCH v4] acpi: apei: fix the wrong iteration of generic error status block

2017-08-17 Thread Dongjiu Geng
estatus iteration to properly increment using iteration macro, and correct the iteration termination condition because the status block data length only includes error data length. Convert the CPER estatus checking and printing iteration logic to use same macro. Signed-off-by: Dongjiu Geng <gengd

[PATCH v4] acpi: apei: fix the wrong iteration of generic error status block

2017-08-17 Thread Dongjiu Geng
estatus iteration to properly increment using iteration macro, and correct the iteration termination condition because the status block data length only includes error data length. Convert the CPER estatus checking and printing iteration logic to use same macro. Signed-off-by: Dongjiu Geng CC: Tyler

[PATCH v3] acpi: apei: fix the wrongly iterate generic error status block

2017-08-16 Thread Dongjiu Geng
estatus iteration to properly increment using acpi_hest_get_next, and correct the iteration termination condition because the status block data length only includes error data length. Clear the CPER estatus printing iteration logic to use same macro. Signed-off-by: Dongjiu Geng <gengdong...@huawei.

[PATCH v3] acpi: apei: fix the wrongly iterate generic error status block

2017-08-16 Thread Dongjiu Geng
estatus iteration to properly increment using acpi_hest_get_next, and correct the iteration termination condition because the status block data length only includes error data length. Clear the CPER estatus printing iteration logic to use same macro. Signed-off-by: Dongjiu Geng CC: Tyler Baicar

[PATCH v2] acpi: apei: fix the wrongly iterate generic error status block

2017-08-15 Thread Dongjiu Geng
estatus iteration to properly increment using acpi_hest_get_next, and correct the iteration termination condition because the status block data length only includes error data length. Clear the CPER estatus printing iteration logic to use same macro. Signed-off-by: Dongjiu Geng <gengdong...@huawei.

[PATCH v2] acpi: apei: fix the wrongly iterate generic error status block

2017-08-15 Thread Dongjiu Geng
estatus iteration to properly increment using acpi_hest_get_next, and correct the iteration termination condition because the status block data length only includes error data length. Clear the CPER estatus printing iteration logic to use same macro. Signed-off-by: Dongjiu Geng CC: Tyler Baicar

<    1   2   3   4   >