On 06/19/2018, 09:56 PM, Pavel Tatashin wrote: > 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. Hi, I seem I never replied. Attaching .config and the qemu cmdline: $ qemu-kvm -m 2000 -hda /dev/null -kernel bzImage "-m 2000" is important to reproduce. If I disable CONFIG_DEFERRED_STRUCT_PAGE_INIT (which the patch allowed to enable), the error goes away, of course. thanks, -- js suse labs
Attachment:
.config
Description: application/config