All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pavel Tatashin <pasha.tatashin@soleen.com>
To: Marc Zyngier <maz@kernel.org>
Cc: James Morris <jmorris@namei.org>, Sasha Levin <sashal@kernel.org>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	kexec mailing list <kexec@lists.infradead.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	James Morse <james.morse@arm.com>,
	Vladimir Murzin <vladimir.murzin@arm.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	linux-mm <linux-mm@kvack.org>,
	Mark Rutland <mark.rutland@arm.com>,
	steve.capper@arm.com, rfontana@redhat.com,
	Thomas Gleixner <tglx@linutronix.de>,
	Selin Dag <selindag@gmail.com>,
	Tyler Hicks <tyhicks@linux.microsoft.com>,
	Pingfan Liu <kernelfans@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	madvenka@linux.microsoft.com
Subject: Re: [PATCH 04/18] arm64: kernel: add helper for booted at EL2 and not VHE
Date: Tue, 1 Jun 2021 21:33:52 -0400	[thread overview]
Message-ID: <CA+CK2bChDqMKGAG8_rEigWcXRaBN=rnuV_WLnU=1TPjJRtpc5A@mail.gmail.com> (raw)
In-Reply-To: <87pmx52212.wl-maz@kernel.org>

On Tue, Jun 1, 2021 at 8:38 AM Marc Zyngier <maz@kernel.org> wrote:
>
> On Thu, 27 May 2021 16:05:12 +0100,
> Pavel Tatashin <pasha.tatashin@soleen.com> wrote:
> >
> > Replace places that contain logic like this:
> >       is_hyp_mode_available() && !is_kernel_in_hyp_mode()
> >
> > With a dedicated boolean function  is_hyp_callable(). This will be needed
> > later in kexec in order to sooner switch back to EL2.
>
> This looks like the very definition of "run in nVHE mode", so I'd
> rather you call it like this, rather than "callable", which is
> extremely ambiguous (if running at EL2, I call it any time I want, for
> free).

Hi Marc,

Naming is hard. Are you proposing  s/is_hyp_callable/run_in_nvhe_mode/
? This is also not a very good name because it does not sound like a
boolean, but instead that we know that there is nvhe mode available
and we can switch to it.

>
> >
> > Suggested-by: James Morse <james.morse@arm.com>
> >
> > [Fixed merging issues]
> >
> > Signed-off-by: Pavel Tatashin <pasha.tatashin@soleen.com>
> > ---
> >  arch/arm64/include/asm/virt.h | 5 +++++
> >  arch/arm64/kernel/cpu-reset.h | 3 +--
> >  arch/arm64/kernel/hibernate.c | 9 +++------
> >  arch/arm64/kernel/sdei.c      | 2 +-
> >  4 files changed, 10 insertions(+), 9 deletions(-)
> >
> > diff --git a/arch/arm64/include/asm/virt.h b/arch/arm64/include/asm/virt.h
> > index 7379f35ae2c6..4216c8623538 100644
> > --- a/arch/arm64/include/asm/virt.h
> > +++ b/arch/arm64/include/asm/virt.h
> > @@ -128,6 +128,11 @@ static __always_inline bool is_protected_kvm_enabled(void)
> >               return cpus_have_final_cap(ARM64_KVM_PROTECTED_MODE);
> >  }
> >
> > +static inline bool is_hyp_callable(void)
> > +{
> > +     return is_hyp_mode_available() && !is_kernel_in_hyp_mode();
> > +}
>
> nit: consider switching the two members of the expression so that you
> don't have extra memory accesses when running at EL2.

Sure, I will do that.


> > -/* Do we need to reset el2? */
> > -#define el2_reset_needed() (is_hyp_mode_available() && !is_kernel_in_hyp_mode())
> > -
>
> Please keep the macro, as it explains *why* we're doing things (we
> need to reset EL2), and replacing it with a generic macro drops the
> documentation aspect.

OK, I will keep the macro, and redefine it to use the common macro.

Thank you,
Pasha

WARNING: multiple messages have this Message-ID (diff)
From: Pavel Tatashin <pasha.tatashin@soleen.com>
To: Marc Zyngier <maz@kernel.org>
Cc: James Morris <jmorris@namei.org>, Sasha Levin <sashal@kernel.org>,
	 "Eric W. Biederman" <ebiederm@xmission.com>,
	kexec mailing list <kexec@lists.infradead.org>,
	 LKML <linux-kernel@vger.kernel.org>,
	Jonathan Corbet <corbet@lwn.net>,
	 Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	 Linux ARM <linux-arm-kernel@lists.infradead.org>,
	James Morse <james.morse@arm.com>,
	 Vladimir Murzin <vladimir.murzin@arm.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	 linux-mm <linux-mm@kvack.org>,
	Mark Rutland <mark.rutland@arm.com>,
	steve.capper@arm.com,  rfontana@redhat.com,
	Thomas Gleixner <tglx@linutronix.de>,
	Selin Dag <selindag@gmail.com>,
	 Tyler Hicks <tyhicks@linux.microsoft.com>,
	Pingfan Liu <kernelfans@gmail.com>,
	 Andrew Morton <akpm@linux-foundation.org>,
	madvenka@linux.microsoft.com
Subject: Re: [PATCH 04/18] arm64: kernel: add helper for booted at EL2 and not VHE
Date: Tue, 1 Jun 2021 21:33:52 -0400	[thread overview]
Message-ID: <CA+CK2bChDqMKGAG8_rEigWcXRaBN=rnuV_WLnU=1TPjJRtpc5A@mail.gmail.com> (raw)
In-Reply-To: <87pmx52212.wl-maz@kernel.org>

On Tue, Jun 1, 2021 at 8:38 AM Marc Zyngier <maz@kernel.org> wrote:
>
> On Thu, 27 May 2021 16:05:12 +0100,
> Pavel Tatashin <pasha.tatashin@soleen.com> wrote:
> >
> > Replace places that contain logic like this:
> >       is_hyp_mode_available() && !is_kernel_in_hyp_mode()
> >
> > With a dedicated boolean function  is_hyp_callable(). This will be needed
> > later in kexec in order to sooner switch back to EL2.
>
> This looks like the very definition of "run in nVHE mode", so I'd
> rather you call it like this, rather than "callable", which is
> extremely ambiguous (if running at EL2, I call it any time I want, for
> free).

Hi Marc,

Naming is hard. Are you proposing  s/is_hyp_callable/run_in_nvhe_mode/
? This is also not a very good name because it does not sound like a
boolean, but instead that we know that there is nvhe mode available
and we can switch to it.

>
> >
> > Suggested-by: James Morse <james.morse@arm.com>
> >
> > [Fixed merging issues]
> >
> > Signed-off-by: Pavel Tatashin <pasha.tatashin@soleen.com>
> > ---
> >  arch/arm64/include/asm/virt.h | 5 +++++
> >  arch/arm64/kernel/cpu-reset.h | 3 +--
> >  arch/arm64/kernel/hibernate.c | 9 +++------
> >  arch/arm64/kernel/sdei.c      | 2 +-
> >  4 files changed, 10 insertions(+), 9 deletions(-)
> >
> > diff --git a/arch/arm64/include/asm/virt.h b/arch/arm64/include/asm/virt.h
> > index 7379f35ae2c6..4216c8623538 100644
> > --- a/arch/arm64/include/asm/virt.h
> > +++ b/arch/arm64/include/asm/virt.h
> > @@ -128,6 +128,11 @@ static __always_inline bool is_protected_kvm_enabled(void)
> >               return cpus_have_final_cap(ARM64_KVM_PROTECTED_MODE);
> >  }
> >
> > +static inline bool is_hyp_callable(void)
> > +{
> > +     return is_hyp_mode_available() && !is_kernel_in_hyp_mode();
> > +}
>
> nit: consider switching the two members of the expression so that you
> don't have extra memory accesses when running at EL2.

Sure, I will do that.


> > -/* Do we need to reset el2? */
> > -#define el2_reset_needed() (is_hyp_mode_available() && !is_kernel_in_hyp_mode())
> > -
>
> Please keep the macro, as it explains *why* we're doing things (we
> need to reset EL2), and replacing it with a generic macro drops the
> documentation aspect.

OK, I will keep the macro, and redefine it to use the common macro.

Thank you,
Pasha

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

WARNING: multiple messages have this Message-ID (diff)
From: Pavel Tatashin <pasha.tatashin@soleen.com>
To: Marc Zyngier <maz@kernel.org>
Cc: James Morris <jmorris@namei.org>, Sasha Levin <sashal@kernel.org>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	kexec mailing list <kexec@lists.infradead.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	James Morse <james.morse@arm.com>,
	Vladimir Murzin <vladimir.murzin@arm.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	linux-mm <linux-mm@kvack.org>,
	Mark Rutland <mark.rutland@arm.com>,
	steve.capper@arm.com, rfontana@redhat.com,
	Thomas Gleixner <tglx@linutronix.de>,
	Selin Dag <selindag@gmail.com>,
	Tyler Hicks <tyhicks@linux.microsoft.com>,
	Pingfan Liu <kernelfans@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	madvenka@linux.microsoft.com
Subject: Re: [PATCH 04/18] arm64: kernel: add helper for booted at EL2 and not VHE
Date: Tue, 1 Jun 2021 21:33:52 -0400	[thread overview]
Message-ID: <CA+CK2bChDqMKGAG8_rEigWcXRaBN=rnuV_WLnU=1TPjJRtpc5A@mail.gmail.com> (raw)
In-Reply-To: <87pmx52212.wl-maz@kernel.org>

On Tue, Jun 1, 2021 at 8:38 AM Marc Zyngier <maz@kernel.org> wrote:
>
> On Thu, 27 May 2021 16:05:12 +0100,
> Pavel Tatashin <pasha.tatashin@soleen.com> wrote:
> >
> > Replace places that contain logic like this:
> >       is_hyp_mode_available() && !is_kernel_in_hyp_mode()
> >
> > With a dedicated boolean function  is_hyp_callable(). This will be needed
> > later in kexec in order to sooner switch back to EL2.
>
> This looks like the very definition of "run in nVHE mode", so I'd
> rather you call it like this, rather than "callable", which is
> extremely ambiguous (if running at EL2, I call it any time I want, for
> free).

Hi Marc,

Naming is hard. Are you proposing  s/is_hyp_callable/run_in_nvhe_mode/
? This is also not a very good name because it does not sound like a
boolean, but instead that we know that there is nvhe mode available
and we can switch to it.

>
> >
> > Suggested-by: James Morse <james.morse@arm.com>
> >
> > [Fixed merging issues]
> >
> > Signed-off-by: Pavel Tatashin <pasha.tatashin@soleen.com>
> > ---
> >  arch/arm64/include/asm/virt.h | 5 +++++
> >  arch/arm64/kernel/cpu-reset.h | 3 +--
> >  arch/arm64/kernel/hibernate.c | 9 +++------
> >  arch/arm64/kernel/sdei.c      | 2 +-
> >  4 files changed, 10 insertions(+), 9 deletions(-)
> >
> > diff --git a/arch/arm64/include/asm/virt.h b/arch/arm64/include/asm/virt.h
> > index 7379f35ae2c6..4216c8623538 100644
> > --- a/arch/arm64/include/asm/virt.h
> > +++ b/arch/arm64/include/asm/virt.h
> > @@ -128,6 +128,11 @@ static __always_inline bool is_protected_kvm_enabled(void)
> >               return cpus_have_final_cap(ARM64_KVM_PROTECTED_MODE);
> >  }
> >
> > +static inline bool is_hyp_callable(void)
> > +{
> > +     return is_hyp_mode_available() && !is_kernel_in_hyp_mode();
> > +}
>
> nit: consider switching the two members of the expression so that you
> don't have extra memory accesses when running at EL2.

Sure, I will do that.


> > -/* Do we need to reset el2? */
> > -#define el2_reset_needed() (is_hyp_mode_available() && !is_kernel_in_hyp_mode())
> > -
>
> Please keep the macro, as it explains *why* we're doing things (we
> need to reset EL2), and replacing it with a generic macro drops the
> documentation aspect.

OK, I will keep the macro, and redefine it to use the common macro.

Thank you,
Pasha

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

  reply	other threads:[~2021-06-02  1:34 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-27 15:05 [PATCH 00/18] arm64: MMU enabled kexec relocation Pavel Tatashin
2021-05-27 15:05 ` Pavel Tatashin
2021-05-27 15:05 ` Pavel Tatashin
2021-05-27 15:05 ` [PATCH 01/18] arm64: hyp-stub: Check the size of the HYP stub's vectors Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05 ` [PATCH 02/18] arm64: hyp-stub: Move invalid vector entries into the vectors Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05 ` [PATCH 03/18] arm64: hyp-stub: Move elx_sync " Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:54   ` Marc Zyngier
2021-05-27 15:54     ` Marc Zyngier
2021-05-27 15:54     ` Marc Zyngier
2021-05-27 21:23     ` Pavel Tatashin
2021-05-27 21:23       ` Pavel Tatashin
2021-05-27 21:23       ` Pavel Tatashin
2021-05-27 21:23       ` Pavel Tatashin
2021-06-01 12:22       ` Marc Zyngier
2021-06-01 12:22         ` Marc Zyngier
2021-06-01 12:22         ` Marc Zyngier
2021-06-02  1:18         ` Pavel Tatashin
2021-06-02  1:18           ` Pavel Tatashin
2021-06-02  1:18           ` Pavel Tatashin
2021-06-02  1:18           ` Pavel Tatashin
2021-06-08 17:46           ` Pavel Tatashin
2021-06-08 17:46             ` Pavel Tatashin
2021-06-08 17:46             ` Pavel Tatashin
2021-06-08 17:46             ` Pavel Tatashin
2021-05-27 15:05 ` [PATCH 04/18] arm64: kernel: add helper for booted at EL2 and not VHE Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-06-01 12:38   ` Marc Zyngier
2021-06-01 12:38     ` Marc Zyngier
2021-06-01 12:38     ` Marc Zyngier
2021-06-02  1:33     ` Pavel Tatashin [this message]
2021-06-02  1:33       ` Pavel Tatashin
2021-06-02  1:33       ` Pavel Tatashin
2021-06-02  1:33       ` Pavel Tatashin
2021-06-02  8:20       ` Marc Zyngier
2021-06-02  8:20         ` Marc Zyngier
2021-06-02  8:20         ` Marc Zyngier
2021-05-27 15:05 ` [PATCH 05/18] arm64: trans_pgd: hibernate: Add trans_pgd_copy_el2_vectors Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05 ` [PATCH 06/18] arm64: hibernate: abstract ttrb0 setup function Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05 ` [PATCH 07/18] arm64: kexec: flush image and lists during kexec load time Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05 ` [PATCH 08/18] arm64: kexec: skip relocation code for inplace kexec Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05 ` [PATCH 09/18] arm64: kexec: Use dcache ops macros instead of open-coding Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05 ` [PATCH 10/18] arm64: kexec: pass kimage as the only argument to relocation function Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05 ` [PATCH 11/18] arm64: kexec: kexec may require EL2 vectors Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05 ` [PATCH 12/18] arm64: kexec: relocate in EL1 mode Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05 ` [PATCH 13/18] arm64: kexec: use ld script for relocation function Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05 ` [PATCH 14/18] arm64: kexec: install a copy of the linear-map Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05 ` [PATCH 15/18] arm64: kexec: keep MMU enabled during kexec relocation Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05 ` [PATCH 16/18] arm64: kexec: remove the pre-kexec PoC maintenance Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05 ` [PATCH 17/18] arm64: kexec: Remove cpu-reset.h Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05 ` [PATCH 18/18] arm64/mm: remove useless trans_pgd_map_page() Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin
2021-05-27 15:05   ` Pavel Tatashin

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='CA+CK2bChDqMKGAG8_rEigWcXRaBN=rnuV_WLnU=1TPjJRtpc5A@mail.gmail.com' \
    --to=pasha.tatashin@soleen.com \
    --cc=akpm@linux-foundation.org \
    --cc=catalin.marinas@arm.com \
    --cc=corbet@lwn.net \
    --cc=ebiederm@xmission.com \
    --cc=james.morse@arm.com \
    --cc=jmorris@namei.org \
    --cc=kernelfans@gmail.com \
    --cc=kexec@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=madvenka@linux.microsoft.com \
    --cc=mark.rutland@arm.com \
    --cc=matthias.bgg@gmail.com \
    --cc=maz@kernel.org \
    --cc=rfontana@redhat.com \
    --cc=sashal@kernel.org \
    --cc=selindag@gmail.com \
    --cc=steve.capper@arm.com \
    --cc=tglx@linutronix.de \
    --cc=tyhicks@linux.microsoft.com \
    --cc=vladimir.murzin@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: 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.