FAILED: patch "[PATCH] uprobes: Fix the memcg accounting" failed to apply to 4.4-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
6c4687cc17a788a6dd8de3e27dbeabb7cbd3e066Mon Sep 17 00:00:00 2001
From: Oleg Nesterov <[email protected]>
Date: Wed, 17 Aug 2016 17:36:29 +0200
Subject: [PATCH] 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.
kernel/events/uprobes.c +3 -2
@@ -172,8 +172,10 @@ static int __replace_page(struct vm_area_struct *vma, unsigned long addr,mmu_notifier_invalidate_range_start (mm, mmun_start, mmun_end); err = -EAGAIN ; ptep =page_check_address (page, mm, addr, &ptl,0 ); -if (!ptep) +if (!ptep) { +mem_cgroup_cancel_charge (kpage, memcg, false); goto unlock; + }get_page (kpage);page_add_new_anon_rmap (kpage, vma, addr, false);
@@ -200,7 +202,6 @@ static int __replace_page(struct vm_area_struct *vma, unsigned long addr, err =0 ; unlock: -mem_cgroup_cancel_charge (kpage, memcg, false);mmu_notifier_invalidate_range_end (mm, mmun_start, mmun_end);unlock_page (page);return err;
Quoted 5 lines · Greg KH
The patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
This should fix it
---
Quoted 1 line
From
714b2350cecc97085429a16a8de78f74804d477bMon Sep 17 00:00:00 2001
From: Oleg Nesterov <[email protected]>
Date: Wed, 17 Aug 2016 17:36:29 +0200
Subject: [PATCH] uprobes: Fix the memcg accounting
commit 6c4687cc17a788a6dd8de3e27dbeabb7cbd3e066 upstream.
__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.
--- kernel/events/uprobes.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
kernel/events/uprobes.c +3 -2
@@ -171,8 +171,10 @@ static int __replace_page(struct vm_area_struct *vma, unsigned long addr,mmu_notifier_invalidate_range_start (mm, mmun_start, mmun_end); err = -EAGAIN ; ptep =page_check_address (page, mm, addr, &ptl,0 ); -if (!ptep) +if (!ptep) { +mem_cgroup_cancel_charge (kpage, memcg); goto unlock; + }get_page (kpage);page_add_new_anon_rmap (kpage, vma, addr);
@@ -199,7 +201,6 @@ static int __replace_page(struct vm_area_struct *vma, unsigned long addr, err =0 ; unlock: -mem_cgroup_cancel_charge (kpage, memcg);mmu_notifier_invalidate_range_end (mm, mmun_start, mmun_end);unlock_page (page);return err;
Signature · 5 lines
2.9.3 -- Michal Hocko SUSE Labs
Oleg Nesterov
maintainerQuoted 7 lines · Michal Hocko
Quoted 5 lines · Greg KH
The patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Interestingly, I didn't receive this email...
Quoted 1 line
This should fix it
Yes, thanks a lot Michal!
Oleg.
Greg KH
maintainerQuoted 7 lines · Michal Hocko
Quoted 5 lines · Greg KH
The patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Quoted 8 lines
This should fix it
---Quoted 1 line
From
714b2350cecc97085429a16a8de78f74804d477bMon Sep 17 00:00:00 2001From: Oleg Nesterov <[email protected]>
Date: Wed, 17 Aug 2016 17:36:29 +0200
Subject: [PATCH] uprobes: Fix the memcg accountingcommit
6c4687cc17a788a6dd8de3e27dbeabb7cbd3e066upstream.
Thanks, now queued up.
greg k-h