Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1379812
| From | Suzuki K Poulose <Suzuki.Poulose@arm.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 1/5] arm64: cpufeature: Add scope for capability check |
| Date | 2016-04-15 15:30 +0200 |
| Message-ID | <robYS-3E4-13@gated-at.bofh.it> (permalink) |
| References | <rkTOO-33a-11@gated-at.bofh.it> <rkTOQ-33a-81@gated-at.bofh.it> <rnTpg-5FL-11@gated-at.bofh.it> <rnTyX-5JF-27@gated-at.bofh.it> <robvQ-3a8-21@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On 15/04/16 13:55, Will Deacon wrote: > On Thu, Apr 14, 2016 at 06:47:46PM +0100, Suzuki K Poulose wrote: >> On 14/04/16 18:38, Will Deacon wrote: >>> Hi Suzuki, >>> >>> On Wed, Apr 06, 2016 at 12:24:10PM +0100, Suzuki K Poulose wrote: >>>> Add scope parameter to the arm64_cpu_capabilities::matches(), >>>> so that this can be reused for checking the capability on a >>>> given CPU vs the system wide. By default, the system uses >>>> 'system' wide values for setting the CPU_HWCAPs and ELF_HWCAPs. >> >>>> static bool __maybe_unused >>>> -is_affected_midr_range(const struct arm64_cpu_capabilities *entry) >>>> +is_affected_midr_range(const struct arm64_cpu_capabilities *entry, int __unused) >>> >>> Maybe it would be better to WARN if somebody passes SCOPE_SYSTEM, rather >>> than silently treat it as per-cpu? >> >> Should we worry about errata's which may not necessarily depend on per CPU or >> a local capability (GIC) ? So all of these are arm64_cpu_capabilities, i.e, cpu_errata, ELF_HWCAPS and cpu_hwcaps. Each of them have a matches() routine, which without this series, checks if the system as a whole has the capability. Now the matches() could use its own checks using system wide values (read_system_reg(), used by everything except cpu_errata) or CPU register values(right now, all of them use MIDR). The tables are processed by a common routine, update_cpu_capabilities(). The cpu_errata table is processed for each booting CPU, while the cpu_hwcaps is processed only once, after all the CPUs have booted. SCOPE is really a hint to the matches() to tell us the capability of the entire system (SCOPE_SYSTEM) vs that of a single CPU(SCOPE_LOCAL). This is needed, because matches() may do more than checking the feature register values (e.g, has_useable_gicv3_cpuif() ), which makes it difficult to the check if a given CPU has a capability. So we initialise the system capabilities by passing SCOPE_SYSTEM to the matches() from update_cpu_capabilities(). And we use SCOPE_LOCAL when we do the early verification check for CPUs that turn online after the system initialised the bits or this_cpu_has_cap() introduced in this series. At the moment scope doesn't really matter to cpu_errata, as all of them are using MIDR checks (btw, it is done for all CPUs unlike, cpu_hwcaps or ELF Hwcaps > > Why would they be calling is_affected_midr_range? They won't be. My point is, since we use a shared structures and shared routines to process the table, the scope parameter comes from the top, while we go through the table. The entire table of capabilities::matches() will be called with a specific scope in either case as explained above. >> If not, we could add a WARN after passing down LOCAL >> scope for errata. > > But if we don't care about errata that aren't local, then why would we warn > on LOCAL? We don't have to. >> Right now we always do SCOPE_SYSTEM from update_cpu_capabilities(), even for >> cpu_errata table. There is no specific reason for that. > > I'm totally confused. Can you define SCOPE_SYSTEM and SCOPE_LOCAL for me, > please? Hope it is clear now. Suzuki
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 0/5] arm64: Fix behavior of maxcpus=n Suzuki K Poulose <suzuki.poulose@arm.com> - 2016-04-06 13:30 +0200
[PATCH 1/5] arm64: cpufeature: Add scope for capability check Suzuki K Poulose <suzuki.poulose@arm.com> - 2016-04-06 13:30 +0200
Re: [PATCH 1/5] arm64: cpufeature: Add scope for capability check Will Deacon <will.deacon@arm.com> - 2016-04-14 19:40 +0200
Re: [PATCH 1/5] arm64: cpufeature: Add scope for capability check Suzuki K Poulose <Suzuki.Poulose@arm.com> - 2016-04-14 19:50 +0200
Re: [PATCH 1/5] arm64: cpufeature: Add scope for capability check Will Deacon <will.deacon@arm.com> - 2016-04-15 15:00 +0200
Re: [PATCH 1/5] arm64: cpufeature: Add scope for capability check Suzuki K Poulose <Suzuki.Poulose@arm.com> - 2016-04-15 15:30 +0200
[PATCH 3/5] irqchip/gic: Restore CPU interface checking Suzuki K Poulose <suzuki.poulose@arm.com> - 2016-04-06 13:30 +0200
csiph-web