From: Oleg Nesterov <oleg@redhat.com>
To: Andrew Morton <akpm@linux-foundation.org>, Michal Hocko <mhocko@suse.cz>
Cc: Peter Chiang <pchiang@nvidia.com>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
Balbir Singh <bsingharora@gmail.com>,
Johannes Weiner <hannes@cmpxchg.org>,
"ccross@android.com" <ccross@android.com>,
"lizefan@huawei.com" <lizefan@huawei.com>,
"tj@kernel.org" <tj@kernel.org>, "pavel@ucw.cz" <pavel@ucw.cz>,
"ebiederm@xmission.com" <ebiederm@xmission.com>,
"guillaume@morinfr.org" <guillaume@morinfr.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: [PATCH 0/1] memcg: kill start_kernel()->mm_init_owner(init_mm)
Date: Fri, 18 Apr 2014 21:12:59 +0200 [thread overview]
Message-ID: <20140418191259.GA7413@redhat.com> (raw)
In-Reply-To: <20140418184441.GA26046@redhat.com>
On 04/18, Oleg Nesterov wrote:
>
> OTOH, mm->owner is used by mm/memcontrol.c, so perhaps the prefix is fine?
>
> I do not even understand why do we have CONFIG_MM_OWNER, perhaps it should
> die?
Seriously what do you think about the patch below? Afaics CONFIG_MM_OWNER
is pointless.
And I just noticed start_kernel()->mm_init_owner(). It looks simply wrong
even if this is harmless, or I missed something?
Could you review 1/1 as well?
Oleg.
---
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index 8967e20..de16272 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -406,7 +406,7 @@ struct mm_struct {
spinlock_t ioctx_lock;
struct kioctx_table __rcu *ioctx_table;
#endif
-#ifdef CONFIG_MM_OWNER
+#ifdef CONFIG_MEMCG
/*
* "owner" points to a task that is regarded as the canonical
* user/owner of this mm. All of the following must be true in
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 82fe3da..570a325 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -2947,7 +2947,7 @@ static inline void inc_syscw(struct task_struct *tsk)
#define TASK_SIZE_OF(tsk) TASK_SIZE
#endif
-#ifdef CONFIG_MM_OWNER
+#ifdef CONFIG_MEMCG
extern void mm_update_next_owner(struct mm_struct *mm);
extern void mm_init_owner(struct mm_struct *mm, struct task_struct *p);
#else
@@ -2958,7 +2958,7 @@ static inline void mm_update_next_owner(struct mm_struct *mm)
static inline void mm_init_owner(struct mm_struct *mm, struct task_struct *p)
{
}
-#endif /* CONFIG_MM_OWNER */
+#endif /* CONFIG_MEMCG */
static inline unsigned long task_rlimit(const struct task_struct *tsk,
unsigned int limit)
diff --git a/init/Kconfig b/init/Kconfig
index 765018c..143119e 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -933,7 +933,6 @@ config RESOURCE_COUNTERS
config MEMCG
bool "Memory Resource Controller for Control Groups"
depends on RESOURCE_COUNTERS
- select MM_OWNER
select EVENTFD
help
Provides a memory resource controller that manages both anonymous
@@ -951,9 +950,6 @@ config MEMCG
disable memory resource controller and you can avoid overheads.
(and lose benefits of memory resource controller)
- This config option also selects MM_OWNER config option, which
- could in turn add some fork/exit overhead.
-
config MEMCG_SWAP
bool "Memory Resource Controller Swap Extension"
depends on MEMCG && SWAP
@@ -1173,9 +1169,6 @@ config SCHED_AUTOGROUP
desktop applications. Task group autogeneration is currently based
upon task session.
-config MM_OWNER
- bool
-
config SYSFS_DEPRECATED
bool "Enable deprecated sysfs features to support old userspace tools"
depends on SYSFS
diff --git a/kernel/exit.c b/kernel/exit.c
index 429659c..e5c4668 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -313,7 +313,7 @@ kill_orphaned_pgrp(struct task_struct *tsk, struct task_struct *parent)
}
}
-#ifdef CONFIG_MM_OWNER
+#ifdef CONFIG_MEMCG
/*
* A task is exiting. If it owned this mm, find a new owner for the mm.
*/
@@ -399,7 +399,7 @@ assign_new_owner:
task_unlock(c);
put_task_struct(c);
}
-#endif /* CONFIG_MM_OWNER */
+#endif /* CONFIG_MEMCG */
/*
* Turn us into a lazy TLB process if we
diff --git a/kernel/fork.c b/kernel/fork.c
index 54a8d26..ed75cf5 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1099,12 +1099,12 @@ static void rt_mutex_init_task(struct task_struct *p)
#endif
}
-#ifdef CONFIG_MM_OWNER
+#ifdef CONFIG_MEMCG
void mm_init_owner(struct mm_struct *mm, struct task_struct *p)
{
mm->owner = p;
}
-#endif /* CONFIG_MM_OWNER */
+#endif /* CONFIG_MEMCG */
/*
* Initialize POSIX timer handling for a single task.
next prev parent reply other threads:[~2014-04-18 19:13 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-16 3:02 [PATCH] mm : Avoid candidate task is equal to current task Peter Chiang
2014-04-16 12:31 ` Peter Chiang
2014-04-16 12:52 ` Peter Chiang
2014-04-16 13:57 ` Oleg Nesterov
2014-04-17 6:48 ` Peter Chiang
2014-04-18 16:23 ` Oleg Nesterov
2014-04-18 17:26 ` [PATCH 0/2] memcg: mm_update_next_owner() should skip kthreads Oleg Nesterov
2014-04-18 17:26 ` [PATCH 1/2] " Oleg Nesterov
2014-04-18 17:27 ` [PATCH 2/2] memcg: optimize the "Search everything else" loop in mm_update_next_owner() Oleg Nesterov
2014-04-18 18:24 ` [PATCH 0/2] memcg: mm_update_next_owner() should skip kthreads Michal Hocko
2014-04-18 18:44 ` Oleg Nesterov
2014-04-18 19:12 ` Oleg Nesterov [this message]
2014-04-18 19:13 ` [PATCH 1/1] memcg: kill start_kernel()->mm_init_owner(init_mm) Oleg Nesterov
2014-04-22 13:34 ` Michal Hocko
2014-04-22 13:23 ` [PATCH 0/1] " Michal Hocko
2014-04-22 16:15 ` [PATCH 0/1] memcg: kill CONFIG_MM_OWNER Oleg Nesterov
2014-04-22 16:15 ` [PATCH 1/1] " Oleg Nesterov
2014-04-22 16:39 ` Johannes Weiner
2014-04-22 16:59 ` [PATCH 0/1] " Michal Hocko
2014-04-22 10:52 ` [PATCH 0/2] memcg: mm_update_next_owner() should skip kthreads Michal Hocko
2014-04-22 13:21 ` Michal Hocko
2014-04-22 21:35 ` Hugh Dickins
2014-04-23 7:04 ` Michal Hocko
2014-04-19 8:34 ` Pavel Machek
2014-04-19 18:14 ` Oleg Nesterov
2014-04-19 21:23 ` Hugh Dickins
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140418191259.GA7413@redhat.com \
--to=oleg@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=bsingharora@gmail.com \
--cc=ccross@android.com \
--cc=ebiederm@xmission.com \
--cc=guillaume@morinfr.org \
--cc=hannes@cmpxchg.org \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizefan@huawei.com \
--cc=mhocko@suse.cz \
--cc=pavel@ucw.cz \
--cc=pchiang@nvidia.com \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox