Re: [PATCH/RFC 3/3] s390: query dynamic DEBUG_PAGEALLOC setting

From: David Rientjes
Date: Tue Jan 26 2016 - 19:36:21 EST


On Wed, 27 Jan 2016, Joonsoo Kim wrote:

> > I'd agree if CONFIG_DEBUG_PAGEALLOC only did anything when
> > debug_pagealloc_enabled() is true, but that doesn't seem to be the case.
> > When CONFIG_DEBUG_SLAB is enabled, for instance, CONFIG_DEBUG_PAGEALLOC
> > also enables stackinfo storing and poisoning and it's not guarded by
> > debug_pagealloc_enabled().
> >
> > It seems like CONFIG_DEBUG_PAGEALLOC enables debugging functionality
> > outside the scope of the debug_pagealloc=on kernel parameter, so
> > DEBUG_PAGEALLOC(disabled) actually does mean something.
>
> Hello, David.
>
> I tried to fix CONFIG_DEBUG_SLAB case on 04/16 of following patchset.
>
> http://thread.gmane.org/gmane.linux.kernel.mm/144527
>
> I found that there are more sites to fix but not so many.
> We can do it.
>

For the slab case, sure, this can be fixed, but there is other code that
uses CONFIG_DEBUG_PAGEALLOC to suggest debugging is always enabled and is
indifferent to debug_pagealloc_enabled(). I find this in powerpc and
sparc arch code as well as generic vmalloc code.

If we can convert existing users that only check for
CONFIG_DEBUG_PAGEALLOC to rather check for debug_pagealloc_enabled() and
agree that it is only enabled for debug_pagealloc=on, then this would seem
fine. However, I think we should at least consult with those users before
removing an artifact from the kernel log that could be useful in debugging
why a particular BUG() happened.