All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ridong Chen <ridong.chen@linux.dev>
To: "Waiman Long" <longman@redhat.com>, "Tejun Heo" <tj@kernel.org>,
	"Johannes Weiner" <hannes@cmpxchg.org>,
	"Michal Koutný" <mkoutny@suse.com>,
	"Farhad Alemi" <farhad.alemi@berkeley.edu>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Shuah Khan" <shuah@kernel.org>
Cc: cgroups@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-kselftest@vger.kernel.org,
	Aaron Tomlin <atomlin@atomlin.com>,
	Guopeng Zhang <guopeng.zhang@linux.dev>,
	Gregory Price <gourry@gourry.net>,
	David Hildenbrand <david@kernel.org>
Subject: Re: [PATCH v8 04/11] cgroup/cpuset: Put all task attach related variables into attach_ctx
Date: Mon, 29 Jun 2026 15:16:04 +0800	[thread overview]
Message-ID: <a37d6336-8f67-405c-b6fa-796a4348d676@linux.dev> (raw)
In-Reply-To: <20260626181923.133658-5-longman@redhat.com>



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 <ridong.chen@linux.dev>
> Signed-off-by: Waiman Long <longman@redhat.com>
> ---
>   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 <ridong.chen@linux.dev>

-- 
Best regards
Ridong


  reply	other threads:[~2026-06-29  7:16 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-26 18:19 [PATCH v8 00/11] cgroup/cpuset: Support multiple source/destination cpusets for cpuset_*attach() Waiman Long
2026-06-26 18:19 ` [PATCH v8 01/11] cgroup/cpuset: rebind mm mempolicy to effective_mems, not mems_allowed Waiman Long
2026-06-26 18:19 ` [PATCH v8 02/11] cgroup/cpuset: Fix node inconsistencies between cpuset_update_tasks_nodemask() and cpuset_attach() Waiman Long
2026-06-26 18:19 ` [PATCH v8 03/11] cgroup/cpuset: Prevent race between task attach and cpuset state change Waiman Long
2026-06-29  7:14   ` Ridong Chen
2026-06-29 21:53     ` Waiman Long
2026-06-26 18:19 ` [PATCH v8 04/11] cgroup/cpuset: Put all task attach related variables into attach_ctx Waiman Long
2026-06-29  7:16   ` Ridong Chen [this message]
2026-06-26 18:19 ` [PATCH v8 05/11] cgroup/cpuset: Add a cpuset_reserve_dl_bw() helper Waiman Long
2026-06-26 18:19 ` [PATCH v8 06/11] cgroup/cpuset: Expand the scope of cpuset_can_attach_check() Waiman Long
2026-06-26 18:19 ` [PATCH v8 07/11] cgroup/cpuset: Make attach_ctx.old_cs track task group leader Waiman Long
2026-06-26 18:19 ` [PATCH v8 08/11] cgroup/cpuset: Move mpol_rebind_mm/cpuset_migrate_mm() calls inside cpuset_attach_task() Waiman Long
2026-06-26 18:19 ` [PATCH v8 09/11] cgroup/cpuset: Support multiple source cpusets for cpuset_*attach() Waiman Long
2026-06-26 18:19 ` [PATCH v8 10/11] cgroup/cpuset: Support multiple destination " Waiman Long
2026-06-26 18:19 ` [PATCH v8 11/11] selftests/cgroup: Add test for cpuset affinity on controller disable Waiman Long

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=a37d6336-8f67-405c-b6fa-796a4348d676@linux.dev \
    --to=ridong.chen@linux.dev \
    --cc=akpm@linux-foundation.org \
    --cc=atomlin@atomlin.com \
    --cc=cgroups@vger.kernel.org \
    --cc=david@kernel.org \
    --cc=farhad.alemi@berkeley.edu \
    --cc=gourry@gourry.net \
    --cc=guopeng.zhang@linux.dev \
    --cc=hannes@cmpxchg.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=longman@redhat.com \
    --cc=mkoutny@suse.com \
    --cc=shuah@kernel.org \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.