On 6/27/2026 2:19 AM, Waiman Long wrote:
Put the task attach related cpuset_attach_old_cs and
cpuset_attach_nodemask_to static variables into the new attach_ctx
structure to improve readability and ease maintanence.

No functional change is expected.

Suggested-by: Ridong Chen <[email protected]>
Signed-off-by: Waiman Long <[email protected]>
---
  kernel/cgroup/cpuset.c | 21 ++++++++++-----------
  1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index dec9785d0271..1f31f340e0ec 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -362,6 +362,8 @@ static DECLARE_WAIT_QUEUE_HEAD(cpuset_attach_wq);
   */
  static struct {
        int in_progress;
+       struct cpuset *old_cs;  /* Source cpuset */
+       nodemask_t nodemask_to;
  } attach_ctx;
static inline void check_insane_mems_config(nodemask_t *nodes)
@@ -2996,8 +2998,6 @@ static int update_prstate(struct cpuset *cs, int new_prs)
        return 0;
  }
-static struct cpuset *cpuset_attach_old_cs;
-
  /*
   * Check to see if a cpuset can accept a new task
   * For v1, cpus_allowed and mems_allowed can't be empty.
@@ -3029,8 +3029,8 @@ static int cpuset_can_attach(struct cgroup_taskset *tset)
        int cpu, ret;
/* used later by cpuset_attach() */
-       cpuset_attach_old_cs = task_cs(cgroup_taskset_first(tset, &css));
-       oldcs = cpuset_attach_old_cs;
+       attach_ctx.old_cs = task_cs(cgroup_taskset_first(tset, &css));
+       oldcs = attach_ctx.old_cs;
        cs = css_cs(css);
mutex_lock(&cpuset_mutex);
@@ -3133,7 +3133,6 @@ static void cpuset_cancel_attach(struct cgroup_taskset 
*tset)
   * allocate from cpuset_init().
   */
  static cpumask_var_t cpus_attach;
-static nodemask_t cpuset_attach_nodemask_to;
static void cpuset_attach_task(struct cpuset *cs, struct task_struct *task)
  {
@@ -3150,7 +3149,7 @@ static void cpuset_attach_task(struct cpuset *cs, struct 
task_struct *task)
         */
        WARN_ON_ONCE(set_cpus_allowed_ptr(task, cpus_attach));
- cpuset_change_task_nodemask(task, &cpuset_attach_nodemask_to);
+       cpuset_change_task_nodemask(task, &attach_ctx.nodemask_to);
        cpuset1_update_task_spread_flags(cs, task);
  }
@@ -3160,7 +3159,7 @@ static void cpuset_attach(struct cgroup_taskset *tset)
        struct task_struct *leader;
        struct cgroup_subsys_state *css;
        struct cpuset *cs;
-       struct cpuset *oldcs = cpuset_attach_old_cs;
+       struct cpuset *oldcs = attach_ctx.old_cs;
        bool cpus_updated, mems_updated;
        bool queue_task_work = false;
@@ -3172,7 +3171,7 @@ static void cpuset_attach(struct cgroup_taskset *tset)
        cpus_updated = !cpumask_equal(cs->effective_cpus,
                                      oldcs->effective_cpus);
        mems_updated = !nodes_equal(cs->effective_mems, oldcs->effective_mems);
-       guarantee_online_mems(cs, &cpuset_attach_nodemask_to);
+       guarantee_online_mems(cs, &attach_ctx.nodemask_to);
/*
         * In the default hierarchy, enabling cpuset in the child cgroups
@@ -3211,7 +3210,7 @@ static void cpuset_attach(struct cgroup_taskset *tset)
                         */
                        if (is_memory_migrate(cs)) {
                                cpuset_migrate_mm(mm, &oldcs->old_mems_allowed,
-                                                 &cpuset_attach_nodemask_to);
+                                                 &attach_ctx.nodemask_to);
                                queue_task_work = true;
                        } else
                                mmput(mm);
@@ -3221,7 +3220,7 @@ static void cpuset_attach(struct cgroup_taskset *tset)
  out:
        if (queue_task_work)
                schedule_flush_migrate_mm();
-       cs->old_mems_allowed = cpuset_attach_nodemask_to;
+       cs->old_mems_allowed = attach_ctx.nodemask_to;
if (cs->nr_migrate_dl_tasks) {
                cs->nr_deadline_tasks += cs->nr_migrate_dl_tasks;
@@ -3685,7 +3684,7 @@ static void cpuset_fork(struct task_struct *task)
/* CLONE_INTO_CGROUP */
        mutex_lock(&cpuset_mutex);
-       guarantee_online_mems(cs, &cpuset_attach_nodemask_to);
+       guarantee_online_mems(cs, &attach_ctx.nodemask_to);
        cpuset_attach_task(cs, task);
dec_attach_in_progress_locked();

LGTM.

Reviewed-by: Ridong Chen <[email protected]>

--
Best regards
Ridong


Reply via email to