2015-08-31 11:50:14

by Kirill Tkhai

[permalink] [raw]
Subject: [PATCH] cgroup, cleanup: Delete PF_EXITING checks from cgroup_exit() callbacks

Remove useless checks and outdates commentaries.

Signed-off-by: Kirill Tkhai <[email protected]>
---
kernel/events/core.c | 8 --------
kernel/sched/core.c | 8 --------
2 files changed, 16 deletions(-)

diff --git a/kernel/events/core.c b/kernel/events/core.c
index ae16867..94bd500 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -9219,14 +9219,6 @@ static void perf_cgroup_exit(struct cgroup_subsys_state *css,
struct cgroup_subsys_state *old_css,
struct task_struct *task)
{
- /*
- * cgroup_exit() is called in the copy_process() failure path.
- * Ignore this case since the task hasn't ran yet, this avoids
- * trying to poke a half freed task state from generic code.
- */
- if (!(task->flags & PF_EXITING))
- return;
-
task_function_call(task, __perf_cgroup_move, task);
}

diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index b3386c6..f8509be 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -8167,14 +8167,6 @@ static void cpu_cgroup_exit(struct cgroup_subsys_state *css,
struct cgroup_subsys_state *old_css,
struct task_struct *task)
{
- /*
- * cgroup_exit() is called in the copy_process() failure path.
- * Ignore this case since the task hasn't ran yet, this avoids
- * trying to poke a half freed task state from generic code.
- */
- if (!(task->flags & PF_EXITING))
- return;
-
sched_move_task(task);
}


2015-08-31 11:53:22

by Peter Zijlstra

[permalink] [raw]
Subject: Re: [PATCH] cgroup, cleanup: Delete PF_EXITING checks from cgroup_exit() callbacks

On Mon, Aug 31, 2015 at 02:49:59PM +0300, Kirill Tkhai wrote:
> Remove useless checks and outdates commentaries.

A slightly bigger Changelog could do, maybe also referring to the commit
that made these checks obsolete.

2015-08-31 12:13:11

by Kirill Tkhai

[permalink] [raw]
Subject: Re: [PATCH] cgroup, cleanup: Delete PF_EXITING checks from cgroup_exit() callbacks

On 31.08.2015 14:53, Peter Zijlstra wrote:
> On Mon, Aug 31, 2015 at 02:49:59PM +0300, Kirill Tkhai wrote:
>> Remove useless checks and outdates commentaries.
>
> A slightly bigger Changelog could do, maybe also referring to the commit
> that made these checks obsolete.
>

[PATCH] cgroup, cleanup: Delete PF_EXITING checks from cgroup_exit() callbacks

cgroup_exit() is not called from copy_process() after commit e8604cb43690b781:

"cgroup: fix spurious lockdep warning in cgroup_exit()", it's only called

from do_exit(). So these checks are useless and commentaries are obsolete. Remove them.

Signed-off-by: Kirill Tkhai <[email protected]>
---
kernel/events/core.c | 8 --------
kernel/sched/core.c | 8 --------
2 files changed, 16 deletions(-)

diff --git a/kernel/events/core.c b/kernel/events/core.c
index ae16867..94bd500 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -9219,14 +9219,6 @@ static void perf_cgroup_exit(struct cgroup_subsys_state *css,
struct cgroup_subsys_state *old_css,
struct task_struct *task)
{
- /*
- * cgroup_exit() is called in the copy_process() failure path.
- * Ignore this case since the task hasn't ran yet, this avoids
- * trying to poke a half freed task state from generic code.
- */
- if (!(task->flags & PF_EXITING))
- return;
-
task_function_call(task, __perf_cgroup_move, task);
}

diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index b3386c6..f8509be 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -8167,14 +8167,6 @@ static void cpu_cgroup_exit(struct cgroup_subsys_state *css,
struct cgroup_subsys_state *old_css,
struct task_struct *task)
{
- /*
- * cgroup_exit() is called in the copy_process() failure path.
- * Ignore this case since the task hasn't ran yet, this avoids
- * trying to poke a half freed task state from generic code.
- */
- if (!(task->flags & PF_EXITING))
- return;
-
sched_move_task(task);
}

2015-08-31 13:37:09

by Peter Zijlstra

[permalink] [raw]
Subject: Re: [PATCH] cgroup, cleanup: Delete PF_EXITING checks from cgroup_exit() callbacks


I made that two patches, like:

---
Subject: perf: Delete PF_EXITING checks from perf_cgroup_exit() callback
From: Kirill Tkhai <[email protected]>
Date: Mon, 31 Aug 2015 15:12:56 +0300

cgroup_exit() is not called from copy_process() after commit:

e8604cb43690 ("cgroup: fix spurious lockdep warning in cgroup_exit()")

from do_exit(). So this check is useless and the comment is obsolete.

Signed-off-by: Kirill Tkhai <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
---
kernel/events/core.c | 8 --------
1 file changed, 8 deletions(-)

--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -9219,14 +9219,6 @@ static void perf_cgroup_exit(struct cgro
struct cgroup_subsys_state *old_css,
struct task_struct *task)
{
- /*
- * cgroup_exit() is called in the copy_process() failure path.
- * Ignore this case since the task hasn't ran yet, this avoids
- * trying to poke a half freed task state from generic code.
- */
- if (!(task->flags & PF_EXITING))
- return;
-
task_function_call(task, __perf_cgroup_move, task);
}