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

Gavin Shan
2020-04-28T08:56:18Z

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