* [patch] mm: memcontrol: clean up reclaim size variable use in try_charge()
@ 2014-08-04 20:35 Johannes Weiner
2014-08-05 12:26 ` Michal Hocko
0 siblings, 1 reply; 2+ messages in thread
From: Johannes Weiner @ 2014-08-04 20:35 UTC (permalink / raw)
To: Andrew Morton; +Cc: Michal Hocko, linux-mm, cgroups, linux-kernel
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@cmpxchg.org>
---
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
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [patch] mm: memcontrol: clean up reclaim size variable use in try_charge()
2014-08-04 20:35 [patch] mm: memcontrol: clean up reclaim size variable use in try_charge() Johannes Weiner
@ 2014-08-05 12:26 ` Michal Hocko
0 siblings, 0 replies; 2+ messages in thread
From: Michal Hocko @ 2014-08-05 12:26 UTC (permalink / raw)
To: Johannes Weiner; +Cc: Andrew Morton, linux-mm, cgroups, linux-kernel
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@cmpxchg.org>
Acked-by: Michal Hocko <mhocko@suse.cz>
> ---
> 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@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-08-05 12:26 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-04 20:35 [patch] mm: memcontrol: clean up reclaim size variable use in try_charge() Johannes Weiner
2014-08-05 12:26 ` Michal Hocko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).