cgroup/cpuset: Put all task attach related variables into attach_ctx

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 <ridong.chen@linux.dev>
Signed-off-by: Waiman Long <longman@redhat.com>
Reviewed-by: Ridong Chen <ridong.chen@linux.dev>
Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
Waiman Long 2026-07-02 17:47:50 -04:00 committed by Tejun Heo
parent 75f7a25ec6
commit 892b8bb3fb

View File

@ -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;
/*
@ -3015,8 +3017,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.
@ -3048,8 +3048,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);
@ -3152,7 +3152,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)
{
@ -3169,7 +3168,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);
}
@ -3179,7 +3178,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;
@ -3191,7 +3190,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
@ -3230,7 +3229,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);
@ -3240,7 +3239,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) {
atomic_add(cs->nr_migrate_dl_tasks, &cs->nr_deadline_tasks);
@ -3693,7 +3692,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();