* [patch 0/2] memcg fixups that fell through cracks in 3.5 @ 2012-10-04 18:09 Johannes Weiner 2012-10-04 18:09 ` [patch 1/2] mm: memcontrol: handle potential crash when rmap races with task exit Johannes Weiner 2012-10-04 18:09 ` [patch 2/2] mm: memcg: clean up mm_match_cgroup() signature Johannes Weiner 0 siblings, 2 replies; 7+ messages in thread From: Johannes Weiner @ 2012-10-04 18:09 UTC (permalink / raw) To: Andrew Morton Cc: Michal Hocko, Konstantin Khlebnikov, linux-mm, cgroups, linux-kernel Hi Andrew, an older version of "mm: memcg: count pte references from every member of the reclaimed hierarchy" patch made it into the 3.5 (c3ac9a8ade65ccbfd145fbff895ae8d8d62d09b0) by accident and I didn't notice until just now. #1 is a fixup on top, tagged for 3.5-stable. #2 is a cleanup you requested but probably missed as it was attached to a mail buried in the thread. For 3.6. Patches against mm.git. -- 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] 7+ messages in thread
* [patch 1/2] mm: memcontrol: handle potential crash when rmap races with task exit 2012-10-04 18:09 [patch 0/2] memcg fixups that fell through cracks in 3.5 Johannes Weiner @ 2012-10-04 18:09 ` Johannes Weiner 2012-10-04 18:49 ` Michal Hocko 2012-10-04 18:09 ` [patch 2/2] mm: memcg: clean up mm_match_cgroup() signature Johannes Weiner 1 sibling, 1 reply; 7+ messages in thread From: Johannes Weiner @ 2012-10-04 18:09 UTC (permalink / raw) To: Andrew Morton Cc: Michal Hocko, Konstantin Khlebnikov, linux-mm, cgroups, linux-kernel page_referenced() counts only references of mm's that are associated with the memcg hierarchy that is being reclaimed. However, if it races with the owner of the mm exiting, mm->owner may be NULL. Don't crash, just ignore the reference. Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> Cc: stable@kernel.org [3.5] --- include/linux/memcontrol.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 8d9489f..8686294 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -91,7 +91,7 @@ int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup) rcu_read_lock(); memcg = mem_cgroup_from_task(rcu_dereference((mm)->owner)); - match = __mem_cgroup_same_or_subtree(cgroup, memcg); + match = memcg && __mem_cgroup_same_or_subtree(cgroup, memcg); rcu_read_unlock(); return match; } -- 1.7.11.4 -- 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] 7+ messages in thread
* Re: [patch 1/2] mm: memcontrol: handle potential crash when rmap races with task exit 2012-10-04 18:09 ` [patch 1/2] mm: memcontrol: handle potential crash when rmap races with task exit Johannes Weiner @ 2012-10-04 18:49 ` Michal Hocko 2012-10-04 20:19 ` Johannes Weiner 0 siblings, 1 reply; 7+ messages in thread From: Michal Hocko @ 2012-10-04 18:49 UTC (permalink / raw) To: Johannes Weiner Cc: Andrew Morton, Konstantin Khlebnikov, linux-mm, cgroups, linux-kernel On Thu 04-10-12 14:09:16, Johannes Weiner wrote: > page_referenced() counts only references of mm's that are associated > with the memcg hierarchy that is being reclaimed. However, if it > races with the owner of the mm exiting, mm->owner may be NULL. Don't > crash, just ignore the reference. This seems to be fixed by Hugh's patch 3a981f48 "memcg: fix use_hierarchy css_is_ancestor oops regression" which seems to be merged already. > > Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> > Cc: stable@kernel.org [3.5] > --- > include/linux/memcontrol.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h > index 8d9489f..8686294 100644 > --- a/include/linux/memcontrol.h > +++ b/include/linux/memcontrol.h > @@ -91,7 +91,7 @@ int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup) > > rcu_read_lock(); > memcg = mem_cgroup_from_task(rcu_dereference((mm)->owner)); > - match = __mem_cgroup_same_or_subtree(cgroup, memcg); > + match = memcg && __mem_cgroup_same_or_subtree(cgroup, memcg); > rcu_read_unlock(); > return match; > } > -- > 1.7.11.4 > -- 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] 7+ messages in thread
* Re: [patch 1/2] mm: memcontrol: handle potential crash when rmap races with task exit 2012-10-04 18:49 ` Michal Hocko @ 2012-10-04 20:19 ` Johannes Weiner 2012-10-05 7:05 ` Michal Hocko 0 siblings, 1 reply; 7+ messages in thread From: Johannes Weiner @ 2012-10-04 20:19 UTC (permalink / raw) To: Michal Hocko Cc: Andrew Morton, Konstantin Khlebnikov, linux-mm, cgroups, linux-kernel On Thu, Oct 04, 2012 at 08:49:58PM +0200, Michal Hocko wrote: > On Thu 04-10-12 14:09:16, Johannes Weiner wrote: > > page_referenced() counts only references of mm's that are associated > > with the memcg hierarchy that is being reclaimed. However, if it > > races with the owner of the mm exiting, mm->owner may be NULL. Don't > > crash, just ignore the reference. > > This seems to be fixed by Hugh's patch 3a981f48 "memcg: fix use_hierarchy > css_is_ancestor oops regression" which seems to be merged already. And look who acked the patch. I'll show myself out... -- 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] 7+ messages in thread
* Re: [patch 1/2] mm: memcontrol: handle potential crash when rmap races with task exit 2012-10-04 20:19 ` Johannes Weiner @ 2012-10-05 7:05 ` Michal Hocko 0 siblings, 0 replies; 7+ messages in thread From: Michal Hocko @ 2012-10-05 7:05 UTC (permalink / raw) To: Johannes Weiner Cc: Andrew Morton, Konstantin Khlebnikov, linux-mm, cgroups, linux-kernel On Thu 04-10-12 16:19:08, Johannes Weiner wrote: > On Thu, Oct 04, 2012 at 08:49:58PM +0200, Michal Hocko wrote: > > On Thu 04-10-12 14:09:16, Johannes Weiner wrote: > > > page_referenced() counts only references of mm's that are associated > > > with the memcg hierarchy that is being reclaimed. However, if it > > > races with the owner of the mm exiting, mm->owner may be NULL. Don't > > > crash, just ignore the reference. > > > > This seems to be fixed by Hugh's patch 3a981f48 "memcg: fix use_hierarchy > > css_is_ancestor oops regression" which seems to be merged already. > > And look who acked the patch. I'll show myself out... My memory is a bit fuzzy but I remember we had two alternatives and Hugh's won. -- 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] 7+ messages in thread
* [patch 2/2] mm: memcg: clean up mm_match_cgroup() signature 2012-10-04 18:09 [patch 0/2] memcg fixups that fell through cracks in 3.5 Johannes Weiner 2012-10-04 18:09 ` [patch 1/2] mm: memcontrol: handle potential crash when rmap races with task exit Johannes Weiner @ 2012-10-04 18:09 ` Johannes Weiner 2012-10-05 20:53 ` Andrew Morton 1 sibling, 1 reply; 7+ messages in thread From: Johannes Weiner @ 2012-10-04 18:09 UTC (permalink / raw) To: Andrew Morton Cc: Michal Hocko, Konstantin Khlebnikov, linux-mm, cgroups, linux-kernel It really should return a boolean for match/no match. And since it takes a memcg, not a cgroup, fix that parameter name as well. Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> Acked-by: Michal Hocko <mhocko@suse.cz> --- include/linux/memcontrol.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 8686294..7698182 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -84,14 +84,14 @@ extern struct mem_cgroup *parent_mem_cgroup(struct mem_cgroup *memcg); extern struct mem_cgroup *mem_cgroup_from_cont(struct cgroup *cont); static inline -int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup) +bool mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *memcg) { - struct mem_cgroup *memcg; - int match; + struct mem_cgroup *task_memcg; + bool match; rcu_read_lock(); - memcg = mem_cgroup_from_task(rcu_dereference((mm)->owner)); - match = memcg && __mem_cgroup_same_or_subtree(cgroup, memcg); + task_memcg = mem_cgroup_from_task(rcu_dereference((mm)->owner)); + match = task_memcg && __mem_cgroup_same_or_subtree(memcg, task_memcg); rcu_read_unlock(); return match; } @@ -258,10 +258,10 @@ static inline struct mem_cgroup *try_get_mem_cgroup_from_mm(struct mm_struct *mm return NULL; } -static inline int mm_match_cgroup(struct mm_struct *mm, +static inline bool mm_match_cgroup(struct mm_struct *mm, struct mem_cgroup *memcg) { - return 1; + return true; } static inline int task_in_mem_cgroup(struct task_struct *task, -- 1.7.11.4 -- 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] 7+ messages in thread
* Re: [patch 2/2] mm: memcg: clean up mm_match_cgroup() signature 2012-10-04 18:09 ` [patch 2/2] mm: memcg: clean up mm_match_cgroup() signature Johannes Weiner @ 2012-10-05 20:53 ` Andrew Morton 0 siblings, 0 replies; 7+ messages in thread From: Andrew Morton @ 2012-10-05 20:53 UTC (permalink / raw) To: Johannes Weiner Cc: Michal Hocko, Konstantin Khlebnikov, linux-mm, cgroups, linux-kernel On Thu, 4 Oct 2012 14:09:17 -0400 Johannes Weiner <hannes@cmpxchg.org> wrote: > It really should return a boolean for match/no match. And since it > takes a memcg, not a cgroup, fix that parameter name as well. > > --- a/include/linux/memcontrol.h > +++ b/include/linux/memcontrol.h > @@ -84,14 +84,14 @@ extern struct mem_cgroup *parent_mem_cgroup(struct mem_cgroup *memcg); > extern struct mem_cgroup *mem_cgroup_from_cont(struct cgroup *cont); > > static inline > -int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup) > +bool mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *memcg) > { > - struct mem_cgroup *memcg; > - int match; > + struct mem_cgroup *task_memcg; > + bool match; > > rcu_read_lock(); > - memcg = mem_cgroup_from_task(rcu_dereference((mm)->owner)); > - match = memcg && __mem_cgroup_same_or_subtree(cgroup, memcg); > + task_memcg = mem_cgroup_from_task(rcu_dereference((mm)->owner)); > + match = task_memcg && __mem_cgroup_same_or_subtree(memcg, task_memcg); > rcu_read_unlock(); > return match; > } This needed massaging after droppage of your [1/2]: From: Johannes Weiner <hannes@cmpxchg.org> Subject: mm: memcg: clean up mm_match_cgroup() signature It really should return a boolean for match/no match. And since it takes a memcg, not a cgroup, fix that parameter name as well. Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> Acked-by: Michal Hocko <mhocko@suse.cz> --- 1 file changed, 7 insertions(+), 7 deletions(-) index 8686294..7698182 100644 Signed-off-by: Andrew Morton <akpm@linux-foundation.org> --- include/linux/memcontrol.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff -puN include/linux/memcontrol.h~mm-memcg-clean-up-mm_match_cgroup-signature include/linux/memcontrol.h --- a/include/linux/memcontrol.h~mm-memcg-clean-up-mm_match_cgroup-signature +++ a/include/linux/memcontrol.h @@ -84,13 +84,13 @@ extern struct mem_cgroup *parent_mem_cgr extern struct mem_cgroup *mem_cgroup_from_cont(struct cgroup *cont); static inline -int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup) +bool mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *memcg) { - struct mem_cgroup *memcg; - int match; + struct mem_cgroup *task_memcg; + bool match; rcu_read_lock(); - memcg = mem_cgroup_from_task(rcu_dereference((mm)->owner)); + task_memcg = mem_cgroup_from_task(rcu_dereference((mm)->owner)); match = __mem_cgroup_same_or_subtree(cgroup, task_memcg); rcu_read_unlock(); return match; @@ -258,10 +258,10 @@ static inline struct mem_cgroup *try_get return NULL; } -static inline int mm_match_cgroup(struct mm_struct *mm, +static inline bool mm_match_cgroup(struct mm_struct *mm, struct mem_cgroup *memcg) { - return 1; + return true; } static inline int task_in_mem_cgroup(struct task_struct *task, _ Also, From: Andrew Morton <akpm@linux-foundation.org> Subject: mm-memcg-clean-up-mm_match_cgroup-signature-fix mm_match_cgroup is not a macro Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Michal Hocko <mhocko@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> --- include/linux/memcontrol.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN include/linux/memcontrol.h~mm-memcg-clean-up-mm_match_cgroup-signature-fix include/linux/memcontrol.h --- a/include/linux/memcontrol.h~mm-memcg-clean-up-mm_match_cgroup-signature-fix +++ a/include/linux/memcontrol.h @@ -90,7 +90,7 @@ bool mm_match_cgroup(const struct mm_str bool match; rcu_read_lock(); - task_memcg = mem_cgroup_from_task(rcu_dereference((mm)->owner)); + task_memcg = mem_cgroup_from_task(rcu_dereference(mm->owner)); match = __mem_cgroup_same_or_subtree(cgroup, task_memcg); rcu_read_unlock(); return match; _ -- 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] 7+ messages in thread
end of thread, other threads:[~2012-10-05 20:53 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-10-04 18:09 [patch 0/2] memcg fixups that fell through cracks in 3.5 Johannes Weiner 2012-10-04 18:09 ` [patch 1/2] mm: memcontrol: handle potential crash when rmap races with task exit Johannes Weiner 2012-10-04 18:49 ` Michal Hocko 2012-10-04 20:19 ` Johannes Weiner 2012-10-05 7:05 ` Michal Hocko 2012-10-04 18:09 ` [patch 2/2] mm: memcg: clean up mm_match_cgroup() signature Johannes Weiner 2012-10-05 20:53 ` Andrew Morton
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).