From: Alexandru Elisei <alexandru.elisei@arm.com> To: catalin.marinas@arm.com, will@kernel.org, linux-arm-kernel@lists.infradead.org, maz@kernel.org, james.morse@arm.com, suzuki.poulose@arm.com, kvmarm@lists.cs.columbia.edu, mark.rutland@arm.com Subject: [PATCH v3 0/5] arm64: Treat ESR_ELx as a 64-bit register Date: Mon, 25 Apr 2022 12:44:39 +0100 [thread overview] Message-ID: <20220425114444.368693-1-alexandru.elisei@arm.com> (raw) The ESR_EL{1,2} registers were originally 32-bit, then were extended to 64-bit with the upper 32 bits RES0, and in ARM DDI 0487H.a the FEAT_LS64 feature was added which now makes use of the upper bits. This series aims to teach Linux to treat it consistently as a 64-bit register with the goal of making it easier to add support in the future for features that use the upper 32 bits. Patches #1 ("arm64: Make ESR_ELx_xVC_IMM_MASK compatible with assembly") and #2 ("arm64: compat: Do not treat syscall number as ESR_ELx for a bad syscall") are fixes for some minor issues which I found while working on changing ESR_ELx to 64-bit. Patches #3 ("arm64: Treat ESR_ELx as a 64bit register") and #4 ("KVM: arm64: Treat ESR_EL2 as a 64-bit register") are where the ESR_ELx registers are changed to 64-bit. I chose to make the KVM changes a separate patch because KVM prefers to use u64 for the registers. And in patch #5 ("KVM: arm64: uapi: Add kvm_debug_exit_arch.hsr_high") I add a new field to the user API struct kvm_debug_exit_arch that represents the higher 32 bits, and a flag to go with it (details in the patch). Tested by running ltp for a few hours (minimal changes from the previous version) and kvm-unit-tests on a rockpro64. Changes in v3: * Rebased on top of v5.18-rc4 * Clear kvm_run->flags in kvm_arch_vcpu_ioctl_run() in patch #5 ("KVM: arm64: uapi: Add kvm_debug_exit_arch.hsr_high") * Documented KVM_DEBUG_ARCH_HSR_HIGH_VALID. Changes in v2: * Added the KVM_DEBUG_ARCH_HSR_HIGH_VALID kvm_run flag to patch #5 ("KVM: arm64: uapi: Add kvm_debug_exit_arch.hsr_high"), and updated the commit message to match (Marc) * Rebased on top of v5.18-rc3. Alexandru Elisei (5): arm64: Make ESR_ELx_xVC_IMM_MASK compatible with assembly arm64: compat: Do not treat syscall number as ESR_ELx for a bad syscall arm64: Treat ESR_ELx as a 64-bit register KVM: arm64: Treat ESR_EL2 as a 64-bit register KVM: arm64: uapi: Add kvm_debug_exit_arch.hsr_high Documentation/virt/kvm/api.rst | 2 + arch/arm64/include/asm/debug-monitors.h | 4 +- arch/arm64/include/asm/esr.h | 8 +-- arch/arm64/include/asm/exception.h | 28 +++++----- arch/arm64/include/asm/kvm_emulate.h | 6 +-- arch/arm64/include/asm/kvm_host.h | 2 +- arch/arm64/include/asm/kvm_ras.h | 2 +- arch/arm64/include/asm/system_misc.h | 4 +- arch/arm64/include/asm/traps.h | 12 ++--- arch/arm64/include/uapi/asm/kvm.h | 2 + arch/arm64/kernel/debug-monitors.c | 12 ++--- arch/arm64/kernel/entry-common.c | 6 +-- arch/arm64/kernel/fpsimd.c | 6 +-- arch/arm64/kernel/hw_breakpoint.c | 4 +- arch/arm64/kernel/kgdb.c | 6 +-- arch/arm64/kernel/probes/kprobes.c | 4 +- arch/arm64/kernel/probes/uprobes.c | 4 +- arch/arm64/kernel/sys_compat.c | 2 +- arch/arm64/kernel/traps.c | 66 +++++++++++------------ arch/arm64/kvm/arm.c | 1 + arch/arm64/kvm/handle_exit.c | 16 +++--- arch/arm64/kvm/hyp/include/hyp/switch.h | 2 +- arch/arm64/kvm/hyp/nvhe/sys_regs.c | 2 +- arch/arm64/kvm/hyp/vgic-v3-sr.c | 4 +- arch/arm64/kvm/inject_fault.c | 4 +- arch/arm64/kvm/sys_regs.c | 4 +- arch/arm64/mm/fault.c | 70 ++++++++++++------------- 27 files changed, 145 insertions(+), 138 deletions(-) -- 2.36.0 _______________________________________________ kvmarm mailing list kvmarm@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
WARNING: multiple messages have this Message-ID (diff)
From: Alexandru Elisei <alexandru.elisei@arm.com> To: catalin.marinas@arm.com, will@kernel.org, linux-arm-kernel@lists.infradead.org, maz@kernel.org, james.morse@arm.com, suzuki.poulose@arm.com, kvmarm@lists.cs.columbia.edu, mark.rutland@arm.com Subject: [PATCH v3 0/5] arm64: Treat ESR_ELx as a 64-bit register Date: Mon, 25 Apr 2022 12:44:39 +0100 [thread overview] Message-ID: <20220425114444.368693-1-alexandru.elisei@arm.com> (raw) The ESR_EL{1,2} registers were originally 32-bit, then were extended to 64-bit with the upper 32 bits RES0, and in ARM DDI 0487H.a the FEAT_LS64 feature was added which now makes use of the upper bits. This series aims to teach Linux to treat it consistently as a 64-bit register with the goal of making it easier to add support in the future for features that use the upper 32 bits. Patches #1 ("arm64: Make ESR_ELx_xVC_IMM_MASK compatible with assembly") and #2 ("arm64: compat: Do not treat syscall number as ESR_ELx for a bad syscall") are fixes for some minor issues which I found while working on changing ESR_ELx to 64-bit. Patches #3 ("arm64: Treat ESR_ELx as a 64bit register") and #4 ("KVM: arm64: Treat ESR_EL2 as a 64-bit register") are where the ESR_ELx registers are changed to 64-bit. I chose to make the KVM changes a separate patch because KVM prefers to use u64 for the registers. And in patch #5 ("KVM: arm64: uapi: Add kvm_debug_exit_arch.hsr_high") I add a new field to the user API struct kvm_debug_exit_arch that represents the higher 32 bits, and a flag to go with it (details in the patch). Tested by running ltp for a few hours (minimal changes from the previous version) and kvm-unit-tests on a rockpro64. Changes in v3: * Rebased on top of v5.18-rc4 * Clear kvm_run->flags in kvm_arch_vcpu_ioctl_run() in patch #5 ("KVM: arm64: uapi: Add kvm_debug_exit_arch.hsr_high") * Documented KVM_DEBUG_ARCH_HSR_HIGH_VALID. Changes in v2: * Added the KVM_DEBUG_ARCH_HSR_HIGH_VALID kvm_run flag to patch #5 ("KVM: arm64: uapi: Add kvm_debug_exit_arch.hsr_high"), and updated the commit message to match (Marc) * Rebased on top of v5.18-rc3. Alexandru Elisei (5): arm64: Make ESR_ELx_xVC_IMM_MASK compatible with assembly arm64: compat: Do not treat syscall number as ESR_ELx for a bad syscall arm64: Treat ESR_ELx as a 64-bit register KVM: arm64: Treat ESR_EL2 as a 64-bit register KVM: arm64: uapi: Add kvm_debug_exit_arch.hsr_high Documentation/virt/kvm/api.rst | 2 + arch/arm64/include/asm/debug-monitors.h | 4 +- arch/arm64/include/asm/esr.h | 8 +-- arch/arm64/include/asm/exception.h | 28 +++++----- arch/arm64/include/asm/kvm_emulate.h | 6 +-- arch/arm64/include/asm/kvm_host.h | 2 +- arch/arm64/include/asm/kvm_ras.h | 2 +- arch/arm64/include/asm/system_misc.h | 4 +- arch/arm64/include/asm/traps.h | 12 ++--- arch/arm64/include/uapi/asm/kvm.h | 2 + arch/arm64/kernel/debug-monitors.c | 12 ++--- arch/arm64/kernel/entry-common.c | 6 +-- arch/arm64/kernel/fpsimd.c | 6 +-- arch/arm64/kernel/hw_breakpoint.c | 4 +- arch/arm64/kernel/kgdb.c | 6 +-- arch/arm64/kernel/probes/kprobes.c | 4 +- arch/arm64/kernel/probes/uprobes.c | 4 +- arch/arm64/kernel/sys_compat.c | 2 +- arch/arm64/kernel/traps.c | 66 +++++++++++------------ arch/arm64/kvm/arm.c | 1 + arch/arm64/kvm/handle_exit.c | 16 +++--- arch/arm64/kvm/hyp/include/hyp/switch.h | 2 +- arch/arm64/kvm/hyp/nvhe/sys_regs.c | 2 +- arch/arm64/kvm/hyp/vgic-v3-sr.c | 4 +- arch/arm64/kvm/inject_fault.c | 4 +- arch/arm64/kvm/sys_regs.c | 4 +- arch/arm64/mm/fault.c | 70 ++++++++++++------------- 27 files changed, 145 insertions(+), 138 deletions(-) -- 2.36.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2022-04-25 11:45 UTC|newest] Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-04-25 11:44 Alexandru Elisei [this message] 2022-04-25 11:44 ` [PATCH v3 0/5] arm64: Treat ESR_ELx as a 64-bit register Alexandru Elisei 2022-04-25 11:44 ` [PATCH v3 1/5] arm64: Make ESR_ELx_xVC_IMM_MASK compatible with assembly Alexandru Elisei 2022-04-25 11:44 ` Alexandru Elisei 2022-04-25 11:44 ` [PATCH v3 2/5] arm64: compat: Do not treat syscall number as ESR_ELx for a bad syscall Alexandru Elisei 2022-04-25 11:44 ` Alexandru Elisei 2022-04-25 11:44 ` [PATCH v3 3/5] arm64: Treat ESR_ELx as a 64-bit register Alexandru Elisei 2022-04-25 11:44 ` Alexandru Elisei 2022-04-25 11:44 ` [PATCH v3 4/5] KVM: arm64: Treat ESR_EL2 " Alexandru Elisei 2022-04-25 11:44 ` Alexandru Elisei 2022-04-25 11:44 ` [PATCH v3 5/5] KVM: arm64: uapi: Add kvm_debug_exit_arch.hsr_high Alexandru Elisei 2022-04-25 11:44 ` Alexandru Elisei 2022-04-28 20:59 ` [PATCH v3 0/5] arm64: Treat ESR_ELx as a 64-bit register Marc Zyngier 2022-04-28 20:59 ` Marc Zyngier 2022-04-29 19:19 ` Catalin Marinas 2022-04-29 19:19 ` Catalin Marinas
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=20220425114444.368693-1-alexandru.elisei@arm.com \ --to=alexandru.elisei@arm.com \ --cc=catalin.marinas@arm.com \ --cc=james.morse@arm.com \ --cc=kvmarm@lists.cs.columbia.edu \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=mark.rutland@arm.com \ --cc=maz@kernel.org \ --cc=suzuki.poulose@arm.com \ --cc=will@kernel.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.