On Tue, Jun 19, 2018 at 9:50 AM Pavel Tatashin <pasha.tatashin@xxxxxxxxxx> wrote: > > On Sat, Jun 16, 2018 at 4:04 AM Jiri Slaby <jslaby@xxxxxxx> wrote: > > > > On 11/21/2017, 08:24 AM, Michal Hocko wrote: > > > On Thu 16-11-17 20:46:01, Pavel Tatashin wrote: > > >> There is no need to have ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT, > > >> as all the page initialization code is in common code. > > >> > > >> Also, there is no need to depend on MEMORY_HOTPLUG, as initialization code > > >> does not really use hotplug memory functionality. So, we can remove this > > >> requirement as well. > > >> > > >> This patch allows to use deferred struct page initialization on all > > >> platforms with memblock allocator. > > >> > > >> Tested on x86, arm64, and sparc. Also, verified that code compiles on > > >> PPC with CONFIG_MEMORY_HOTPLUG disabled. > > > > > > There is slight risk that we will encounter corner cases on some > > > architectures with weird memory layout/topology > > > > Which x86_32-pae seems to be. Many bad page state errors are emitted > > during boot when this patch is applied: > > Hi Jiri, > > Thank you for reporting this bug. > > Because 32-bit systems are limited in the maximum amount of physical > memory, they don't need deferred struct pages. So, we can add depends > on 64BIT to DEFERRED_STRUCT_PAGE_INIT in mm/Kconfig. > > However, before we do this, I want to try reproducing this problem and > root cause it, as it might expose a general problem that is not 32-bit > specific. Hi Jiri, Could you please attach your config and full qemu arguments that you used to reproduce this bug. Thank you, Pavel > > Thank you, > Pavel