Message ID | 20201124155039.13804-7-will@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | An alternative series for asymmetric AArch32 systems | expand |
On 11/24/20 15:50, Will Deacon wrote: > Allow systems with mismatched 32-bit support at EL0 to run 32-bit > applications based on a new kernel parameter. > > Signed-off-by: Will Deacon <will@kernel.org> > --- > Documentation/admin-guide/kernel-parameters.txt | 7 +++++++ > arch/arm64/kernel/cpufeature.c | 7 +++++++ > 2 files changed, 14 insertions(+) > > diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt > index 526d65d8573a..f20188c44d83 100644 > --- a/Documentation/admin-guide/kernel-parameters.txt > +++ b/Documentation/admin-guide/kernel-parameters.txt > @@ -289,6 +289,13 @@ > do not want to use tracing_snapshot_alloc() as it needs > to be done where GFP_KERNEL allocations are allowed. > > + allow_mismatched_32bit_el0 [ARM64] > + Allow execve() of 32-bit applications and setting of the > + PER_LINUX32 personality on systems where only a strict > + subset of the CPUs support 32-bit EL0. When this > + parameter is present, the set of CPUs supporting 32-bit > + EL0 is indicated by /sys/devices/system/cpu/aarch32_el0. Shouldn't we document that a randomly selected 32-bit CPU will be prevented from being hotplugged out all the time to act as the last man standing for any currently running 32-bit application. That was a mouthful! I'm sure you can phrase it better :-) If we make this the last patch as it was before adding affinity handling, we can drop patch 4 more easily I think? Thanks -- Qais Yousef
On Fri, Nov 27, 2020 at 01:17:59PM +0000, Qais Yousef wrote: > On 11/24/20 15:50, Will Deacon wrote: > > Allow systems with mismatched 32-bit support at EL0 to run 32-bit > > applications based on a new kernel parameter. > > > > Signed-off-by: Will Deacon <will@kernel.org> > > --- > > Documentation/admin-guide/kernel-parameters.txt | 7 +++++++ > > arch/arm64/kernel/cpufeature.c | 7 +++++++ > > 2 files changed, 14 insertions(+) > > > > diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt > > index 526d65d8573a..f20188c44d83 100644 > > --- a/Documentation/admin-guide/kernel-parameters.txt > > +++ b/Documentation/admin-guide/kernel-parameters.txt > > @@ -289,6 +289,13 @@ > > do not want to use tracing_snapshot_alloc() as it needs > > to be done where GFP_KERNEL allocations are allowed. > > > > + allow_mismatched_32bit_el0 [ARM64] > > + Allow execve() of 32-bit applications and setting of the > > + PER_LINUX32 personality on systems where only a strict > > + subset of the CPUs support 32-bit EL0. When this > > + parameter is present, the set of CPUs supporting 32-bit > > + EL0 is indicated by /sys/devices/system/cpu/aarch32_el0. > > Shouldn't we document that a randomly selected 32-bit CPU will be prevented > from being hotplugged out all the time to act as the last man standing for any > currently running 32-bit application. > > That was a mouthful! I'm sure you can phrase it better :-) Sure, I'll have a go at adding something. Thanks. > If we make this the last patch as it was before adding affinity handling, we > can drop patch 4 more easily I think? I'd still prefer to keep patch 4, but I can certainly try to move this one later in the series. Will
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index 526d65d8573a..f20188c44d83 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -289,6 +289,13 @@ do not want to use tracing_snapshot_alloc() as it needs to be done where GFP_KERNEL allocations are allowed. + allow_mismatched_32bit_el0 [ARM64] + Allow execve() of 32-bit applications and setting of the + PER_LINUX32 personality on systems where only a strict + subset of the CPUs support 32-bit EL0. When this + parameter is present, the set of CPUs supporting 32-bit + EL0 is indicated by /sys/devices/system/cpu/aarch32_el0. + amd_iommu= [HW,X86-64] Pass parameters to the AMD IOMMU driver in the system. Possible values are: diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c index 534f80edb594..29017cbb6c8e 100644 --- a/arch/arm64/kernel/cpufeature.c +++ b/arch/arm64/kernel/cpufeature.c @@ -1273,6 +1273,13 @@ const struct cpumask *system_32bit_el0_cpumask(void) return cpu_possible_mask; } +static int __init parse_32bit_el0_param(char *str) +{ + allow_mismatched_32bit_el0 = true; + return 0; +} +early_param("allow_mismatched_32bit_el0", parse_32bit_el0_param); + static ssize_t aarch32_el0_show(struct device *dev, struct device_attribute *attr, char *buf) {
Allow systems with mismatched 32-bit support at EL0 to run 32-bit applications based on a new kernel parameter. Signed-off-by: Will Deacon <will@kernel.org> --- Documentation/admin-guide/kernel-parameters.txt | 7 +++++++ arch/arm64/kernel/cpufeature.c | 7 +++++++ 2 files changed, 14 insertions(+)