Re: [PATCH v1] mm: relax deferred struct page requirements
From: Pasha Tatashin
Date: Thu Aug 30 2018 - 11:45:30 EST
Hi Jiri,
I believe this bug is fixed with this change:
d39f8fb4b7776dcb09ec3bf7a321547083078ee3
mm: make DEFERRED_STRUCT_PAGE_INIT explicitly depend on SPARSEMEM
I am not able to reproduce this problem on x86-32.
Pavel
On 8/30/18 10:35 AM, Pavel Tatashin wrote:
> Thank you Jiri, I am studying it.
>
> Pavel
>
> On 8/24/18 3:44 AM, Jiri Slaby wrote:
>> pasha.tatashin@xxxxxxxxxx -> pavel.tatashin@xxxxxxxxxxxxx
>>
>> 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:
>>>> 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,
>>>
>>
>>