Re: [PATCH v3 02/14] arm64: Allow mismatched 32-bit EL0 support

From: Will Deacon
Date: Thu Nov 19 2020 - 08:12:49 EST


Hi Valentin,

Thanks for the review.

On Thu, Nov 19, 2020 at 11:27:41AM +0000, Valentin Schneider wrote:
>
> On 13/11/20 09:37, Will Deacon wrote:
> > +const struct cpumask *system_32bit_el0_cpumask(void)
> > +{
> > + if (!system_supports_32bit_el0())
> > + return cpu_none_mask;
> > +
> > + if (static_branch_unlikely(&arm64_mismatched_32bit_el0))
> > + return cpu_32bit_el0_mask;
> > +
> > + return cpu_present_mask;
> > +}
>
> Nit: this is used in patch 13 to implement arch_cpu_allowed_mask(). Since
> that latter defaults to cpu_possible_mask, this probably should too.

My original thinking was that, in a system where 32-bit EL0 support is
detected at boot and we're not handling mismatches, then it would be nice
to avoid saying that late CPUs are all 32-bit capable given that they will
fail to be onlined if they're not.

However, the reality is that we don't currently distinguish between the
present and possible masks on arm64 so it doesn't make any difference. It's
also not useful to userspace, because if the cores aren't online then so
what? Your observation above is another nail in the coffin, so I'll change
this to the possible mask as you suggest.

Cheers,

Will