mbox series

[v5,0/4] Refactor free_area_init_core and add free_area_init_core_hotplug

Message ID 20180730101757.28058-1-osalvador@techadventures.net (mailing list archive)
Headers show
Series Refactor free_area_init_core and add free_area_init_core_hotplug | expand

Message

Oscar Salvador July 30, 2018, 10:17 a.m. UTC
From: Oscar Salvador <osalvador@suse.de>

Changes:

v4 -> v5:
	- Remove __ref from hotadd_new_pgdat and placed it to
	  free_area_init_core_hotplug. (Suggested by Pavel)
	- Since free_area_init_core_hotplug is now allowed to be in a different
	  section (__ref), remove the __paginginit.)
	- Stylecode in free_area_init_core_hotplug (Suggested by Pavel)
	- Replace s/@__paginginit/@__init for free_area_init_node/free_area_init_core
	  as these functions are now only called during early init.
	- Add Reviewd-by from Pavel

v3 -> v4:
        - Unify patch-5 and patch-4.
        - Make free_area_init_core __init (Suggested by Michal).
        - Make zone_init_internals __paginginit (Suggested by Pavel).
        - Add Reviewed-by/Acked-by:

v2 -> v3:
        - Think better about split free_area_init_core for
          memhotplug/early init context (Suggested by Michal).

This patchset does three things:

 1) Clean up/refactor free_area_init_core/free_area_init_node
    by moving the ifdefery out of the functions.
 2) Move the pgdat/zone initialization in free_area_init_core to its
    own function.
 3) Introduce free_area_init_core_hotplug, a small subset of free_area_init_core,
    which is only called from memhotlug code path.
    In this way, we have:

    free_area_init_core: called during early initialization
    free_area_init_core_hotplug: called whenever a new node is allocated/re-used (memhotplug path)

Oscar Salvador (3):
  mm/page_alloc: Move ifdefery out of free_area_init_core
  mm/page_alloc: Inline function to handle
    CONFIG_DEFERRED_STRUCT_PAGE_INIT
  mm/page_alloc: Introduce free_area_init_core_hotplug

Pavel Tatashin (1):
  mm: access zone->node via zone_to_nid() and zone_set_nid()

 include/linux/mm.h     |  15 ++----
 include/linux/mmzone.h |  26 +++++++---
 mm/memory_hotplug.c    |  16 ++----
 mm/mempolicy.c         |   4 +-
 mm/mm_init.c           |   9 +---
 mm/page_alloc.c        | 134 +++++++++++++++++++++++++++++++++++--------------
 6 files changed, 130 insertions(+), 74 deletions(-)