Correct, the pgflags asserts were triggered when we were setting reserved
flags to struct page for PFN 0 in which was never initialized through
__init_single_page(). The reason they were triggered is because we set all
uninitialized memory to ones in one of the debug patches.

And why don't we need the same treatment for other architectures?


I have not seen similar issues on other architectures. At least this low memory reserve is x86 specific for BIOS purposes:

Documentation/admin-guide/kernel-parameters.txt
3624    reservelow=     [X86]
3625                    Format: nn[K]
3626                    Set the amount of memory to reserve for BIOS at
3627                    the bottom of the address space.

If there are similar cases with other architectures, they will be caught by the last patch in this series, where all allocated memory is set to ones, and page flags asserts will be triggered. I have boot-tested on SPARC, ARM, and x86.

Pasha

Reply via email to