mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH for-7.4-fixes] cgroup/cpuset: Remove redundant WARN_ON_ONCE() in remote_cpus_update()
@ 2026-11-14 10:06 Ridong Chen
  2026-11-15 15:51 ` Waiman Long
  0 siblings, 1 reply; 2+ messages in thread
From: Ridong Chen @ 2026-11-14 10:06 UTC (permalink / raw)
  To: Waiman Long, Tejun Heo, Johannes Weiner, Michal Koutný
  Cc: Ridong Chen, cgroups, linux-kernel, Sashiko, Ridong Chen

From: Ridong Chen <chenridong@xiaomi.com>

remote_cpus_update() warns if the CPUs to be added to a remote partition
intersect subpartitions_cpus, and then checks the very same condition
right below to set PERR_NOCPUS and invalidate the partition:

	WARN_ON_ONCE(cpumask_intersects(tmp->addmask, subpartitions_cpus));
	if (!capable(CAP_SYS_ADMIN))
		WRITE_ONCE(cs->prs_err, PERR_ACCESS);
	else if (cpumask_intersects(tmp->addmask, subpartitions_cpus) ||
		 cpumask_subset(top_cpuset.effective_cpus, tmp->addmask))
		WRITE_ONCE(cs->prs_err, PERR_NOCPUS);

Sashiko reported that the warning could be triggered by a write to a
cpuset control file, before the CAP_SYS_ADMIN check, which would panic a
system with panic_on_warn set.

The warning was added by commit 86888c7bd117 ("cgroup/cpuset: Add
warnings to catch inconsistency in exclusive CPUs") as an assertion that
such CPUs have been filtered out before. No way to trigger it with the
current interfaces has been found, as these CPUs are rejected when
cpuset.cpus.exclusive is written. But the warning is redundant, as the
conflict is handled right below anyway.

Remove the warning and rely on the PERR_NOCPUS check, the same as
remote_partition_enable() already does for this conflict.

Reported-by: Sashiko <sashiko-bot@kernel.org>
Link: https://sashiko.dev/#/patchset/20261114083124.1340140-1-ridong.chen%40linux.dev?part=6
Signed-off-by: Ridong Chen <chenridong@xiaomi.com>
---
 kernel/cgroup/cpuset.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index 7e374210c123..0be0d26c442b 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -1833,7 +1833,6 @@ static void remote_cpus_update(struct cpuset *cs, struct cpumask *xcpus,
 	 * left in the top cpuset.
 	 */
 	if (adding) {
-		WARN_ON_ONCE(cpumask_intersects(tmp->addmask, subpartitions_cpus));
 		if (!capable(CAP_SYS_ADMIN))
 			WRITE_ONCE(cs->prs_err, PERR_ACCESS);
 		else if (cpumask_intersects(tmp->addmask, subpartitions_cpus) ||

base-commit: e234ed1bb82c96a5643fd70784f16cf3d72eeed3
-- 
2.34.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH for-7.4-fixes] cgroup/cpuset: Remove redundant WARN_ON_ONCE() in remote_cpus_update()
  2026-11-14 10:06 [PATCH for-7.4-fixes] cgroup/cpuset: Remove redundant WARN_ON_ONCE() in remote_cpus_update() Ridong Chen
@ 2026-11-15 15:51 ` Waiman Long
  0 siblings, 0 replies; 2+ messages in thread
From: Waiman Long @ 2026-11-15 15:51 UTC (permalink / raw)
  To: Ridong Chen, Tejun Heo, Johannes Weiner, Michal Koutný
  Cc: cgroups, linux-kernel, Sashiko, Ridong Chen

On 11/14/26 5:06 AM, Ridong Chen wrote:
> From: Ridong Chen <chenridong@xiaomi.com>
>
> remote_cpus_update() warns if the CPUs to be added to a remote partition
> intersect subpartitions_cpus, and then checks the very same condition
> right below to set PERR_NOCPUS and invalidate the partition:
>
> 	WARN_ON_ONCE(cpumask_intersects(tmp->addmask, subpartitions_cpus));
> 	if (!capable(CAP_SYS_ADMIN))
> 		WRITE_ONCE(cs->prs_err, PERR_ACCESS);
> 	else if (cpumask_intersects(tmp->addmask, subpartitions_cpus) ||
> 		 cpumask_subset(top_cpuset.effective_cpus, tmp->addmask))
> 		WRITE_ONCE(cs->prs_err, PERR_NOCPUS);
>
> Sashiko reported that the warning could be triggered by a write to a
> cpuset control file, before the CAP_SYS_ADMIN check, which would panic a
> system with panic_on_warn set.
>
> The warning was added by commit 86888c7bd117 ("cgroup/cpuset: Add
> warnings to catch inconsistency in exclusive CPUs") as an assertion that
> such CPUs have been filtered out before. No way to trigger it with the
> current interfaces has been found, as these CPUs are rejected when
> cpuset.cpus.exclusive is written. But the warning is redundant, as the
> conflict is handled right below anyway.
>
> Remove the warning and rely on the PERR_NOCPUS check, the same as
> remote_partition_enable() already does for this conflict.
>
> Reported-by: Sashiko <sashiko-bot@kernel.org>
> Link: https://sashiko.dev/#/patchset/20261114083124.1340140-1-ridong.chen%40linux.dev?part=6
> Signed-off-by: Ridong Chen <chenridong@xiaomi.com>
> ---
>   kernel/cgroup/cpuset.c | 1 -
>   1 file changed, 1 deletion(-)
>
> diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
> index 7e374210c123..0be0d26c442b 100644
> --- a/kernel/cgroup/cpuset.c
> +++ b/kernel/cgroup/cpuset.c
> @@ -1833,7 +1833,6 @@ static void remote_cpus_update(struct cpuset *cs, struct cpumask *xcpus,
>   	 * left in the top cpuset.
>   	 */
>   	if (adding) {
> -		WARN_ON_ONCE(cpumask_intersects(tmp->addmask, subpartitions_cpus));
>   		if (!capable(CAP_SYS_ADMIN))
>   			WRITE_ONCE(cs->prs_err, PERR_ACCESS);
>   		else if (cpumask_intersects(tmp->addmask, subpartitions_cpus) ||
>
> base-commit: e234ed1bb82c96a5643fd70784f16cf3d72eeed3
Reviewed-by: Waiman Long <longman@redhat.com>


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-11-15 15:52 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-14 10:06 [PATCH for-7.4-fixes] cgroup/cpuset: Remove redundant WARN_ON_ONCE() in remote_cpus_update() Ridong Chen
2026-11-15 15:51 ` Waiman Long

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®