Message ID | 20210519152804.27063-1-krzysztof.kozlowski@canonical.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mm, page_alloc: really disable DEBUG_PAGEALLOC with hibernation | expand |
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@canonical.com> > --- > 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?
On 5/19/21 5:28 PM, 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@canonical.com> Hmm the documentation seems wrong, as going through history it was indeed in conflict only on PPC and SPARC. > --- > 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(). >
On 19/05/2021 11:30, 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@canonical.com> >> --- >> 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? Let me actually test it on x86_64... Best regards, Krzysztof
On 19/05/2021 11:38, Vlastimil Babka wrote: > On 5/19/21 5:28 PM, 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@canonical.com> > > Hmm the documentation seems wrong, as going through history it was indeed in > conflict only on PPC and SPARC. Indeed, x86 was never marked as a problem, although text/info warning does not mention specific architectures. > Best regards, Krzysztof
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@canonical.com> >> --- >> 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.
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@canonical.com> >>> --- >>> 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
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().
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@canonical.com> --- mm/Kconfig.debug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)