Re: [PATCH] mm, page_alloc: really disable DEBUG_PAGEALLOC with hibernation

From: Krzysztof Kozlowski
Date: Wed May 19 2021 - 13:57:23 EST


On 19/05/2021 11:48, Vlastimil Babka wrote:
> On 5/19/21 5:30 PM, David Hildenbrand wrote:
>> On 19.05.21 17:28, Krzysztof Kozlowski wrote:
>>> The documentation of DEBUG_PAGEALLOC states that it cannot be used with
>>> hibernation, however the Kconfig entry would allow it if
>>> ARCH_SUPPORTS_DEBUG_PAGEALLOC && !PPC && !SPARC.
>>>
>>> Fixes: ee3b4290aec0 ("generic debug pagealloc: build fix")
>>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx>
>>> ---
>>>   mm/Kconfig.debug | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/mm/Kconfig.debug b/mm/Kconfig.debug
>>> index 1e73717802f8..0ace5b2a9d04 100644
>>> --- a/mm/Kconfig.debug
>>> +++ b/mm/Kconfig.debug
>>> @@ -11,7 +11,7 @@ config PAGE_EXTENSION
>>>   config DEBUG_PAGEALLOC
>>>       bool "Debug page memory allocations"
>>>       depends on DEBUG_KERNEL
>>> -    depends on !HIBERNATION || ARCH_SUPPORTS_DEBUG_PAGEALLOC && !PPC && !SPARC
>>> +    depends on !HIBERNATION && ARCH_SUPPORTS_DEBUG_PAGEALLOC && !PPC && !SPARC
>>>       select PAGE_POISONING if !ARCH_SUPPORTS_DEBUG_PAGEALLOC
>>>       help
>>>         Unmap pages from the kernel linear mapping after free_pages().
>>>
>>
>> I remember this should be working now, as we temporarily map the pages in the
>> direct map when hibernating?
>
> Yeah, and if the problem was the page poisoning based implementation/fallback,
> that was also fixed.
>
> The current dependencies come from the unification by ee3b4290aec03
>
> The question is if PPC and SPARC still really need to disable hibernation.

I tested slightly older kernel (v5.8 with few backports for poison
support with hibernation) and it worked fine on x86_64. For the PPC and
SPARC I don't know.

I can update the Kconfig option description to mention x86_64.


Best regards,
Krzysztof