From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out-183.mta1.migadu.com (out-183.mta1.migadu.com [95.215.58.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6EEE93C1984 for ; Mon, 29 Jun 2026 07:16:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.183 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782717400; cv=none; b=Yw1Ny6kZ7K/pzWtfKEzkEKr7iRBulHByF33d2MR6zDL9imZ1tzQOVsnZP1rmk4e6Y/OKi8N3hlzjbqThp6pVt2oMjaKeB80a9fafOKxmK7WMIOA+WWvuqydkLE6LUPnKcZMFRM1Ciyox0Bv0689ShtIYn1UEwZ4ac3TsAnA7Q5Q= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782717400; c=relaxed/simple; bh=irI66T1YvoEyiRNdxiF39BA6qTdeYPFLhfyWCNHKzf4=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=ZLsvsygD1EkjWo8VrtNF32rG69kXmz4zIYt9glQ9A9pn1tCTSd7TeclB0a9Ht+NYlerTNWj6TLmsESJchRBU5MiHeYKlCQXgMzvPtxhTWtWQhFWEFE3rwYqnB7giYnU405NAq8xGoZ3jwxpDXVg+oJHizUc6QVTkIAgI1MhGjZg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=KqLs4GIN; arc=none smtp.client-ip=95.215.58.183 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="KqLs4GIN" Message-ID: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1782717393; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=rYt6huZCPhtTAV11Wes2eBLleTRAaiagsI+kEZZZ7uo=; b=KqLs4GINfOWotsKpxzl4TsSwhRaykiaiFiOiWxJmMxU+c/7vD8iiSbWzpDVeygnefz0uuE P8N+nMRY27BdUvpb8E0vhuXqcXjuVcqTkVHFAN4aB74nTde3+pz2W0alZchB5WuXE+0T71 d8Ocf3fViOPiaDyIt3TkGI/HAMWs9gU= Date: Mon, 29 Jun 2026 15:16:04 +0800 Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Subject: Re: [PATCH v8 04/11] cgroup/cpuset: Put all task attach related variables into attach_ctx To: Waiman Long , Tejun Heo , Johannes Weiner , =?UTF-8?Q?Michal_Koutn=C3=BD?= , Farhad Alemi , Andrew Morton , Shuah Khan Cc: cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Aaron Tomlin , Guopeng Zhang , Gregory Price , David Hildenbrand References: <20260626181923.133658-1-longman@redhat.com> <20260626181923.133658-5-longman@redhat.com> X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Ridong Chen In-Reply-To: <20260626181923.133658-5-longman@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Migadu-Flow: FLOW_OUT 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 > Signed-off-by: Waiman Long > --- > 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 -- Best regards Ridong