Hello Serge, Thomas,
On 13/11/2020 10:17, Alexander Sverdlin wrote:
So IMHO what could be the best conclusion in the framework of this patch:
- As Thomas said any platform-specific reservation should be done in the
platform-specific code. That means if octeon needs some memory behind the kernel being reserved, then it should be done for example in prom_init(). 2) The check_kernel_sections_mem() method can be removed. But it should be done carefully. We at least need to try to find all the platforms, which rely on its functionality.
Thanks for looking into this! I agree with your analysis, I'll try to rework, removing check_kernel_sections_mem().
but now, after grepping inside arch/mips, I found that only Octeon does memblock_add() of the area between _text and _and explicitly.
Therefore, maybe many other platforms indeed rely on check_kernel_sections_mem()? Maybe the proper way would be really to remote the PFN_UP()/PFN_DOWN() from check_kernel_sections_mem(), which is not necessary after commit b10d6bca8720 ("arch, drivers: replace for_each_membock() with for_each_mem_range()") which fixed the resource_init()?
As completely unrelated optimization I can remove the same memblock_add() of the kernel sections from the Octeon platform code.