All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <maz@kernel.org>
To: Alexandru Elisei <alexandru.elisei@arm.com>
Cc: catalin.marinas@arm.com, will@kernel.org,
	kvmarm@lists.cs.columbia.edu,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 0/5] arm64: Treat ESR_ELx as a 64-bit register
Date: Thu, 28 Apr 2022 21:59:55 +0100	[thread overview]
Message-ID: <87tuac9b5g.wl-maz@kernel.org> (raw)
In-Reply-To: <20220425114444.368693-1-alexandru.elisei@arm.com>

On Mon, 25 Apr 2022 12:44:39 +0100,
Alexandru Elisei <alexandru.elisei@arm.com> wrote:
> 
> 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(-)

For the series:

Reviewed-by: Marc Zyngier <maz@kernel.org>

Given the scale of the changes, I expect this go be routed via the
arm64 tree, but I can also take it if needed.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.
_______________________________________________
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: Marc Zyngier <maz@kernel.org>
To: Alexandru Elisei <alexandru.elisei@arm.com>
Cc: catalin.marinas@arm.com, will@kernel.org,
	linux-arm-kernel@lists.infradead.org, james.morse@arm.com,
	suzuki.poulose@arm.com, kvmarm@lists.cs.columbia.edu,
	mark.rutland@arm.com
Subject: Re: [PATCH v3 0/5] arm64: Treat ESR_ELx as a 64-bit register
Date: Thu, 28 Apr 2022 21:59:55 +0100	[thread overview]
Message-ID: <87tuac9b5g.wl-maz@kernel.org> (raw)
In-Reply-To: <20220425114444.368693-1-alexandru.elisei@arm.com>

On Mon, 25 Apr 2022 12:44:39 +0100,
Alexandru Elisei <alexandru.elisei@arm.com> wrote:
> 
> 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(-)

For the series:

Reviewed-by: Marc Zyngier <maz@kernel.org>

Given the scale of the changes, I expect this go be routed via the
arm64 tree, but I can also take it if needed.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2022-04-28 21:00 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 ` 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 ` Marc Zyngier [this message]
2022-04-28 20:59   ` [PATCH v3 0/5] arm64: Treat ESR_ELx as a 64-bit register 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=87tuac9b5g.wl-maz@kernel.org \
    --to=maz@kernel.org \
    --cc=alexandru.elisei@arm.com \
    --cc=catalin.marinas@arm.com \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-arm-kernel@lists.infradead.org \
    --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: link
Be 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.