]> Gentwo Git Trees - linux/.git/commitdiff
cgroup: Rename cgroup lifecycle hooks to cgroup_task_*()
authorTejun Heo <tj@kernel.org>
Wed, 29 Oct 2025 06:19:15 +0000 (20:19 -1000)
committerTejun Heo <tj@kernel.org>
Mon, 3 Nov 2025 21:46:18 +0000 (11:46 -1000)
The current names cgroup_exit(), cgroup_release(), and cgroup_free() are
confusing because they look like they're operating on cgroups themselves when
they're actually task lifecycle hooks. For example, cgroup_init() initializes
the cgroup subsystem while cgroup_exit() is a task exit notification to
cgroup. Rename them to cgroup_task_exit(), cgroup_task_release(), and
cgroup_task_free() to make it clear that these operate on tasks.

Cc: Dan Schatzberg <dschatzberg@meta.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Reviewed-by: Chen Ridong <chenridong@huawei.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
include/linux/cgroup.h
kernel/cgroup/cgroup.c
kernel/exit.c
kernel/fork.c
kernel/sched/autogroup.c

index 6ed477338b1660339b1dd329755e1a0d382b2514..4068035176c41ccf8892624c6e062992dfcb0259 100644 (file)
@@ -137,9 +137,9 @@ extern void cgroup_cancel_fork(struct task_struct *p,
                               struct kernel_clone_args *kargs);
 extern void cgroup_post_fork(struct task_struct *p,
                             struct kernel_clone_args *kargs);
-void cgroup_exit(struct task_struct *p);
-void cgroup_release(struct task_struct *p);
-void cgroup_free(struct task_struct *p);
+void cgroup_task_exit(struct task_struct *p);
+void cgroup_task_release(struct task_struct *p);
+void cgroup_task_free(struct task_struct *p);
 
 int cgroup_init_early(void);
 int cgroup_init(void);
@@ -680,9 +680,9 @@ static inline void cgroup_cancel_fork(struct task_struct *p,
                                      struct kernel_clone_args *kargs) {}
 static inline void cgroup_post_fork(struct task_struct *p,
                                    struct kernel_clone_args *kargs) {}
-static inline void cgroup_exit(struct task_struct *p) {}
-static inline void cgroup_release(struct task_struct *p) {}
-static inline void cgroup_free(struct task_struct *p) {}
+static inline void cgroup_task_exit(struct task_struct *p) {}
+static inline void cgroup_task_release(struct task_struct *p) {}
+static inline void cgroup_task_free(struct task_struct *p) {}
 
 static inline int cgroup_init_early(void) { return 0; }
 static inline int cgroup_init(void) { return 0; }
index 6ae5f48cf64e34e263afb45647848c53ec97a12f..826b7fd2f85d6cd2360093664d6e511884967341 100644 (file)
@@ -944,7 +944,8 @@ static void css_set_move_task(struct task_struct *task,
                /*
                 * We are synchronized through cgroup_threadgroup_rwsem
                 * against PF_EXITING setting such that we can't race
-                * against cgroup_exit()/cgroup_free() dropping the css_set.
+                * against cgroup_task_exit()/cgroup_task_free() dropping
+                * the css_set.
                 */
                WARN_ON_ONCE(task->flags & PF_EXITING);
 
@@ -6972,13 +6973,13 @@ void cgroup_post_fork(struct task_struct *child,
 }
 
 /**
- * cgroup_exit - detach cgroup from exiting task
+ * cgroup_task_exit - detach cgroup from exiting task
  * @tsk: pointer to task_struct of exiting process
  *
  * Description: Detach cgroup from @tsk.
  *
  */
-void cgroup_exit(struct task_struct *tsk)
+void cgroup_task_exit(struct task_struct *tsk)
 {
        struct cgroup_subsys *ss;
        struct css_set *cset;
@@ -7010,7 +7011,7 @@ void cgroup_exit(struct task_struct *tsk)
        } while_each_subsys_mask();
 }
 
-void cgroup_release(struct task_struct *task)
+void cgroup_task_release(struct task_struct *task)
 {
        struct cgroup_subsys *ss;
        int ssid;
@@ -7027,7 +7028,7 @@ void cgroup_release(struct task_struct *task)
        }
 }
 
-void cgroup_free(struct task_struct *task)
+void cgroup_task_free(struct task_struct *task)
 {
        struct css_set *cset = task_css_set(task);
        put_css_set(cset);
index 9f74e8f1c431b6aa6e391ff71aadf9895a3857ae..46173461e8dea0af57549ace022a7080659e7cfe 100644 (file)
@@ -257,7 +257,7 @@ void release_task(struct task_struct *p)
        rcu_read_unlock();
 
        pidfs_exit(p);
-       cgroup_release(p);
+       cgroup_task_release(p);
 
        /* Retrieve @thread_pid before __unhash_process() may set it to NULL. */
        thread_pid = task_pid(p);
@@ -967,7 +967,7 @@ void __noreturn do_exit(long code)
        exit_thread(tsk);
 
        sched_autogroup_exit_task(tsk);
-       cgroup_exit(tsk);
+       cgroup_task_exit(tsk);
 
        /*
         * FIXME: do that only when needed, using sched_exit tracepoint
index 3da0f08615a95eea55373a3f266fbfddd6fc9943..960c39c9c264bbee35e56d570f0841ac94b6fa3c 100644 (file)
@@ -738,7 +738,7 @@ void __put_task_struct(struct task_struct *tsk)
        unwind_task_free(tsk);
        sched_ext_free(tsk);
        io_uring_free(tsk);
-       cgroup_free(tsk);
+       cgroup_task_free(tsk);
        task_numa_free(tsk, true);
        security_task_free(tsk);
        exit_creds(tsk);
index cdea931aae306001c5cd0516a8caae1cdd70cf59..954137775f381da04818d5aa378306e7b5a26fa5 100644 (file)
@@ -178,8 +178,8 @@ autogroup_move_group(struct task_struct *p, struct autogroup *ag)
         * this process can already run with task_group() == prev->tg or we can
         * race with cgroup code which can read autogroup = prev under rq->lock.
         * In the latter case for_each_thread() can not miss a migrating thread,
-        * cpu_cgroup_attach() must not be possible after cgroup_exit() and it
-        * can't be removed from thread list, we hold ->siglock.
+        * cpu_cgroup_attach() must not be possible after cgroup_task_exit()
+        * and it can't be removed from thread list, we hold ->siglock.
         *
         * If an exiting thread was already removed from thread list we rely on
         * sched_autogroup_exit_task().