Skip to content
  • Vincent Chen's avatar
    riscv: set max_pfn to the PFN of the last page · 3d80728a
    Vincent Chen authored
    commit c749bb2d
    
     upstream.
    
    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
     #
    
    After applying this patch, the kernel can pass the test.
    
     # 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
     #
    
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarVincent Chen <vincent.chen@sifive.com>
    Reviewed-by: default avatarAnup Patel <anup@brainfault.org>
    Reviewed-by: default avatarYash Shah <yash.shah@sifive.com>
    Tested-by: default avatarYash Shah <yash.shah@sifive.com>
    Signed-off-by: default avatarPalmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    3d80728a