diff options
author | Oleg Nesterov <[email protected]> | 2016-08-17 17:36:29 +0200 |
---|---|---|
committer | Ingo Molnar <[email protected]> | 2016-08-18 10:03:26 +0200 |
commit | 6c4687cc17a788a6dd8de3e27dbeabb7cbd3e066 (patch) | |
tree | 18c11975cf2c765948282af20ba5fa011e12af52 /tools/perf/scripts/python/bin/export-to-postgresql-report | |
parent | 3cace81ea5bb0b3f2b97cab8e2c8e1fae2feb7ed (diff) |
uprobes: Fix the memcg accounting
__replace_page() wronlgy calls mem_cgroup_cancel_charge() in "success" path,
it should only do this if page_check_address() fails.
This means that every enable/disable leads to unbalanced mem_cgroup_uncharge()
from put_page(old_page), it is trivial to underflow the page_counter->count
and trigger OOM.
Reported-and-tested-by: Brenden Blanco <[email protected]>
Signed-off-by: Oleg Nesterov <[email protected]>
Reviewed-by: Johannes Weiner <[email protected]>
Acked-by: Michal Hocko <[email protected]>
Cc: Alexander Shishkin <[email protected]>
Cc: Alexei Starovoitov <[email protected]>
Cc: Arnaldo Carvalho de Melo <[email protected]>
Cc: Arnaldo Carvalho de Melo <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: Vladimir Davydov <[email protected]>
Cc: [email protected] # 3.17+
Fixes: 00501b531c47 ("mm: memcontrol: rewrite charge API")
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/bin/export-to-postgresql-report')
0 files changed, 0 insertions, 0 deletions