Re: [PATCH] arm64/mm: Reject invalid NUMA option

From: Gavin Shan
Date: Tue Apr 28 2020 - 04:56:17 EST


Hi Will,

On 4/28/20 5:25 PM, Will Deacon wrote:
On Tue, Apr 28, 2020 at 02:35:20PM +1000, Gavin Shan wrote:
On 4/28/20 1:09 PM, Steven Rostedt wrote:

[...]


Could this be a bug in the implementation of strncmp() in
arch/arm64/lib/strncmp.S. As I don't know arm64 assembly, I have no idea
what it is trying to do.

But strncmp("o","off",3) returning zero *is* a bug.


I think it's false alarm. The patch has been in my local repo for a while.
I checked out 5.7.rc3 and tried passing "numa=o" to the kernel, @numa_off
is unchanged and its value is false. I also check the return value from
strncmp() as below, it's correct. Nothing is broken. I should have retested
before posting it. Sorry for the noise. Please ignore the crap patch :)

Hmm, it's still worrying that you had that patch kicking around though, as
it sounds like it /used/ to be broken. Would you be able to test the LTS
kernels (5.4, 4.19, 4.14, 4.9, 4.4) to check that we're not missing a
backport, please? Sorry to be a pain, but I'd like to get to the bottom of
this!


Sure, There are nothing to worry. I tried the following branches of the stable
tree. They all looks good in this regard.

linux-5.6.y
linux-5.5.y
linux-5.4.y
linux-5.3.y
linux-4.19.y
linux-4.9.y

linux-4.4.y isn't tried because the corresponding parameter starts to exist
from linux-4.7.y: 1a2db300348b ("arm64, numa: Add NUMA support for arm64 platforms.")

# git tag --contains 1a2db300348b | sort -V | head -n 3
v4.7
v4.7-rc1
v4.7-rc2

In the experiment, the following pr_info() is added and I got same output
from above branches:

diff --git a/arch/arm64/mm/numa.c b/arch/arm64/mm/numa.c
index b1e42bad69ac..1e0e3491de54 100644
--- a/arch/arm64/mm/numa.c
+++ b/arch/arm64/mm/numa.c
@@ -44,6 +44,8 @@ static __init int numa_parse_early_param(char *opt)
if (!strncmp(opt, "off", 3))
numa_off = true;
+ pr_info("===> numa_off=%s\n", numa_off ? "true" : "false");
+


[ 0.000000] NUMA: ===> numa_off=false



There is unrelated compiling warnings in linux-5.3.y:

drivers/pinctrl/pinctrl-rockchip.c: In function ‘rockchip_gpio_set_config’:
drivers/pinctrl/pinctrl-rockchip.c:2783:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
rockchip_gpio_set_debounce(gc, offset, true);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pinctrl/pinctrl-rockchip.c:2795:2: note: here
default:
^~~~~~~


Thanks,

Will


Thanks,
Gavin