* [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
* [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 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
* 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).