Skip to contentSkip to conversation

stable backport request, add cortex-a cpus to whitelist

DISCUSSION Niklas Cassel 2 participants 4 messages Sep 9, 2019 – Sep 25, 2019

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hello,

I would like to request
2a355ec25729 ("arm64: kpti: Whitelist Cortex-A CPUs that don't implement the CSV3 field")

to be backported to 4.19 stable.

These CPUs are not susceptible to Meltdown, so enabling the mitigations for Meltdown (kpti) should be redundant, especially since we know that it can have a huge performance penalty for certain workloads.

kpti will still be automatically enabled if KASLR is enabled.

Kind regards,
Niklas

#1 lore raw
Quoted 5 lines · Niklas Cassel

Hello,

I would like to request
2a355ec25729 ("arm64: kpti: Whitelist Cortex-A CPUs that don't implement the CSV3 field")

Quoted 7 lines

to be backported to 4.19 stable.

These CPUs are not susceptible to Meltdown, so enabling the mitigations for Meltdown (kpti) should be redundant, especially since we know that it can have a huge performance penalty for certain workloads.

kpti will still be automatically enabled if KASLR is enabled.

Now queued up, thanks.

greg k-h

#2 lore raw
Quoted 8 lines · Greg KH
Quoted 7 lines · Niklas Cassel

Hello,

I would like to request
2a355ec25729 ("arm64: kpti: Whitelist Cortex-A CPUs that don't implement the CSV3 field")

to be backported to 4.19 stable.

Quoted 8 lines
Quoted 5 lines

These CPUs are not susceptible to Meltdown, so enabling the mitigations for Meltdown (kpti) should be redundant, especially since we know that it can have a huge performance penalty for certain workloads.

kpti will still be automatically enabled if KASLR is enabled.

Now queued up, thanks.

Hello Greg, Will,

How about applying this also to v4.14 stable? (Since kpti is also enabled on Cortex-A CPUs in v4.14.)

2a355ec25729 does not apply cleanly on v4.14.y,
since a LOT of things have changed in the file.

git log --oneline 2a355ec25729053bb9a1a89b6c1d1cdd6c3b3fb1 --not linux-stable/linux-4.14.y arch/arm64/kernel/cpufeature.c | wc -l 72

However, I've attached a simple backport of the commit.

Kind regards,
Niklas

From 84406bca325ad4dc1c5d517801d298ae8c9b68a0 Mon Sep 17 00:00:00 2001
From: Will Deacon <[email protected]>
Date: Thu, 13 Dec 2018 13:47:38 +0000
Subject: [PATCH] arm64: kpti: Whitelist Cortex-A CPUs that don't implement the
CSV3 field

commit 2a355ec25729053bb9a1a89b6c1d1cdd6c3b3fb1 upstream.

While the CSV3 field of the ID_AA64_PFR0 CPU ID register can be checked to see if a CPU is susceptible to Meltdown and therefore requires kpti to be enabled, existing CPUs do not implement this field.

We therefore whitelist all unaffected Cortex-A CPUs that do not implement the CSV3 field.

---
MIDR_CORTEX_A35 is not included, since the define does not exist in v4.14.y.

 arch/arm64/kernel/cpufeature.c | 5 +++++
 1 file changed, 5 insertions(+)
arch/arm64/kernel/cpufeature.c +5 -0
index 3312d46fa29e..57ec681a8f11 100644
@@ -838,6 +838,11 @@ static bool unmap_kernel_at_el0(const struct arm64_cpu_capabilities *entry,
 	switch (read_cpuid_id() & MIDR_CPU_MODEL_MASK) {
 	case MIDR_CAVIUM_THUNDERX2:
 	case MIDR_BRCM_VULCAN:
+	case MIDR_CORTEX_A53:
+	case MIDR_CORTEX_A55:
+	case MIDR_CORTEX_A57:
+	case MIDR_CORTEX_A72:
+	case MIDR_CORTEX_A73:
 		return false;
 	}
 
Signature · 1 line
2.21.0
#3 lore raw
Quoted 23 lines · Niklas Cassel
Quoted 8 lines · Greg KH
Quoted 7 lines · Niklas Cassel

Hello,

I would like to request
2a355ec25729 ("arm64: kpti: Whitelist Cortex-A CPUs that don't implement the CSV3 field")

to be backported to 4.19 stable.

Quoted 8 lines
Quoted 5 lines

These CPUs are not susceptible to Meltdown, so enabling the mitigations for Meltdown (kpti) should be redundant, especially since we know that it can have a huge performance penalty for certain workloads.

kpti will still be automatically enabled if KASLR is enabled.

Now queued up, thanks.

Hello Greg, Will,

How about applying this also to v4.14 stable? (Since kpti is also enabled on Cortex-A CPUs in v4.14.)

Quoted 7 lines

2a355ec25729 does not apply cleanly on v4.14.y,
since a LOT of things have changed in the file.

git log --oneline 2a355ec25729053bb9a1a89b6c1d1cdd6c3b3fb1 --not linux-stable/linux-4.14.y arch/arm64/kernel/cpufeature.c | wc -l 72

However, I've attached a simple backport of the commit.

Thanks for the backport, now queued up.

greg k-h