On (02/09/18 14:22), Pavel Tatashin wrote: [..] > +/* > + * If this zone has deferred pages, try to grow it by initializing enough > + * deferred pages to satisfy the allocation specified by order, rounded up to > + * the nearest PAGES_PER_SECTION boundary. So we're adding memory in > increments > + * of SECTION_SIZE bytes by initializing struct pages in increments of > + * PAGES_PER_SECTION * sizeof(struct page) bytes. > + * > + * Return true when zone was grown by at least number of pages specified by > + * order. Otherwise return false. > + * > + * Note: We use noinline because this function is needed only during boot, > and > + * it is called from a __ref function _deferred_grow_zone. This way we are > + * making sure that it is not inlined into permanent text section. > + */ > +static noinline bool __init > +deferred_grow_zone(struct zone *zone, unsigned int order) > +{ > + int zid = zone_idx(zone); > + int nid = zone->node;
^^^^^^^^^ Should be CONFIG_NUMA dependent struct zone { ... #ifdef CONFIG_NUMA int node; #endif ... -ss