On Mon, 8 Sep 2014 12:57:18 +0100 Mel Gorman <mgorman@xxxxxxx> wrote: > zone_page_state is an API hazard because of the difference in behaviour > between SMP and UP is very surprising. There is a good reason to allow > NR_ALLOC_BATCH to go negative -- when the counter is reset the negative > value takes recent activity into account. This patch makes zone_page_state > behave the same on SMP and UP as saving one branch on UP is not likely to > make a measurable performance difference. > > ... > > --- a/include/linux/vmstat.h > +++ b/include/linux/vmstat.h > @@ -131,10 +131,8 @@ static inline unsigned long zone_page_state(struct zone *zone, > enum zone_stat_item item) > { > long x = atomic_long_read(&zone->vm_stat[item]); > -#ifdef CONFIG_SMP > if (x < 0) > x = 0; > -#endif > return x; > } We now have three fixes for the same thing. I'm presently holding on to hannes's mm-page_alloc-fix-zone-allocation-fairness-on-up.patch. Regularizing zone_page_state() in this fashion seems a good idea and is presumably safe because callers have been tested with SMP. So unless shouted at I think I'll queue this one for 3.18? -- 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>