Skip to content
  • Oscar Salvador's avatar
    mm/page_ext.c: make page_ext_init a noop when CONFIG_PAGE_EXTENSION but nothing uses it · 3a45acc0
    Oscar Salvador authored
    static struct page_ext_operations *page_ext_ops[] always contains debug_guardpage_ops,
    
    static struct page_ext_operations *page_ext_ops[] = {
            &debug_guardpage_ops,
     #ifdef CONFIG_PAGE_OWNER
            &page_owner_ops,
     #endif
    ...
    }
    
    but for it to work, CONFIG_DEBUG_PAGEALLOC must be enabled first.  If
    someone has CONFIG_PAGE_EXTENSION, but has none of its users, eg:
    (CONFIG_PAGE_OWNER, CONFIG_DEBUG_PAGEALLOC, CONFIG_IDLE_PAGE_TRACKING),
    we can shrink page_ext_init() to a simple retq.
    
      $ size vmlinux  (before patch)
            text      data       bss       dec       hex  filename
        14356698   5681582   1687748  21726028   14b834c  vmlinux
    
      $ size vmlinux  (after patch)
            text      data       bss       dec       hex  filename
        14356008   5681538   1687748  21725294   14b806e  vmlinux
    
    On the other hand, it might does not even make sense, since if someone
    enables CONFIG_PAGE_EXTENSION, I would expect him...
    3a45acc0