mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Dave Martin <Dave.Martin@arm.com>
To: Suzuki K Poulose <Suzuki.Poulose@arm.com>
Cc: mark.rutland@arm.com, ckadabi@codeaurora.org,
	ard.biesheuvel@linaro.org, marc.zyngier@arm.com,
	catalin.marinas@arm.com, will.deacon@arm.com,
	linux-kernel@vger.kernel.org, jnair@caviumnetworks.com,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 1/2] arm64: capabilities: Allow flexibility in scope
Date: Thu, 8 Feb 2018 17:32:30 +0000	[thread overview]
Message-ID: <20180208173229.GA5862@e103592.cambridge.arm.com> (raw)
In-Reply-To: <08474a1a-3abd-9b89-ce75-d01e4b6fa659@arm.com>

On Thu, Feb 08, 2018 at 04:31:47PM +0000, Suzuki K Poulose wrote:
> On 08/02/18 16:10, Dave Martin wrote:
> >On Thu, Feb 08, 2018 at 12:12:37PM +0000, Suzuki K Poulose wrote:
> >>So far we have restricted the scopes for the capabilities
> >>as follows :
> >>  1) Errata workaround check are run all CPUs (i.e, always
> >>     SCOPE_LOCAL_CPU)
> >>  2) Arm64 features are run only once after the sanitised
> >>     feature registers are available using the SCOPE_SYSTEM.
> >>
> >>This prevents detecting cpu features that can be detected
> >>on one or more CPUs with SCOPE_LOCAL_CPU (e.g KPTI). Similarly
> >>for errata workaround with SCOPE_SYSTEM.
> >>
> >>This patch makes sure that we allow flexibility of having
> >>any scope for a capability. So, we now run through both
> >>arm64_features and arm64_errata in two phases for detection:
> >>
> >>  a) with SCOPE_LOCAL_CPU filter on each boot time enabled
> >>     CPUs.
> >>  b) with SCOPE_SYSTEM filter only once after all boot time
> >>     enabled CPUs are active.
> >>
> 
> 
> >>  static void update_cpu_ftr_reg(struct arm64_ftr_reg *reg, u64 new)
> >>@@ -1387,13 +1389,15 @@ static void verify_local_cpu_errata_workarounds(void)
> >>  static void update_cpu_errata_workarounds(void)
> >>  {
> >>  	update_cpu_capabilities(arm64_errata,
> >>-				ARM64_CPUCAP_SCOPE_ALL,
> >>+				ARM64_CPUCAP_SCOPE_LOCAL_CPU,
> >
> >In isolation, this looks strange because it seems to handle only a
> >subset of arm64_errata now.
> >
> >I think I understand the change as follows:
> >
> >  * all previously-existing errata workarounds SCOPE_LOCAL_CPU
> >    anyway, so the behavior here doesn't change for any existing
> >    caps;
> >
> >  * the non SCOPE_SYSTEM workarounds (which this patch prepares for)
> "the SCOPE_SYSTEM" workarounds..."
> 
> >    are handled by the new setup_errata_workaround() path.
> 
> >
> >Similarly, the features handling is split into two: one mirroring
> >the current behaviour (for SCOPE_SYSTEM this time) and one handling> the rest, for supporting SCOPE_CPU_LOCAL features in subsequent
> >patches.
> 
> Right. The changes here are :
> 
> New behavior:
>   - Run SCOPE_LOCAL_CPU filter on arm64_features on all CPUs (newly added with
>     this patch) via (newly added)update_cpu_local_features().
> 
> Split of existing behavior:
>   - Run SCOPE_LOCAL_CPU(instead of the earlier SCOPE_ALL) on all CPUs in
>     update_cpu_errata_workarounds()
>   - Run SCOPE_SYSTEM filter on arm64_errata, once, via setup_errata_workarounds()

OK, thanks for confirming.

[...]

> >I'm not sure we need extra comments or documentation; I just want
> >to check that I've understood the patch correctly.
> 
> So, would you prefer this split to the original patch ?

I think splitting out this patch (1/2) makes sense.


For the second part (2/2) of the split, I still find that hard to
review.  The commit message suggests trivially obvious refactoring
only, but I think there are three things going on:

 1) moving functions around (with the intention of merging them)
 2) merging functions together
 3) other miscellaneous bits of refactoring, and cleanups that become
    "obvious" after steps (1) and (2).

The refactoring is likely straightfoward, but the resulting diff is
not (at least, I struggle to read it).

Could you split the second part along the lines if (1)..(3) above?
I think that would make for much easier review.  (Sorry to be a pain!)

Also, the second patch leaves at least one function that does nothing
except call a second function that has no other caller.  It may do
no harm to remove and inline any such function.  (Falls under (3),
I guess.)

Cheers
---Dave

  reply	other threads:[~2018-02-08 17:32 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-31 18:27 [PATCH v2 00/20] arm64: Rework cpu capabilities handling Suzuki K Poulose
2018-01-31 18:27 ` [PATCH v2 01/20] arm64: capabilities: Update prototype for enable call back Suzuki K Poulose
2018-02-07 10:37   ` Dave Martin
2018-02-07 11:23   ` Robin Murphy
2018-01-31 18:27 ` [PATCH v2 02/20] arm64: capabilities: Move errata work around check on boot CPU Suzuki K Poulose
2018-02-07 10:37   ` Dave Martin
2018-02-07 14:47     ` Suzuki K Poulose
2018-01-31 18:27 ` [PATCH v2 03/20] arm64: capabilities: Move errata processing code Suzuki K Poulose
2018-02-07 10:37   ` Dave Martin
2018-01-31 18:27 ` [PATCH v2 04/20] arm64: capabilities: Prepare for fine grained capabilities Suzuki K Poulose
2018-02-07 10:37   ` Dave Martin
2018-02-07 15:16     ` Suzuki K Poulose
2018-02-07 15:39       ` Dave Martin
2018-01-31 18:27 ` [PATCH v2 05/20] arm64: capabilities: Add flags to handle the conflicts on late CPU Suzuki K Poulose
2018-02-07 10:38   ` Dave Martin
2018-02-07 11:31     ` Robin Murphy
2018-02-07 16:53       ` Suzuki K Poulose
2018-01-31 18:27 ` [PATCH v2 06/20] arm64: capabilities: Unify the verification Suzuki K Poulose
2018-02-07 10:38   ` Dave Martin
2018-02-07 16:56     ` Suzuki K Poulose
2018-01-31 18:27 ` [PATCH v2 07/20] arm64: capabilities: Filter the entries based on a given mask Suzuki K Poulose
2018-02-07 10:38   ` Dave Martin
2018-02-07 17:01     ` Suzuki K Poulose
2018-01-31 18:27 ` [PATCH v2 08/20] arm64: capabilities: Group handling of features and errata Suzuki K Poulose
2018-02-07 10:38   ` Dave Martin
2018-02-08 12:10     ` Suzuki K Poulose
2018-02-08 12:12       ` [PATCH 1/2] arm64: capabilities: Allow flexibility in scope Suzuki K Poulose
2018-02-08 12:12         ` [PATCH 2/2] arm64: capabilities: Group handling of features and errata workarounds Suzuki K Poulose
2018-02-08 16:10         ` [PATCH 1/2] arm64: capabilities: Allow flexibility in scope Dave Martin
2018-02-08 16:31           ` Suzuki K Poulose
2018-02-08 17:32             ` Dave Martin [this message]
2018-02-09 12:16               ` Suzuki K Poulose
2018-02-09 12:16                 ` [PATCH 1/4] arm64: capabilities: Prepare for grouping features and errata work arounds Suzuki K Poulose
2018-02-09 12:16                 ` [PATCH 2/4] arm64: capabilities: Split the processing of " Suzuki K Poulose
2018-02-09 12:16                 ` [PATCH 3/4] arm64: capabilities: Allow features based on local CPU scope Suzuki K Poulose
2018-02-09 12:16                 ` [PATCH 4/4] arm64: capabilities: Group handling of features and errata workarounds Suzuki K Poulose
2018-02-09 12:19                   ` Suzuki K Poulose
2018-02-09 14:21                 ` [PATCH 1/2] arm64: capabilities: Allow flexibility in scope Dave Martin
2018-01-31 18:27 ` [PATCH v2 09/20] arm64: capabilities: Introduce weak features based on local CPU Suzuki K Poulose
2018-02-07 10:38   ` Dave Martin
2018-01-31 18:27 ` [PATCH v2 10/20] arm64: capabilities: Restrict KPTI detection to boot-time CPUs Suzuki K Poulose
2018-02-07 10:38   ` Dave Martin
2018-02-07 18:15     ` Suzuki K Poulose
2018-02-08 11:05       ` Dave Martin
2018-01-31 18:27 ` [PATCH v2 11/20] arm64: capabilities: Add support for features enabled early Suzuki K Poulose
2018-02-07 10:38   ` Dave Martin
2018-02-07 18:34     ` Suzuki K Poulose
2018-02-08 11:35       ` Dave Martin
2018-02-08 11:43         ` Suzuki K Poulose
2018-01-31 18:27 ` [PATCH v2 12/20] arm64: capabilities: Change scope of VHE to Boot CPU feature Suzuki K Poulose
2018-02-07 10:39   ` Dave Martin
2018-01-31 18:28 ` [PATCH v2 13/20] arm64: capabilities: Clean up midr range helpers Suzuki K Poulose
2018-02-07 10:39   ` Dave Martin
2018-01-31 18:28 ` [PATCH v2 14/20] arm64: Add helpers for checking CPU MIDR against a range Suzuki K Poulose
2018-02-07 10:39   ` Dave Martin
2018-01-31 18:28 ` [PATCH v2 15/20] arm64: capabilities: Add support for checks based on a list of MIDRs Suzuki K Poulose
2018-02-07 10:39   ` Dave Martin
2018-01-31 18:28 ` [PATCH v2 16/20] arm64: Handle shared capability entries Suzuki K Poulose
2018-02-07 10:39   ` Dave Martin
2018-02-08 10:53     ` Suzuki K Poulose
2018-02-08 12:01       ` Dave Martin
2018-02-08 12:32         ` Robin Murphy
2018-02-09 10:05           ` Dave Martin
2018-02-08 12:04   ` Dave Martin
2018-02-08 12:05     ` Suzuki K Poulose
2018-01-31 18:28 ` [PATCH v2 17/20] arm64: bp hardening: Allow late CPUs to enable work around Suzuki K Poulose
2018-02-07 10:39   ` Dave Martin
2018-02-08 12:19     ` Suzuki K Poulose
2018-02-08 12:26       ` Marc Zyngier
2018-02-08 16:58         ` Suzuki K Poulose
2018-02-08 17:59           ` Suzuki K Poulose
2018-02-08 17:59             ` Suzuki K Poulose
2018-01-31 18:28 ` [PATCH v2 18/20] arm64: Add MIDR encoding for Arm Cortex-A55 and Cortex-A35 Suzuki K Poulose
2018-02-07 10:39   ` Dave Martin
2018-01-31 18:28 ` [PATCH v2 19/20] arm64: Delay enabling hardware DBM feature Suzuki K Poulose
2018-02-07 10:40   ` Dave Martin
2018-01-31 18:28 ` [PATCH v2 20/20] arm64: Add work around for Arm Cortex-A55 Erratum 1024718 Suzuki K Poulose
2018-02-07 10:40   ` Dave Martin

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=20180208173229.GA5862@e103592.cambridge.arm.com \
    --to=dave.martin@arm.com \
    --cc=Suzuki.Poulose@arm.com \
    --cc=ard.biesheuvel@linaro.org \
    --cc=catalin.marinas@arm.com \
    --cc=ckadabi@codeaurora.org \
    --cc=jnair@caviumnetworks.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marc.zyngier@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=will.deacon@arm.com \
    /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

all inboxes | Powered by JetHome®