On Mon 04-08-14 16:35:02, Johannes Weiner wrote: > Charge reclaim and OOM currently use the charge batch variable, but > batching is already disabled at that point. To simplify the charge > logic, the batch variable is reset to the original request size when > reclaim is entered, so it's functionally equal, but it's misleading. > > Switch reclaim/OOM to nr_pages, which is the original request size. > > Signed-off-by: Johannes Weiner <hannes@xxxxxxxxxxx> Acked-by: Michal Hocko <mhocko@xxxxxxx> > --- > mm/memcontrol.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 8d65dadeec1b..ec4dcf1b9562 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -2574,7 +2574,7 @@ retry: > > nr_reclaimed = mem_cgroup_reclaim(mem_over_limit, gfp_mask, flags); > > - if (mem_cgroup_margin(mem_over_limit) >= batch) > + if (mem_cgroup_margin(mem_over_limit) >= nr_pages) > goto retry; > > if (gfp_mask & __GFP_NORETRY) > @@ -2588,7 +2588,7 @@ retry: > * unlikely to succeed so close to the limit, and we fall back > * to regular pages anyway in case of failure. > */ > - if (nr_reclaimed && batch <= (1 << PAGE_ALLOC_COSTLY_ORDER)) > + if (nr_reclaimed && nr_pages <= (1 << PAGE_ALLOC_COSTLY_ORDER)) > goto retry; > /* > * At task move, charge accounts can be doubly counted. So, it's > @@ -2606,7 +2606,7 @@ retry: > if (fatal_signal_pending(current)) > goto bypass; > > - mem_cgroup_oom(mem_over_limit, gfp_mask, get_order(batch)); > + mem_cgroup_oom(mem_over_limit, gfp_mask, get_order(nr_pages)); > nomem: > if (!(gfp_mask & __GFP_NOFAIL)) > return -ENOMEM; > -- > 2.0.3 > -- Michal Hocko SUSE Labs -- 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>