APPLIED/cmt: [PATCH 0/1] [SRU][F/G][RISCV] riscv: set max_pfn to the PFN of the last page
Khaled Elmously
khalid.elmously at canonical.com
Thu May 14 04:40:32 UTC 2020
Applied, and removed the 'linux-next' from the provenence, and marked the bug for focal.
On 2020-05-05 10:27:44 , Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> [ For ubuntu-riscv-focal ubuntu-riscv-groovy ]
>
> BugLink: https://bugs.launchpad.net/bugs/1876885
>
> == SRU Justification Focal/Groovy ==
>
> The current max_pfn equals to zero. In this case, I found it caused users
> cannot get some page information through /proc such as kpagecount in v5.6
> kernel because of new sanity checks. The following message is displayed by
> stress-ng test suite with the command "stress-ng --verbose --physpage 1 -t
> 1" on HiFive unleashed board.
>
> # stress-ng --verbose --physpage 1 -t 1
> stress-ng: debug: [109] 4 processors online, 4 processors configured
> stress-ng: info: [109] dispatching hogs: 1 physpage
> stress-ng: debug: [109] cache allocate: reducing cache level from L3 (too high) to L0
> stress-ng: debug: [109] get_cpu_cache: invalid cache_level: 0
> stress-ng: info: [109] cache allocate: using built-in defaults as no suitable cache found
> stress-ng: debug: [109] cache allocate: default cache size: 2048K
> stress-ng: debug: [109] starting stressors
> stress-ng: debug: [109] 1 stressor spawned
> stress-ng: debug: [110] stress-ng-physpage: started [110] (instance 0)
> stress-ng: error: [110] stress-ng-physpage: cannot read page count for address 0x3fd34de000 in /proc/kpagecount, errno=0 (Success)
> stress-ng: error: [110] stress-ng-physpage: cannot read page count for address 0x3fd32db078 in /proc/kpagecount, errno=0 (Success)
> ...
> stress-ng: error: [110] stress-ng-physpage: cannot read page count for address 0x3fd32db078 in /proc/kpagecount, errno=0 (Success)
> stress-ng: debug: [110] stress-ng-physpage: exited [110] (instance 0)
> stress-ng: debug: [109] process [110] terminated
> stress-ng: info: [109] successful run completed in 1.00s
> #
>
> == Fix ==
>
> Upstream commit in linux-next:
>
> commit c749bb2d554825e007cbc43b791f54e124dadfce
> Author: Vincent Chen <vincent.chen at sifive.com>
> Date: Mon Apr 27 14:59:24 2020 +0800
>
> riscv: set max_pfn to the PFN of the last page
>
> == Test Case ==
>
> Without the patch, running stress-ng --verbose --physpage 1 -t
> 1 on HiFive unleashed board will trip the bug. With the patch, the test passes as follows:
>
> # stress-ng --verbose --physpage 1 -t 1
> stress-ng: debug: [104] 4 processors online, 4 processors configured stress-ng: info: [104] dispatching hogs: 1 physpage
> stress-ng: info: [104] cache allocate: using defaults, can't determine cache details from sysfs
> stress-ng: debug: [104] cache allocate: default cache size: 2048K
> stress-ng: debug: [104] starting stressors
> stress-ng: debug: [104] 1 stressor spawned
> stress-ng: debug: [105] stress-ng-physpage: started [105] (instance 0) stress-ng: debug: [105] stress-ng-physpage: exited [105] (instance 0) stress-ng: debug: [104] process [105] terminated
> stress-ng: info: [104] successful run completed in 1.01s
>
> == Regression Potential ==
>
> Small, this correctly fixes the max_pfn and max_low_pfn to the correct end of DRAM location. The fix now can be shown to set these appropriately because stress-ng no longer triggers this corner case.
>
> Vincent Chen (1):
> riscv: set max_pfn to the PFN of the last page
>
> arch/riscv/mm/init.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> --
> 2.25.1
>
>
> --
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
More information about the kernel-team
mailing list