Messages in this thread | | | Date | Tue, 9 Sep 2014 12:53:18 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH] mm: page_alloc: Fix setting of ZONE_FAIR_DEPLETED on UP v2 |
| |
On Mon, 8 Sep 2014 12:57:18 +0100 Mel Gorman <mgorman@suse.de> 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?
| |