On Fri, Mar 4, 2016 at 4:48 PM, Vlastimil Babka <vbabka@xxxxxxx> wrote: > On 03/03/2016 08:01 AM, Li Zhang wrote: >> --- a/mm/page_alloc.c >> +++ b/mm/page_alloc.c >> @@ -293,13 +293,20 @@ static inline bool update_defer_init(pg_data_t *pgdat, >> unsigned long pfn, unsigned long zone_end, >> unsigned long *nr_initialised) >> { >> + unsigned long max_initialise; >> + >> /* Always populate low zones for address-contrained allocations */ >> if (zone_end < pgdat_end_pfn(pgdat)) >> return true; >> + /* >> + * Initialise at least 2G of a node but also take into account that >> + * two large system hashes that can take up 1GB for 0.25TB/node. >> + */ > > The indentation is wrong here. Thanks for reviewing, I will fix it in next version. > >> + max_initialise = max(2UL << (30 - PAGE_SHIFT), >> + (pgdat->node_spanned_pages >> 8)); >> >> - /* Initialise at least 2G of the highest zone */ >> (*nr_initialised)++; >> - if (*nr_initialised > (2UL << (30 - PAGE_SHIFT)) && >> + if ((*nr_initialised > max_initialise) && >> (pfn & (PAGES_PER_SECTION - 1)) == 0) { >> pgdat->first_deferred_pfn = pfn; >> return false; >> > -- Best Regards -Li -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>