On Thu, Apr 28, 2016 at 03:46:33PM +0800, Rui Teng wrote: > On 4/25/16 1:21 PM, js1304@xxxxxxxxx wrote: > >From: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx> > > > >Some of zone threshold depends on number of managed pages in the zone. > >When memory is going on/offline, it can be changed and we need to > >adjust them. > > > >This patch add recalculation to appropriate places and clean-up > >related function for better maintanance. > > > >Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx> > >--- > > mm/page_alloc.c | 36 +++++++++++++++++++++++++++++------- > > 1 file changed, 29 insertions(+), 7 deletions(-) > > > >diff --git a/mm/page_alloc.c b/mm/page_alloc.c > >index 71fa015..ffa93e0 100644 > >--- a/mm/page_alloc.c > >+++ b/mm/page_alloc.c > >@@ -4633,6 +4633,8 @@ int local_memory_node(int node) > > } > > #endif > > > >+static void setup_min_unmapped_ratio(struct zone *zone); > >+static void setup_min_slab_ratio(struct zone *zone); > > #else /* CONFIG_NUMA */ > > > > static void set_zonelist_order(void) > >@@ -5747,9 +5749,8 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat) > > zone->managed_pages = is_highmem_idx(j) ? realsize : freesize; > > #ifdef CONFIG_NUMA > > zone->node = nid; > >- zone->min_unmapped_pages = (freesize*sysctl_min_unmapped_ratio) > >- / 100; > >- zone->min_slab_pages = (freesize * sysctl_min_slab_ratio) / 100; > >+ setup_min_unmapped_ratio(zone); > >+ setup_min_slab_ratio(zone); > > The original logic use freesize to calculate the > zone->min_unmapped_pages and zone->min_slab_pages here. > But the new function will use zone->managed_pages. > Do you mean the original logic is wrong, or the managed_pages will > always be freesize when CONFIG_NUMA defined? managed_pages will always be freesize so no problem. Thanks. -- 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>