Re: [PATCH 4.2 25/54] memcg: convert threshold to bytes

From: Ben Hutchings
Date: Sat Oct 24 2015 - 01:47:59 EST


On Fri, 2015-10-23 at 10:45 -0700, Greg Kroah-Hartman wrote:
> 4.2-stable review patch.ÂÂIf anyone has any objections, please let me know.
>
> ------------------
>
> From: Shaohua Li <shli@xxxxxx>
>
> commit 424cdc14138088ada1b0e407a2195b2783c6e5ef upstream.
>
> page_counter_memparse() returns pages for the threshold, while
> mem_cgroup_usage() returns bytes for memory usage.ÂÂConvert the
> threshold to bytes.
>
> Fixes: 3e32cb2e0a12b6915 ("memcg: rename cgroup_event to mem_cgroup_event").
> Signed-off-by: Shaohua Li <shli@xxxxxx>
> Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
> Acked-by: Michal Hocko <mhocko@xxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
>
> ---
> Âmm/memcontrol.c |ÂÂÂÂ1 +
> Â1 file changed, 1 insertion(+)
>
> --- a/mm/memcontrol.c
> +++ b/mm/memcontrol.c
> @@ -3687,6 +3687,7 @@ static int __mem_cgroup_usage_register_e
> Â> > ret = page_counter_memparse(args, "-1", &threshold);
> Â> > if (ret)
> Â> > > return ret;
> +> > threshold <<= PAGE_SHIFT;
> Â
> Â> > mutex_lock(&memcg->thresholds_lock);
> Â

mem_cgroup_usage() returns a u64 and I think thatÂthe types of
threshold and mem_cgroup_threshold::threshold also need be changed to
u64 to avoid overflow on large 32-bit systems.

Ben.

--
Ben Hutchings
Beware of bugs in the above code;
I have only proved it correct, not tried it. - Donald Knuth

Attachment: signature.asc
Description: This is a digitally signed message part