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

From: Joonsoo Kim
Date: Wed Jan 27 2016 - 23:30:22 EST

On Wed, Jan 27, 2016 at 02:03:36PM +0100, Vlastimil Babka wrote:
> On 01/27/2016 01:47 PM, Christian Borntraeger wrote:
> > On 01/27/2016 01:41 PM, Vlastimil Babka wrote:
> >> On 01/27/2016 01:59 AM, Joonsoo Kim wrote:
> >>
> >> I think it might be worth also to convert debug_pagealloc_enabled() to be based
> >> on static key, like I did for page_owner [1]. That should help make it possible
> >> to have virtually no overhead when compiling kernel with CONFIG_DEBUG_PAGEALLOC
> >> without enabling it boot-time. I assume it's one of the goals here?
> >
> > We could do something like that but dump_stack and setup of the initial identity
> > mapping of the kernel as well as the initial page protection are not hot path
> > as far as I can tell. Any other places?
> Well, mostly kernel_map_pages() which is used in page allocation hotpaths.

We cannot just convert it because setup_arch() is called before
jump_label_init(). We can do it by introducing _early variant but
I'm not sure it's worth doing. I think that just make it unlikely
works well. Recently, I tested a micro benchmark on slab alloc/free
on CONFIG_SLUB with applying static branch for debug option which
currently is using unlikely branch and can't find any noticeble
performance difference.