Re: [PATCH v1] mm: relax deferred struct page requirements
From: Jiri Slaby <hidden>
Date: 2018-08-24 07:44:46
Also in:
linux-mm, linux-s390, lkml
pasha.tatashin@oracle.com -> pavel.tatashin@microsoft.com due to 550 5.1.1 Unknown recipient address. On 08/24/2018, 09:32 AM, Jiri Slaby wrote:
On 06/19/2018, 09:56 PM, Pavel Tatashin wrote:quoted
On Tue, Jun 19, 2018 at 9:50 AM Pavel Tatashin [off-list ref] wrote:quoted
On Sat, Jun 16, 2018 at 4:04 AM Jiri Slaby [off-list ref] wrote:quoted
On 11/21/2017, 08:24 AM, Michal Hocko wrote:quoted
On Thu 16-11-17 20:46:01, Pavel Tatashin wrote:quoted
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/topologyWhich 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