Subject: + memcg-avoid-overflow-caused-by-page_align.patch added to -mm tree To: handai.szj@xxxxxxxxxx,h.huangqiang@xxxxxxxxxx,jeff.liu@xxxxxxxxxx,mhocko@xxxxxxx,nishimura@xxxxxxxxxxxxxxxxx From: akpm@xxxxxxxxxxxxxxxxxxxx Date: Wed, 07 Aug 2013 13:36:04 -0700 The patch titled Subject: memcg: avoid overflow caused by PAGE_ALIGN has been added to the -mm tree. Its filename is memcg-avoid-overflow-caused-by-page_align.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/memcg-avoid-overflow-caused-by-page_align.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/memcg-avoid-overflow-caused-by-page_align.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Sha Zhengju <handai.szj@xxxxxxxxxx> Subject: memcg: avoid overflow caused by PAGE_ALIGN Since PAGE_ALIGN is aligning up(the next page boundary), so after PAGE_ALIGN, the value might be overflow, such as write the MAX value to *.limit_in_bytes. $ cat /cgroup/memory/memory.limit_in_bytes 18446744073709551615 # echo 18446744073709551615 > /cgroup/memory/memory.limit_in_bytes bash: echo: write error: Invalid argument Some user programs might depend on such behaviours(like libcg, we read the value in snapshot, then use the value to reset cgroup later), and that will cause confusion. So we need to fix it. Signed-off-by: Sha Zhengju <handai.szj@xxxxxxxxxx> Signed-off-by: Qiang Huang <h.huangqiang@xxxxxxxxxx> Acked-by: Michal Hocko <mhocko@xxxxxxx> Cc: Daisuke Nishimura <nishimura@xxxxxxxxxxxxxxxxx> Cc: Jeff Liu <jeff.liu@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- kernel/res_counter.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff -puN kernel/res_counter.c~memcg-avoid-overflow-caused-by-page_align kernel/res_counter.c --- a/kernel/res_counter.c~memcg-avoid-overflow-caused-by-page_align +++ a/kernel/res_counter.c @@ -195,6 +195,10 @@ int res_counter_memparse_write_strategy( if (*end != '\0') return -EINVAL; - *res = PAGE_ALIGN(*res); + if (PAGE_ALIGN(*res) >= *res) + *res = PAGE_ALIGN(*res); + else + *res = RES_COUNTER_MAX; + return 0; } _ Patches currently in -mm which might be from handai.szj@xxxxxxxxxx are memcg-correct-resource_max-to-ullong_max.patch memcg-rename-resource_max-to-res_counter_max.patch memcg-avoid-overflow-caused-by-page_align.patch memcg-reduce-function-dereference.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html